JDBC接続プール構成の調整について読んでいて、タイムアウト設定>>アイドルタイムアウトセクションの下に、次のように書かれています。
最高のパフォーマンスを得るには、アイドル タイムアウトをゼロ (0) 秒に設定して、アイドル状態の接続が削除されないようにします。これにより、通常、新しい接続を作成する際にペナルティが発生せず、アイドル モニター スレッドが無効になります。ただし、長期間使用されていない接続がデータベース サーバーによってリセットされる危険性があります。
この最後の文は当惑します。Tomcat では、JDBC 接続を内部からの JNDI ルックアップとして指定できますcontext.xml
。上記のリンクのIdle Timeoutフィールドは、Tomcat (DBCP) のプロパティに対応していると思います。maxIdle
0に設定maxIdle
すると、アイドル接続を削除しないように DBCP に指示されますが、サーバーはアイドル接続でハングアップ (またはリセット) します。呼び出される特定の例外はありますか? アプリはハングアップしますか? maxIdle
このような問題を軽減しながら、0 のままにしておくにはどうすればよいですか?