ホームページ  >  記事  >  データベース  >  c3p0によるデッドロックを解決する方法

c3p0によるデッドロックを解決する方法

一个新手
一个新手オリジナル
2017-09-08 10:54:092126ブラウズ

コードはローカルでテストして正解だったので、テスト用に外部サーバーに置いたら、このようなエラーが発生しました

com.mchange.v2.async.ThreadPoolAsynchronousRunner -466510
78 [Timer-18] WARN  com.mchange.v2.async.ThreadPoolAsynchronousRunner  - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1c17bd4 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!

これを見て混乱しました、どうすればいいですか?

私の答えは次のとおりです:

データベース接続の数は制限されているため、アプリケーションが C3p0 を開始するたびに、アプリケーションは C3p0 接続プールを満たすためにデータベース接続を占有します。リソースが使用されている場合、共有リソースが取得できないため、デッドロックが報告されます。

対応する設定ファイルの最大接続数と初期接続数を変更します:

変更なし:

<property name="maxPoolSize" value="100" />  
<property name="initialPoolSize" value="2" />

変更後:

rrreええ

re デプロイして実行すれば、OK!

以上がc3p0によるデッドロックを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。