Сообщение JMS для повторной доставки в очередь - PullRequest
3 голосов
/ 12 августа 2011

Я использую Jboss MQ в своем приложении.

Я пытаюсь обработать доставленное сообщение в очередь JMS. Есть ли способ установить некоторые значения в исходном сообщении, которое я получил от потребителя (когда я впервые получил сообщение) Так что всякий раз, когда сообщение доставляется, я могу прочитать значение и принять некоторые решения.

Пожалуйста, дайте мне знать, если вопрос не ясен, я могу попытаться объяснить подробно.

Ответы [ 2 ]

6 голосов
/ 15 сентября 2011

Нет, JMS не работает таким образом.

Вы взаимодействуете с очередями как потребитель (получает), производитель (отправляет) или браузер (заглядывает). Нет операции по возврату измененного сообщения. Если потребитель работает в транзакции, для которой выполняется откат, сообщение будет «возвращено», но только потому, что оно ожидало в очереди принятия транзакции.

Теоретически вы могли бы создать продюсера для той же очереди, в которую вы получили сообщение, изменить его и отправить его "себе" (бин-накопитель сообщений?), Но это будет другое сообщение , только с похожим содержанием. И это дойдет до конца очереди. И это, конечно, не рекомендуется делать.

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

1 голос
/ 12 ноября 2012

Может помочь шаблон корпоративной интеграции Content Enricher ( 1 ) ( 2 ).

...