[rabbitmq-discuss] Support for distributed transactions (dtx).

Alexis Richardson alexis.richardson at cohesiveft.com
Mon Nov 10 14:15:38 GMT 2008


On Mon, Nov 10, 2008 at 2:06 PM, Gavin Bong <vinorasmus at gmail.com> wrote:
> Alexis,
> Pardon me for hijacking this thread, but I have 2 transaction related questions.
> 1) If I am just sending one message per client invocation, does it
> matter whether I use transactions ?
> e.g. the server receives a request to create an account, I add that
> request to a Q.
> It seems to me that transactions are only useful if I want a group of
> messages to appear (perhaps in an ordered fashion) in the queue. I'm
> speaking from a one-phase commit viewpoint.

My understanding is that you can use TX to force a publication ack,
even in one message cases.

> 2) In one of the overload method signatures for Channel.basicPublish,
> 2 parameters "immediate" and "mandatory" confuse me. Are they in
> anyway related to transactions ? Are they hints to control the
> visibility of the message in the queue vis à vis database isolation
> levels. ?

They are orthogonal to transactions but in fact interplay with them in
fiddly ways.  Some of this will be clarified in future specs or tidied
up completely.  For now, I'd suggest using them independently of TX,
or if you must use them in combination, feel free to describe your use
cases on this list.



> Thanks a lot.
> Regards,
> Gavin
> 2008/11/10 Alexis Richardson <alexis.richardson at cohesiveft.com>:
>> Alex
>> RabbitMQ supports the TX model as described in AMQP 0-8.  If you look
>> in the list archives for 'TX' then you will see background on this.
>> In effect TX lets clients state visibility and ack boundaries around
>> message groups.

More information about the rabbitmq-discuss mailing list