Проверка правильности программного соединения для базы данных Postgresql в Java - PullRequest
2 голосов
/ 07 марта 2012

У меня есть отдельное Java-приложение, которое делает некоторые операции чтения / записи в базу данных postgresql. Я использовал функцию isValid, доступную для объекта java.sql.Connection, чтобы восстановить соединение с базой данных в случае, если оно потеряно / не удалось, возможно, из-за неполадок в сети / сбоя. Следующий фрагмент кода демонстрирует эту идею в ближайшее время:

  //dbConnection is an instance of java.sql.Connection

  if(dbConnection.isValid(1)){
     reEstablishConnection();
  }

Тем не менее, во время выполнения я получаю исключение в условии вышеупомянутого блока if, который говорит о том, что метод isValid еще не реализован. Я использую последнюю версию драйвера JDBC (v9.1-101), и моя версия СУБД postgesql - 8.3.9. Я установил его с помощью Yast2 на SUSe Linux (SLES 11 SP2 - 64 бит). Может кто-нибудь сказать мне, как я могу проверить, программно ли потеряно соединение в Java для postgresql? Мое намерение состоит в том, чтобы восстановить автоматически без вмешательства пользователя.

1 Ответ

4 голосов
/ 07 марта 2012

Вы можете реализовать свою собственную функцию проверки правильности соединения (что-то вроде выполнения "select 1" и возврата true, если 1 возвращается из дБ без ошибок).

Однако я предлагаю вам использовать пул соединений и я рекомендую использовать Apache Tomcat Pool , который будет выполнять проверку правильности соединений (среди многих других вещей)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...