Управляет ли сервер TIBCO EMS переподключением? или клиент?
Вопрос
Справочное руководство TIBCO EMS .NET гласит (стр. 134)
Чтобы включить поведение переподключения и отказоустойчивость, параметр serverURL должен представлять собой разделенный запятыми список из двух или более URL-адресов. В случае только с одним сервером вы можете предоставить две копии URL этого сервера, чтобы включить переподключение клиента (например, tcp: // localhost: 7222, tcp: // localhost: 7222).
В руководстве пользователя TIBCO EMS (стр. 292) рассказывается о сценариях отработки отказа, уведомлении клиента и автоматической передаче клиентов на сервер резервного копирования, но ничего, кроме конкретно: «переподключение»; связаны между собой.
В разделе "переподключиться" сценарий, сервер обрабатывает все? или клиент должен что-то делать с его экземплярами TIBCO.EMS.Connection?
Решение
По результатам нашего тестирования видно, что на сервере и на клиенте есть настройки, которые включают эту функцию. На стороне клиента SetReconnAttemptCount, Delay, Timeout управляют попытками, которые клиент пытается повторно подключить, как только узнает об отказе сервера / восстановлении соединения.
В нашем тестировании мы использовали среду с одним сервером, дважды указали сервер в строке подключения (используя трюк, описанный выше), и когда этот сервер был переведен в автономный режим, мы получили уведомление клиента о том, что процесс аварийного переключения вступает в силу ( мы включили Tibems.SetExceptionOnFTSwitch (true)), и когда сервер был снова подключен к сети, наш клиент, казалось, снова подключился, не пропустив ни секунды. Нам ничего не нужно было кодировать, внутренняя логика повторного подключения работала по волшебству.
На стороне сервера должна быть включена отказоустойчивость, и я полагаю, что должны быть включены тактовые импульсы сервер-клиент и клиент-сервер (хотя это еще не было проверено).
Надеюсь, это поможет.