我需要实现
boolean isValid(int timeout)
就像jdk6中的java.sql.Connection一样。但是应该使用Oracle瘦驱动程序类12。 很明显我可以运行小查询,但超时怎么办?我应该为它创建单独的线程吗? 感谢。
答案 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;
}