sql >> データベース >  >> RDS >> Oracle

接続が悪くなったときにJBoss接続プールをOracleに再接続する方法はありますか?

    古い「デュアルから1つ選択」のトリックを使用できますが、これの欠点は、プールから接続を借用するたびに追加のクエリを発行することです。大量の場合、これは無駄です。

    JBossは、Oracleで使用する必要がある特別な接続バリデーターを提供します:

    <valid-connection-checker-class-name>
        org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
    </valid-connection-checker-class-name>
    

    これは、Oracle JDBC Connectionクラスの独自のping()メソッドを利用し、ドライバの基盤となるネットワーキングコードを使用して、接続がまだ有効であるかどうかを判断します。

    ただし、接続を借用するたびにこれを実行するのはまだ無駄なので、バックグラウンドスレッドがプール内の接続をチェックし、デッド接続をサイレントに破棄する機能を使用することをお勧めします。これははるかに効率的ですが、接続が 死んでしまうと、バックグラウンドスレッドがチェックを実行する前にそれらを使用しようとすると失敗します。

    バックグラウンドチェックを構成する方法については、wikiドキュメントを参照してください(background-validation-millisを探してください) 。



    1. pgmemcacheとInfiniteCache

    2. Postgresの大文字と小文字の区別

    3. MariaDBでのREGEXP_SUBSTR()のしくみ

    4. Postgresがインデックスを使用しないのはなぜですか?