使用带有jooq和spring boot的bonecp数据源并在weblogic服务器上部署时出现以下错误。
以下是我的设置:
bonecp.idleConnectionTestPeriodInMinutes=1
bonecp.idleMaxAgeInMinutes=4
bonecp.maxConnectionsPerPartition=1
bonecp.minConnectionsPerPartition=1
bonecp.poolAvailabilityThreshold=5
bonecp.partitionCount=1
bonecp.acquireIncrement=1
错误是:
for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "712" seconds working on the request "Workmanager: default, Version: 0, Scheduled=true, Started=true, Started time: 712707 ms", which is more than the configured time (StuckThreadMaxTime) of "600" seconds in "server-failure-trigger".
Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
com.jolbox.bonecp.DefaultConnectionStrategy.getConnectionInternal(DefaultConnectionStrategy.java:82)
com.jolbox.bonecp.AbstractConnectionStrategy.getConnection(AbstractConnectionStrategy.java:90)
com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:553)
com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:131)
org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.getTargetConnection(LazyConnectionDataSourceProxy.java:403)
org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.invoke(LazyConnectionDataSourceProxy.java:376)
com.sun.proxy.$Proxy139.prepareStatement(Unknown Source)
sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
答案 0 :(得分:0)
这不是jOOQ或连接池问题,而是与weblogic有关。
另外, 考虑设置WebLogic Server“Stuck Thread Max Time”值 从默认的600秒到更大的值,如1200秒。 使用WebLogic控制台更改此值(base_domain> 环境>服务器>管理服务器>配置/调谐)。
另见https://docs.oracle.com/cd/E19316-01/820-3745/ghudn/index.html。