Только для чтения JMS тема подписки?(или сохранить сообщения JMS при снятии очереди) - PullRequest
0 голосов
/ 16 октября 2018

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

Если что-то идет не так в бизнеселогика, но я уже прочитал сообщение (вероятно, через JMS), что, вероятно, означало бы, что все сообщения пропали - и у меня были бы огромные проблемы.

Есть ли способ прочитать сообщения безудаляя их?

1 Ответ

0 голосов
/ 16 октября 2018

Это обычная схема обмена сообщениями.Если вы используете JMS API, у вас есть несколько вариантов:

  1. Используйте режим CLIENT_ACKNOWLEDGE при создании сеанса и подтверждении сообщения после завершения бизнес-логики.Если бизнес-логика дает сбой, не подтверждайте сообщение и оно не будет удалено из очереди.
  2. Использовать транзакционный сеанс.Если бизнес-логика завершается успешно, передайте транзакцию.Если бизнес потерпел неудачу, откат транзакции.

Оба они очень распространены, и вы можете найти дополнительную информацию обо всех правильных вызовах API и т. Д., Используя вашу любимую поисковую систему.

...