[rabbitmq-discuss] Fwd: question on the faq

Gordon Sim gsim at redhat.com
Mon Jan 5 17:29:18 GMT 2009


Matthias Radestock wrote:
> Gordon Sim wrote:
>> Matthias Radestock wrote:
>>> if queues are active entities, which they are in RabbitMQ, then they 
>>> can, in principle, die due to some failure. 
>>
>> I would view that as a bug.
> 
> Any failure of a queue process is indeed a bug, but the interesting 
> question is how the system deals with such failures. In RabbitMQ they 
> will cause any tx involving that queue to abort.

That is the ideal approach in my view.

>>> Secondly, in a clustered RabbitMQ broker each queue resides on a 
>>> specific node. In such a set up a transaction may take place on a 
>>> connection+channel against one particular node but involve queues 
>>> residing on other nodes. Those queue can disappear due to node 
>>> failure or network connectivity disruption without the transacted 
>>> connection+channel being dropped (since the node which holds the 
>>> connection is still alive and well).
>>
>> Would RabbitMQ abort any open transaction involving the queue in that 
>> case?
> 
> Yes, but aborts in RabbitMQ aren't atomic, i.e. any actions on other 
> queues that are part of the same transactions may still get committed.

Understood, and that was the point on which I entered the conversation 
i.e. there is no 'all or nothing' guarantee.




More information about the rabbitmq-discuss mailing list