あなたはおそらくどちらかです
- ソケットを開き、閉じない。時間の経過とともに、開いているソケットの数が多くなりすぎて、アプリケーションがクラッシュします。
- 同時に開いているソケットが多すぎます。スレッドがたくさんあるからかもしれません。
私はそれが#1だと推測するつもりです。コードを再確認し、すべてのConnectionオブジェクトとResultSetオブジェクトを閉じていることを確認してください。
#2に遭遇した場合は、使用するスレッドを少なくするか(特定の時点でスレッドが多すぎると、害が大きくなります)、または c3p0 これにより、設定された数の接続のみが作成され、スレッドがそれらを共有できるようになります。一般にc3p0を使用することは良い考えであり、#1をより速く検出できるはずです。
3番目のオプションは、接続管理を処理するJPAやJDOなどの高レベルの抽象化を使用することです。