Обнаружение и восстановление, когда соединение базы данных ODB C с сервером SQL не работает - PullRequest
0 голосов
/ 19 июня 2020

У меня есть серверное приложение, которое использует SQL серверную базу данных, подключенную через ODB C с использованием nanodb c.

Я подключаюсь к базе данных при запуске.

Я недавно обнаружил проблему, когда я потерял соединение с базой данных, и она не восстанавливалась, каждый раз, когда я пытался вызвать базу данных, которую я получил, и ошибка о том, что канал связи не работает.

Однако вызов nanodb c :: connected () по-прежнему вернул true.

Я могу поймать исключение всякий раз, когда я вызываю базу данных, и повторно подключаюсь, если есть ошибка, хотя, похоже, это не различает guish между каналами связи ошибки и другие ошибки базы данных, такие как ключевые нарушения.

Или было бы лучше иметь сторожевой таймер, который запускает простой запрос каждую минуту или около того, чтобы заранее обнаруживать какие-либо проблемы с базой данных?

Или это плохая практика создавать новое соединение odb c для каждого запроса?

...