[rabbitmq-discuss] Publish won't work without transaction?

Matthias Radestock matthias at lshift.net
Wed Sep 24 05:54:10 BST 2008


Tsuraan,

tsuraan wrote:
> Would just replacing the queue (message_buffer) in
> rabbit_amqqueue_process with a file-backed object work for what I'm
> doing?

That depends on what state the messages in your backlog are in. The 
message_buffer only contains committed (when tx is used) messages that 
are not currently awaiting acknowledgement.

Messages that are part of a tx which hasn't committed yet, and messages 
which have been sent to a consumer but not yet acknowledged, are kept in 
tx/cr records in the process dictionary.

> Persistence is still handled by rabbit_persister for when things die,

You'll need to think about how to "garbage collect" the files of your 
file-backed queue store in the event of server crash, perhaps by hooking 
a function into the RabbitMQ startup sequence that deletes them


Matthias.




More information about the rabbitmq-discuss mailing list