0

ログメッセージの全文:

Log Message: An error occurred while grabbing new users com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 44,567,434 milliseconds ago. The last packet sent successfully to the server was 44,567,434 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

それは10時間以上なので、これは私には奇妙です。私のプログラムは、過去10時間にわたって、データベースとの通信を含め、正常に実行されていました。私が持っている最良の仮説は、プール内の1つの接続が古くなったというものですが、その場合、なぜこれが自動的にクリーンアップされないのか、またはこの例外がその操作に関連していたのかわかりません。これをどのように処理すればよいですか?

c3p0接続プールを使用しています。

4

1 に答える 1

1

c3p0 には、接続をテストし、タイムアウトや古くなるのを防ぐ多くの手段があります。発生している特定の問題を解決する最も簡単な方法は、構成パラメーター maxIdleTime を 8 時間 (28800 秒) に設定することです。

ただし、接続の一般的なテストを開始することをお勧めします。たとえば、idleConnectionTest 期間を頻繁に設定し、testConnectionOnCheckin を true に設定します。見る...

http://www.mchange.com/projects/c3p0/#configuring_connection_testing

http://www.mchange.com/projects/c3p0/#configuration_properties

于 2012-11-21T23:17:46.977 に答える