2016-10-10 7 views
0

Iam, записывающий приложение на Java с использованием ActiveMQ, где iam использует производителя и асинхронный механизм потребления, когда сообщения, отправленные производителем, не потребляются из-за сети сбои. Если эти сообщения отправляются в очередь мертвых букв ActiveMQ.Доступ к сообщениям в Мертвой букве Очередь ActiveMQ и переадресация на webservice или сокет после потребления

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

ответ

1

Hassen полностью прав относительно возможности установки DLB-записей, потребляющих MDB.

Однако подходящее место для установки политики переопределения находится в самой очереди или самой теме (см. http://activemq.apache.org/redelivery-policy.html) и не использует очередь с мертвой буквой. На самом деле у вас есть только один экземпляр DLQ для MOM, который будет содержать сообщения из всех разных очередей/темы и установки механизма переключения при сбое, будет подразумеваться управление другой структурой сообщений.

+0

, можно использовать 'individualDeadLetterStrategy' слишком –

+0

, но я согласен с тем, что, если это возможно, лучше настроить политику переопределения, но в конце, если сообщения не могут быть доставлены, они идут DLQ –

+0

Не знал, что это должно быть конкретная функция поставщика ... Во всяком случае, вы потеряете некоторые метаданные сообщений (счет повторной доставки и т. д.) при падении на DLQ. – Gab

3

DLQ - это как любая тема или очередь, и вы можете подписаться на нее, как на любую тему или в очереди, и набирать накопленные сообщения. Вот список http://activemq.apache.org/advisory-message.html

Имя DLQ, чтобы подписаться на это ActiveMQ.DLQ, если вы не имеете individualDeadLetterStrategy, вы подписываетесь и сделать свой метод бизнес OnMessage. http://activemq.apache.org/message-redelivery-and-dlq-handling.html

+0

Нет, мой вопрос не в отношении консультативной поддержки, более точным я хочу получить сообщения в ** ActiveMQ.DLQ ** и непрерывно перебирать сообщения в DLQ, чтобы я мог выполнить некоторые механизмы redelivery –

+0

, как я сказал, DLQ похож на любую тему или очередь, и вы можете подписаться на он как любая тема или очередь и потребляет сообщения –