ホームページ >データベース >mysql チュートリアル >c3p0によるデッドロックを解決する方法
コードはローカルでテストして正解だったので、テスト用に外部サーバーに置いたら、このようなエラーが発生しました
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 サイトの他の関連記事を参照してください。