Должен сказать, я не пробовал это с RabbitMQ.Когда я создал транзакционного потребителя с ActiveMQ (очередь JMS), было два требования:
- Использование
call
с blocking="true"
для пересылки сообщения - Установка свойства
SET_ROLLBACK_ONLY
в случае ошибки. - (не используйте свойства
OUT_ONLY
и HTTP_SC_ACCEPT
!)
Глядя на исходный код, я подозреваю, что транзакции должны работать даже без установки каких-либосвойства, см. функцию 'startConsumer' здесь