У меня есть серверное приложение, которое использует SQL серверную базу данных, подключенную через ODB C с использованием nanodb c.
Я подключаюсь к базе данных при запуске.
Я недавно обнаружил проблему, когда я потерял соединение с базой данных, и она не восстанавливалась, каждый раз, когда я пытался вызвать базу данных, которую я получил, и ошибка о том, что канал связи не работает.
Однако вызов nanodb c :: connected () по-прежнему вернул true.
Я могу поймать исключение всякий раз, когда я вызываю базу данных, и повторно подключаюсь, если есть ошибка, хотя, похоже, это не различает guish между каналами связи ошибки и другие ошибки базы данных, такие как ключевые нарушения.
Или было бы лучше иметь сторожевой таймер, который запускает простой запрос каждую минуту или около того, чтобы заранее обнаруживать какие-либо проблемы с базой данных?
Или это плохая практика создавать новое соединение odb c для каждого запроса?