Мне нужен таймер для периодической проверки состояния соединения в ComboPooledDataSource .Есть ли способ прочитать его состояние или «прослушать», когда проверка соединения не удается (и когда он снова появляется)?
Я думал о реализации тестера соединения ( см. Документацию ), но поскольку он создается внутренне (способ установки тестера соединений - через его квалифицированное имя ):
...
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setConnectionTesterClassName("some.qualified.connection.tester");
...
, единственное решение, которое я вижу, состоит в том, что он устанавливает некоторую статическую переменнуюсоответственно.Я придумал таймер, пытающийся установить соединение ( getConnection () ) и перехватить исключение:
try {
cpds.getConnection();
//it is up
} catch (SQLException e) {
//it is down
}
Есть ли лучший способ сделать это?