ActiveMQ обрабатывает сообщение несколько раз - PullRequest
0 голосов
/ 05 марта 2019

Я хотел бы настроить политику доставки в ActiveMQ. Я настроил попытки повторения до 3 раз, и после этого сообщение должно быть отправлено в очередь Dead Letter. Однако я заметил, что в то время как 3 попытки обработки сообщения (при возникновении исключения) обрабатываются несколько раз. Почему?

  1. Первый раз обработки - сообщение обрабатывается 13 (1 обычная и 12 повторная обработка по одному) раз (исключение происходит каждый раз, поэтому сообщение отправляется обратно в очередь в конце концов - в конце 13-го раза)
  2. Вторая обработка - сообщение обрабатывается 5 раз
  3. Третий раз - сообщение обрабатывается 4 раза

Почему эта дополнительная обработка? Я думал, что когда сообщение отправляется обратно в очередь, мой слушатель должен получить это сообщение и снова попытаться обработать это сообщение только один раз. Какой параметр отвечает за эту переработку?

1 Ответ

0 голосов
/ 05 марта 2019

Скорее всего, вам нужно добавить jms.redeliveryPolicy.maximumRedeliveries=0 в URI соединения.По умолчанию клиент ActiveMQ повторяет попытку на стороне клиента.Это все очень хорошо, но если вы настроили посредник на обработку повторных попыток, вы обычно не хотите, чтобы клиент делал это также.Просто добавьте опцию.См. http://activemq.apache.org/redelivery-policy.html для самой опции.

...