5


0

データベース接続の自動再接続

TomcatにDBCP接続プールがあります。 問題は、接続が一時的に失われると、DBCPが後で接続があるときに再接続を再試行しないため、アプリケーションが壊れることです。 DBCPに自動的に再接続させることはできますか?

2 Answer


5


これを「解決」する方法は2つありますが、どちらにもいくつかの問題があります。

  1. "validationQuery"(以下を参照)を使用して、テストクエリを実行できます。 あなたが行く前に(一般的に「プールから取得/与える前/後の接続をテストするために使用される「デュアルから選択1」のようなもの) これにより、プールからの接続要求ごとに追加の呼び出しが追加されます。 参照:http://wiki.apache.org/commons/DBCP

  2. クエリごとにこれを行う代わりに、idleEvictorThreadを実行させることができます testWhileIdleを設定することにより、一部のバージョンではスレッドが高負荷下でデッドロックを引き起こす可能性があります。 参照:http://commons.apache.org/dbcp/configuration.htmlおよびその他のオプションの詳細


1


DBCPがそれを行うとは思わないが、BoneCP(http://jolbox.com)は、DBまたはネットワークがダウンしたときにトランザクションを自動的に再生するように構成できます。 アプリケーションに対して完全に透過的です。