SQLNonTransientConnectionException - PullRequest
0 голосов
/ 11 мая 2018

Редактировать

Я создал задачу, которая содержит метод, который загружает содержимое.Мне нужна задача, потому что я хочу установить индикатор выполнения в неопределенное состояние во время загрузки данных.Когда данные загружены, индикатор выполнения устанавливается на «1» (завершено).

Чего я хочу добиться, так это: пользователь входит в систему, но нет соединения, поэтому индикатор выполнения указывает, что приложение пытается подключиться, и через некоторое время появляется всплывающее сообщение об ошибке, которое происходит при потере соединения.Пользователь пытается что-то сделать.Но опять же, ничего не происходит, на этот раз исключение не выдается.

Все зависает при conn = DriverManager.getConnection (DB_URL, USER, PASS), isValid () не помогает. Конец редактирования

Короткая версия:

Когда соединение с БД потеряно, приложение зависает и не генерируется никаких исключений, поэтому мне нечего ловить и информировать пользователя опроблема

Длинная версия:

Я пытаюсь смоделировать ситуацию "потеря соединения" в моем приложении.Чего я хочу добиться, так это отобразить диалоговое окно «Соединение с базой данных потеряно», чтобы информировать пользователя о проблеме.Это исключение называется SQLNonTransientConnectionException.Моя проблема в том, что я получаю его только во время входа в систему.У меня есть окна входа в систему, и если нет соединения, выдается исключение.

Но что, если пользователь потерял соединение после входа в систему?Как он успешно вошел в систему и во время вставки / обновления какой-либо таблицы соединение потеряно?В этом случае приложение просто зависает, оно не отвечает и не генерируется никаких исключений, поэтому мне нечего ловить и информировать пользователя о проблеме.

Не могли бы вы мне помочь, как этого добиться?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

По какой-то причине, когда я помещаю catch (предложение SQLNonTansientConnectionException в оператор try ... вместо catch (SQLException) это работает.

0 голосов
/ 11 мая 2018

Здесь люди рекомендуют использовать библиотеку пулов соединений вместо того, чтобы реализовывать ее самостоятельно: Какой стандартный способ в jdbc для управления потерянным соединением? .Это должно обработать потерянное соединение лучше.(Нет опыта работы с ним)

Чтобы подвести итог ссылки, он рекомендует использовать Компонент DBCP

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