[rabbitmq-discuss] Transactions

Matthias Radestock matthias at rabbitmq.com
Tue Jan 8 00:47:37 GMT 2013

On 08/01/13 00:34, CJ wrote:
> I have my producer send another 100 messages.
> But this time I have the consumer only read 50 persistent messages with
> a txcommit.
> I read in all of the first 50 messages correctly.
> So I run the consumer again, hoping to get the next 50, but this time it
> does not see any persistent Tx on the Q, and receive zero messages.

 From http://www.rabbitmq.com/semantics.html#tx
AMQP transactions only apply to publishes and acks. [...] On the 
consuming side, the acknowledgements are transactional, not the 
consuming of the messages themselves.

So for your test to work the way you expect, it needs to a) consume in 
ack-mode, and b) ack all the received messages, before issuing the 

As an aside, the tx mode doesn't actually buy you much on the consuming 
side; you are probably better off consuming & ack'ing on a 
non-transactional channel. And on the producing side 'confirms' 
(http://www.rabbitmq.com/confirms.html) are more efficient than 
transactions and provide most of the same guarantees.



More information about the rabbitmq-discuss mailing list