私の場合は次のとおりです。
Tomcat(6) を Web サーバーとして使用し、多数の Web アプリケーションを搭載したサーバーを維持する必要があります。これらの Web アプリケーションは、他のユーザーによって維持されています。私たちのサーバーは、Web アプリケーションが表示する必要がある情報を持っている別の部門の DB サーバーに接続しています。適切なプーリング戦略がなければ、サーバーはすぐに惨事に変わりました。
プールを全員に紹介したので (私は BoneCP - 0.7 を選択しました)、Tomcat のグローバル JNDI コンテキストにとどまる単一のプールを作成し、全員がそこから接続できるようにします。これで問題は解決するはずです。
私の懸念は、この Pooling を完全に制御するにはどうすればよいですか? いくつかの要件があります。
実行時に DataSource 構成を手動またはプログラムでリロードしたい (必要なときにバックアップ サーバーへの接続を試行します)
時々変更できる接続数 (最小、最大、アイドル接続) を変更する
Tomcat を有効にしておくことが望ましい
私は、JMX を使用して情報を接続および取得し、プールをリロードするボタンを備えたアラート システムを構築するつもりです (すべてのプーリング戦略には何らかの回復があることはわかっていますが、他の DB サーバーは定期的にクラッシュするため、接続を手動で再起動します)。やや好ましい)。
私はいくつかの可能な解決策を考えています:
- グローバル JNDI コンテキストを再起動するように Tomcat に指示する
- Tomcat に DataSource オブジェクトを再起動するように指示する
- プールを再起動するように BoneCP に指示し、必要に応じて接続を再作成します
- Tomcat 自体を再起動する
私の質問は次のとおりです。
- Tomcat (およびその他の Web アプリケーション) に影響を与えることなく、上記のソリューションを安全に実行できますか?
- 私はこれを気にする必要がありますか?(Tomcatを再起動するだけだと思います)