0

我需要实施

boolean isValid(int timeout) 

就像在 jdk6 中的 java.sql.Connection 一样。但应该使用 Oracle 瘦驱动程序类 12。很明显我可以运行小查询,但是超时呢?我应该为它创建单独的线程吗?谢谢。

4

1 回答 1

1

对于 OJDB7:

isValid(int timeout) - 是方法 pingDatabase(int i)
pingDatabase()的包装器- 进行查询“SELECT 'x' FROM DUAL”。
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 回答