2

私のコードには、データベース接続を適切に閉じていない場所がいくつかあります。これは catalina.out で定期的に報告され、次のようなメッセージが表示されます。これらのメッセージは、次の数時間にわたってさまざまな回数、閉じられていない他の接続に対して繰り返されます。

catalina.out の他の情報を見ると、これらのメッセージが午前 7 時 40 分頃に catalina.out に出力されたことがわかります。これらが次の日に catalina.out で報告される他の例を見てきました。私の質問は、これらのメッセージがいつ catalina.out に出力されるかを決定するものは何ですか? それはどのように正確に機能しますか?

4

1 に答える 1

4

DBCP はオープン ソースであるため、自分でコードを見て調べることができます。DBCP が放棄された接続をチェックする方法は、協調的なガベージ コレクションの形式です。接続が接続プールからチェックアウトされると、最初に放棄された接続がチェックされ、それらがクリーンアップされます。

そのため、新しい接続が数時間要求されていない場合、放棄された接続は削除されません。また、(営業日の開始時など) プールから接続が要求されると、最初にすべての放棄された接続が削除されます。

のコードを見るとborrowObject()、構成に応じて が呼び出されremoveAbandoned()、放棄された接続が取り消され、ログに記録されます。

于 2013-08-30T09:06:36.750 に答える