Vairam;
Посмотрите документацию Hornet для Отправка сообщений . Вопросы, которые вы должны рассмотреть:
- Задержка доставки (вы указали 3 минуты).
- Количество раз, когда сообщение должно быть доставлено.
- Если вы выберете , а не для повторной доставки на неопределенный срок, последнее действие, которое происходит при неудачной последней попытке повторной доставки, может быть:
- Оставьте сообщение.
- Поместить сообщение в назначенный DLQ.
- Поместить сообщение в другую очередь.
Настройка задержки доставки
Задержка доставки определяется в конфигурации настройки адреса.
Пример: * * тысяча тридцать-один
<!-- delay redelivery of messages for 3m -->
<address-setting match="jms.queue.exampleQueue">
<redelivery-delay>300000</redelivery-delay>
</address-setting>
Настройка максимального количества доставок и конфигурация DLQ
Это можно определить декларативно, указав конфигурацию DLQ в конфигурации настройки адреса:
* +1039 * Пример:
<!-- undelivered messages in exampleQueue will be sent to the dead letter address
deadLetterQueue after 3 unsuccessful delivery attempts
-->
<address-setting match="jms.queue.exampleQueue">
<dead-letter-address>jms.queue.deadLetterQueue</dead-letter-address>
<max-delivery-attempts>3</max-delivery-attempts>
</address-setting>
Если вы хотите отбросить сообщение после указанного количества сбоев повторной доставки, проверьте значение заголовка сообщения "JMSXDeliveryCount" и, если это число равно максимальному числу повторных доставок, просто подавьте все исключения и подтвердите сделка.