5

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

4

2 に答える 2

5

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

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

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

于 2010-03-31T23:00:37.767 に答える
1

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

于 2010-06-23T10:17:52.247 に答える