tomcat 7 пул соединений jdbc и проверка jdbc4
Я хотел бы проверить соединение jdbc, используя пул tomcat 7 jdbc, используя JDBC4 Connection.isValid вместо запроса проверки.
Мне интересно, будет ли достаточно внедрить валидатор, подобный приведенному ниже. Также мне интересно, какой будет хороший тайм-аут.
Заранее спасибо! Федя
PS: я использую оракул 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;
}
}
1 ответ
Отладчик поможет вам разобраться с ситуацией: пулы соединений Tomcat / DBCP не возвращают необработанное соединение, а обертку / адаптер, которые перерабатывают базовые "истинные" соединения. Пул обычно сам проверяет соединения (при необходимости переподключается) и, я полагаю, не позволяет действительно проверить.
У вас есть больше информации о параметрах проверки пула в документе Tomcat. Другой обмен касается пулов JBoss, оборачивающих соединения Oracle, что является обычной практикой.