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.
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