如何实现与Oracle驱动程序类12一起使用的isValid连接?

时间:2012-07-05 18:27:33

标签: java oracle jdbc connection

我需要实现

boolean isValid(int timeout) 

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

1 个答案:

答案 0 :(得分: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;
}