JDBC Connection Link Failure - Как выполнить аварийное переключение? - PullRequest
1 голос
/ 02 октября 2011

У меня есть отдельное Java-приложение для Windows, разработанное на основе Swing. Он подключается к базе данных MySQL для хранения данных. В случае сбоя соединения с базой данных я получаю исключение сбоя соединения от драйвера JDBC MySQL (MySQLNonTransientConnectionException). Я не хочу повторно создавать экземпляр моего объекта подключения к базе данных или всей программы в случае возникновения проблемы с ошибкой соединения. Я просто хочу сказать пользователю, чтобы повторить попытку позже, без перезапуска всего приложения. Если пользователю будет предложено перезапустить все приложение, это, вероятно, негативно скажется на качестве программы. Как вы думаете, что было бы предпочтительным способом для стандартного Java-приложения после сбоя после такого сбоя соединения с базой данных без необходимости повторной создания всех объектов связи? Заранее спасибо.

1 Ответ

1 голос
/ 02 октября 2011

Используйте пул соединений (например, C3PO или DBCP). Ваше приложение берет Соединения из пула, выполняет оператор (ы) и помещает Соединение обратно в пул. Пул можно настроить для проверки соединений JDBC. Например, если они устарели, их можно автоматически восстановить в пуле.

Если ваше приложение получает соединение из пула, оно будет действительным соединением. Позвольте пулу обрабатывать управление действительными / недействительными / устаревшими Соединениями JDBC.

...