スクリプトから数分ごとに呼び出される Java アプリケーションがあります。フローは次のとおりです。
- スクリプトは、数分ごとに Java プロセスを呼び出します。
- Java プログラムは数分間 (場合によってはそれより短い時間) 実行され、いくつかの処理を行い、完了すると System.exit(0) を呼び出して終了します。
- ステップ 2 では、処理を行うために、c3p0接続プールを使用して MySQL DB に接続します。
プールから接続を取得するたびに、 を呼び出しますclose()
。また、接続が長すぎるか閉じられていない場合はいつでも c3p0 が処理するようにunreturnedConnectionTimeout
設定しました。20
私の質問は、ステップ 2 のすべての処理が完了したら、 を呼び出して終了する前にSystem.exit(0)
、接続プールのクリーンアップを行う必要があるかということです。
接続プールで呼び出すclose()
と、接続がプールに返されるだけで、実際に接続を「閉じる」ことはありません。終了する前に、接続プールのクリーンアップを行う必要がありますか? クリーンアップを行わずに JVM を終了した場合、DB への接続はまだ残っていますか、それとも c3p0 がそれらをクリーンアップ/強制的に閉じますか? ありがとう!