Я обрабатываю сообщения, используя JMS MessageConsumer
с MessageListener
. Если что-то происходит, это приводит к тому, что MessageConsumer
перестает получать и обрабатывать сообщения - например, если базовое соединение закрывается - как я могу его обнаружить? Кажется, нет никакого механизма уведомления, который я могу найти в the spec.Обнаружение, когда асинхронный JMS MessageConsumer имеет исключение?
Я думаю, что вопрос ясен, как есть, но если вы хотите, чтобы я опубликовал код, чтобы прояснить вопрос, просто спросите!
В случае, если это важно, я использую ActiveMQ 5.8, хотя, очевидно, мне нужна схема, которая не зависит от реализации.
Знаю ли я, что JMS-брокер жив или нет? Как узнать, поддерживает ли JMS-соединение все в порядке? Может ли это сказать, является ли JMS-брокер онлайн? Благодарю. – tonga
Вы устанавливаете 'ExceptionListener' на объект' Connection', правильно? Учитывая, что 'ExceptionListener' является' Connection'-scoped, что я буду ожидать от JMSException? Я подозреваю, что получаю исключения, относящиеся к моему «MessageConsumer», плюс еще много. Как я могу узнать, относится ли какое-либо данное исключение к моему «MessageConsumer», а не к чему-то еще в «Connection»? – sigpwned
Исключение указывает, что экземпляр соединения не является хорошим, и его следует отбросить; попытайтесь открыть новый, используя цикл с временной задержкой между ними, чтобы дать серверу время для восстановления, в случае успеха, вот как вы знаете – raffian