ActiveMQ активно проверяет соединение на работоспособность сервера - PullRequest
0 голосов
/ 24 апреля 2018

Есть ли способ проверить, что сервер ActiveMQ все еще работает, без фактического получения, отправки или выполнения транзакции? Я использую логику «Best Effort 1 Phase Commit» - т.е. не использую XA, а вместо этого фиксирую db непосредственно перед фиксацией JMS, предполагая, что фиксация JMS пройдет, пока сервер не выйдет из строя (как в отличие от фиксации SQL, которая может завершиться ошибкой, например, из-за нарушения ограничений).

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

Способ отправки какого-либо "пинга" через соединение будет именно тем, что я искал, например, получить какой-то статус от фактического сервера (не просто спросить у объекта подключения, считает, что имеет подключение к серверу). Для SQL Server «SELECT 1» очень подходит для этого сценария. Я думаю, что я мог бы отправить сообщение в тему без каких-либо потребителей, но это кажется немного тяжелым. Было бы без проблем использовать методы для реального объекта ActiveMQConnection (в отличие от чисто JMS API).

...