我们使用weblogic10.3+bea jdk1.6+hibernate3+c3p0 0.9.1.2+oracle 9.2.8运行了一个java web应用服务器。当我们使用oracle11gx64将数据库升级到ojdbc6集群时,遇到了许多错误。
首先,出现了以下错误消息,并且应用程序无法每隔几个小时连接数据库:
*com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@2a01aa -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
2016-01-28 18:09:55 com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@2a01aa -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 3
Active Tasks:*然后,我们更改了配置"hibernate.c3p0.max_statements"=0,这个错误消失了,但是出现了其他OutOfMemoryError:
原因是: javassist.CannotCompileException: by java.lang.OutOfMemoryError:类分配,188463944加载,187957248占用JVM@check_alloc (src/jvm/JVM@check_alloc/classload/classalloc.c:118)。在javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:169) at org.jboss.seam.util.ProxyFactory.createClass3(ProxyFactory.java:350) .77个字节的原因是: java.lang.OutOfMemoryError:类分配、188463944加载、187957248占用JVM@check_alloc (src/jvm/model/classload/classalloc.c:118)。67744字节
有人能帮我吗?提前感谢!
发布于 2016-01-29 02:38:17
更新到最新的c3p0 (现在为0.9.5.2)。
如果这对您有效,则继续使用语句缓存,但要避免死锁,请使用以下设置。
c3p0.statementCacheNumDeferredCloseThreads=1见文档。
https://stackoverflow.com/questions/35062290
复制相似问题