0

weblogic10.3+bea jdk1.6+hibernate3+c3p0 0.9.1.2+oracle 9.2.8 で Java Web アプリケーション サーバーを実行しました。ojdbc6 を使用してデータベースを oracle11gx64 クラスターにアップグレードすると、多くのエラーが発生しました。

最初に次のエラー メッセージが表示され、アプリケーションが数時間間隔でデータベースに接続できません。

 *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/model/classload/classalloc.c:118)。javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:169) で org.jboss.seam.util.ProxyFactory.createClass3(ProxyFactory.java:350) で 67744 バイト ... 77 以上 原因: java.lang. OutOfMemoryError: クラス割り当て、188463944 ロード、187957248 フットプリント JVM@check_alloc (src/jvm/model/classload/classalloc.c:118)。67744 バイト

誰でも私を助けることができますか?前もって感謝します!

4

1 に答える 1

0

最新の c3p0 (現在は 0.9.5.2) に更新します。

うまくいく場合は引き続きステートメントキャッシュを使用しますが、デッドロックを回避するには、次の設定を使用します。

c3p0.statementCacheNumDeferredCloseThreads=1

ドキュメントを参照してください。

于 2016-01-29T02:38:17.757 に答える