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