Datasnap: есть ли способ обнаружить потерю соединения во всем мире?

Я ищу, чтобы обнаружить потерю локального соединения. Есть ли способ сделать это, как с событиями на компонентах Corelabs?

Спасибо

РЕДАКТИРОВАТЬ: Извините, я попытаюсь быть более конкретным: в настоящее время я разрабатываю прототип с использованием datasnap 2009. Таким образом, у меня есть тонкий клиент, серверное приложение без сохранения состояния и сервер базы данных.

То, что я мог бы сделать, это обнаружить и обработать потерю соединения (интернет-соединение) между клиентом и серверным приложением, чтобы обработать его соответствующим образом, то есть: отобразить информативное сообщение об ошибке пользователю или обнаружить отключение сервера, чтобы молча перенаправить на другой сервер приложений.

В двухуровневой системе, которую я использовал для управления компонентами ODAC, у TOraSession есть несколько событий для решения этой проблемы.

2 ответа

Решение

Обычно при разрыве соединения событие не генерируется, если только оператор не сработал с базой данных. Это связано с тем, что нет способа узнать о потере соединения, если не происходит какой-либо пинг проверки активности.

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

Вы можете реализовать функцию проверки соединения в своем приложении в некоторых событиях базы данных (перед выполнением?). Или сделайте таймер, который проверяет каждые 10 секунд.

Создайте поток на клиенте, который периодически отправляет на сервер некоторые команды RPC "Ping" или "Heartbeat".

  • если это не удается, клиент знает, что что-то случилось с соединением

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

Другие вопросы по тегам