3

私のアプリケーションは、Tomcat JDBC 接続プールと MySQL DB を使用しています。
夜間に実行されるプロセス (ウイルス対策スキャン?) により、マシンのメモリと CPU が増加し、その結果、接続プールが接続要求に応答できなくなるまで、プールからの接続がアクティブのままになるようです。

次のようなエラーが表示されます。

  • com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.

  • Timeout: Pool empty. Unable to fetch a connection in 10 seconds, none available[size:100; busy:97; idle:0; lastwait:10000]. (That's weird, where are the remaining 3?)

アクティブな接続状態を説明する私が生成しているグラフを見ると、ある時点で増加し始め、最大値に達してそこにとどまるまでフラットです。
私の接続プールは、閉じられていない接続 ( ) を削除するように構成されていますsetRemoveAbandoned = true

どうすればこの問題を解決できますか?

4

1 に答える 1

1

これは、アプリケーションが使用後に接続を閉じていないためだと思います。コードを確認し、使用後にすべての接続が閉じていることを確認してください。

于 2013-03-18T12:03:04.250 に答える