我们使用JNDI和BoneCP连接池创建DB连接。一段时间后,bonecp会创建更多的com.google.common.base.internal.Finalizer、bonecp-pool-watch-thread和bonecp-keep-alive-scheduler活动线程。所以需要更多的记忆。它会导致JVM崩溃。
如何解决这个问题?控制线程数量的任何配置。
名称:BoneCP-池-监视线程
State: WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@42256c51
Total blocked: 0 Total waited: 1
Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:374)
com.jolbox.bonecp.PoolWatchThread.run(PoolWatchThread.java:64)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:744)com.google.common.base.internal.Finalizer名称:
State: WAITING on java.lang.ref.ReferenceQueue$Lock@7035679c
Total blocked: 0 Total waited: 1
Stack trace:
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
com.google.common.base.internal.Finalizer.run(Finalizer.java:131)
java.lang.Thread.run(Thread.java:744)名称:BoneCP-保持活动-调度程序
State: TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@327a219f
Total blocked: 0 Total waited: 5
Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:744)发布于 2015-05-27 07:19:33
这与番石榴图书馆的错误有关。不过,请注意,您应该认为BoneCP不赞成HikariCP。
https://stackoverflow.com/questions/29182362
复制相似问题