Конфигурирование 'повторной попытки задерживается' в Ряду MQ

Я надеюсь, что кто-то может помочь мне - я использую JBoss 5.1 и Серию 7 MQ в EJB / JMS основывал приложение. У меня есть несколько управляемых сообщениями компонентов в моем приложении, каждый слушающий на Серийной очереди сообщений MQ. Когда с ошибкой встречаются во время обработки сообщения, я должен смочь настроить 'задержку повторной попытки', так, чтобы mq ряд ожидал некоторый промежуток времени прежде, чем попытаться повторно поставить сообщение. Я прочесал Серийную документацию MQ экстенсивно и еще не нашел способ выполнить это в Ряду MQ. Я знаю, что поставщик JMS по умолчанию JBoss имеет способ сделать это, но я в настоящее время ограничиваюсь использованием Ряда MQ. Так как я не смог установить задержку повторной попытки - когда у меня есть сообщение, что сбои, мое приложение застревает в жестком цикле передачи сообщения и отката непрерывно. Кто-либо может помочь мне понять, существует ли некоторая опция конфигурации в Ряду MQ, который позволит мне ожидать X миллисекунд прежде, чем повторно поставить неудавшееся сообщение?

8
задан Fionnuala 16 December 2009 в 14:26
поделиться

3 ответа

Думаю, тебе не повезло. Насколько мне известно, единственные параметры, которые вы можете настроить в этом сценарии, - это максимальное количество повторных попыток сообщения (BOTHRESH) и имя очереди исключения / возврата (BOQUEUE), куда сообщение будет отправлено, если количество количество попыток превышает максимально допустимое.

Paal

3
ответ дан 5 December 2019 в 17:39
поделиться

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

Поскольку вы можете посмотреть на JMSDeliveryCount, когда сообщение вошло в компонент (перед его обработкой - рассмотрите область фиксации), и вы можете увидеть, что у него уже было несколько откатов, отправьте сообщение в промежуточную очередь но добавьте имя целевой очереди в свойствах jms, чтобы вы могли использовать его позже.

Простой процесс может выполняться с некоторым интервалом для очистки промежуточной очереди (например, каждые 5 минут) и отправки сообщения в очередь маршрутизации .

Другой процесс. может сесть в очередь маршрутизации и посмотреть на свойства jms (которые добавили имя целевой очереди) и отправить сообщение по первоначальному адресату.

Это бедняк ». s брокер, но он достигнет цели. Это правда, что здесь не так много встроенных элементов, чтобы действительно делать то, что вы хотите.

7
ответ дан 5 December 2019 в 17:39
поделиться

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

0
ответ дан 5 December 2019 в 17:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: