我想使用JDBC4 Connection.isValid而不是验证查询来使用tomcat 7 jdbc池验证jdbc连接。
我想知道是否实施Validator类似的轰鸣声就足够了。此外,我想知道哪个会是一个很好的超时。
提前致谢! FEDE
PS:我正在使用oracle 11g。
public class MyValidator implements Validator{
public static final int DEFAULT_TIMEOUT = 5;
public boolean validate(final Connection c, final int validateAction){
try{
return c.isValid(DEFAULT_TIMEOUT);
}catch(Exception e){
// LOG e
return false;
}
}
答案 0 :(得分:0)
调试器可以帮助您解决问题:Tomcat / DBCP连接池不返回原始连接,而是返回基础“真实”连接的包装器/适配器。池通常自己检查连接(如果需要,重新连接),我想,不允许真正验证。
您可以在Tomcat doc中获得有关池验证参数的更多信息。 Another exchange涉及包装Oracle连接的JBoss池,这是一种常见的做法。