Магазин сообщений, поддерживающий откат? - PullRequest
0 голосов
/ 28 февраля 2019

Используя wso2ei-6.4.0, я вижу, что можно использовать сообщения обмена сообщениями (RabbitMQ) либо путем определения входящей конечной точки, либо путем определения хранилища сообщений.

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

Моя идея заключается в использовании транзакций JMS.Могу ли я использовать транзакцию JMS с хранилищем сообщений JMS или мне нужно определить конечную точку входящих JMS?

1 Ответ

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

Должен сказать, я не пробовал это с RabbitMQ.Когда я создал транзакционного потребителя с ActiveMQ (очередь JMS), было два требования:

  • Использование call с blocking="true" для пересылки сообщения
  • Установка свойства SET_ROLLBACK_ONLYв случае ошибки.
  • (не используйте свойства OUT_ONLY и HTTP_SC_ACCEPT!)

Глядя на исходный код, я подозреваю, что транзакции должны работать даже без установки каких-либосвойства, см. функцию 'startConsumer' здесь

...