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, что является обычной практикой.

Другие вопросы по тегам