0

実装する必要があります

boolean isValid(int timeout) 

java.sql.Connectionのjdk6のように。ただし、Oracleシンドライバクラスを使用する必要があります12。小さなクエリを実行できることは明らかですが、タイムアウトはどうですか?別のスレッドを作成する必要がありますか?ありがとう。

4

1 に答える 1

1

OJDB7の場合:

isValid(int timeout) -メソッドpingDatabase(int i)
pingDatabase()のラッパーです-クエリ "SELECT'x'FROMDUAL"を作成します。
pingDatabase(int i) -別のスレッドで同じクエリを実行します。

答え-はい、別のスレッドで小さなリクエストを行う必要があります。

try {
    Thread thread = new Thread(new Runnable() {
        public void run() {
            try {
                result = ...make query and verify result
            } catch(Throwable throwable) {
                return false;
            }
        }
    });
    thread.start();
    thread.join(timeout);
    return result;
catch(InterruptedException interruptedexception) {
    return false;
}
于 2013-11-21T06:51:57.497 に答える