2014-10-21 8 views
0

Использование версии 1.6 NMS (1.6.3 activemq) Я настраиваю прослушиватель для ожидания сообщений. У слушателя есть нить собственной (не моя), и мой код выходит из сферы действия (пока не вызывается функция слушателя).Захват события отключения от ActiveMQ

Если сервер ActiveMQ отключается, я получаю глобальное исключение, которое я могу использовать только глобально. (мой поток, создавший слушателя, не поймает его. Мне нечего обернуть «try» и «catch»).

Есть ли способ установить функцию обратного вызова, например - OnError + = ErrorHandlingFunction(), поскольку я использую прослушиватель для решения этой проблемы локально, а не глобальным узлом исключения? Есть ли лучший способ справиться с этой проблемой (я не могу использовать Transport Failure, поскольку у меня нет других параметров, но подождите некоторое время и отключите, возможно, зарегистрируйте что-нибудь или отправьте сообщение о том, что сервер отключен).

ответ

0

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

Методы NMS API, которые вы используете в обратном вызове async, будут генерировать исключение, если оно не подключено, поэтому, если вы сделали что-то вроде попытки ACK-сообщения в обработчике событий асинхронного сообщения, тогда оно выкинет исключение, если соединение было отключено.

+0

Все, что мне нужно сделать, это отключить сервер, и я получаю и исключение, я нашел способ поймать его через объект соединения. у меня есть то, что мне нужно - я отправлю его здесь завтра, так как сегодня я не работаю – Dani

 Смежные вопросы

  • Нет связанных вопросов^_^