[rabbitmq-discuss] Not Able to keep messages persistent

Abhishek Kona abhishek.kona at gmail.com
Fri Sep 3 10:40:54 BST 2010

  Ok my bad.

When I use transactional mode, (I commit after the operation), the 
messages are persisted.
When I do a basicpublish without any transactions the messages are not 
being persisted (the messages are sent to the queues for sure)

This is the exact problem.
The exact code is:

             this.channel = connection.createChannel();

         Item item = new Item();
         String itemStringRep = QUtils.ItemToString(item);
         BasicProperties bp = new AMQP.BasicProperties();

             this.channel.basicPublish("default_exchange", queuename, 
bp, itemStringRep.getBytes());

         catch (IOException e)
             throw new QueueServiceException("Enqueue failed: [ Queue 
does not Exists ] " + "[ " + e + " ] ");

When I remove the txCommit and txSelect. the messages are not persisted.

Abhishek Kona

On 03/09/10 1:34 PM, David Wragg wrote:
> Hi Abhishek,
> Abhishek Kona<abhishek.kona at gmail.com>  writes:
>> When I am using Transaction Commit, the messages are persisted but
>> without the transaction commits, the messages are not persistent.
>> I am guessing the issue is the messages are not persisted as soon as
>> they are received. But at some time later on by the RabbitMQ.
>> Is this the issue.
> If you put an AMQP channel into transactional mode, and you don't commit
> the transaction, then it's as if the messages were never published.  Not
> only will the messages not be persisted, but the messages won't even go
> into the message queues until you commit the transaction.
> Is this consistent with what you are seeing?  If not, could you provide
> a full test program to demonstrate you problem?
> David

More information about the rabbitmq-discuss mailing list