[rabbitmq-discuss] Shovel plugin behavior with durable queues...

Steve Powell steve at rabbitmq.com
Wed Apr 4 14:25:05 BST 2012


Sean,

Please check that the messages are 'persistent' messages (published with
BasicProperties containing delivery_mode=2). If not they won't survive a
restart; only persistent messages in durable queues survive a restart.

I note that you have set persistent in the shovel configuration, but
this only overrides the properties of the original message. If they
weren't persistent originally and shovel doesn't re-publish them, they
will be lost on restart.

Steve Powell  (a happy bunny)
----------some more definitions from the SPD----------
chinchilla (n.) Cooling device for the lower jaw.
socialcast (n.) Someone to whom everyone is speaking but nobody likes.
literacy (n.) A textually transmitted disease usually contracted in childhood.

On 3 Apr 2012, at 17:46, Sean Heaton wrote:

> Steve,
>  
> Thank you very much for helping me out.  I actually stop Machine A.  That prevents messages from being shoveled from Machine C  to A.  While A is still stopped, I restart the RabbitMQ service Machine C. 
>  
> When I do this, I figured since the messages are in a durable queue on Machine C, they would still be in the durable queue on C waiting to be shoveled to A.  This isn’t the case though—they are simply gone.  They don’t make it to A (since A is stopped), but they aren’t on C anymore either.  I was thinking I probably have something configured wrong or that there is a setting I can tweak to make them persist on C.
>  
> Thank you again for your help on this…
>  
> Regards,
> Sean
>  
>  
> From: Steve Powell [mailto:steve at rabbitmq.com] 
> Sent: Tuesday, April 03, 2012 7:44 AM
> To: Sean Heaton
> Cc: rabbitmq-discuss at lists.rabbitmq.com
> Subject: Re: [rabbitmq-discuss] Shovel plugin behavior with durable queues...
>  
> Hi Sean,
>  
> Did you mean to say you restarted Machine C or Machine A?
>  
> In any case, the messages in a durable queue will only survive a server
> stop/start if the messages are persistent.
>  
> If you restarted Machine A, then the shovel ought to reconnect (from C
> to A) and the messages in the queue should then be sent. Since the queue
> on Machine A is durable it ought to still exist when you restart it.
>  
> Hope this gives some clue. If you still have problems, please come back.
>  
> Steve Powell  (a happy bunny)
> ----------some more definitions from the SPD----------
> chinchilla (n.) Cooling device for the lower jaw.
> socialcast (n.) Someone to whom everyone is speaking but nobody likes.
> literacy (n.) A textually transmitted disease usually contracted in childhood.
>  
> On 2 Apr 2012, at 22:33, Sean Heaton wrote:
> 
> 
> Hello,
>  
> I am new to the list and RabbitMQ in general, so I hope this is not a stupid question, but I have seen some behavior that is strange to me when using the RabbitMQ shovel plugin.  I am using RabbitMQ v 2.7.1 running on Centos 6.0.  I have three machines in my setup.  Machines A and B are both clustered together.  Machine C is not part of the cluster.  It has the shovel plugin installed.  The plugin is set up to shovel messages from a durable queue on Machine C to a durable queue on Machine A.  In case it helps, my /etc/rabbitmq/rabbitmq.conf file looks like this:
>  
> [{rabbitmq_shovel,
>   [{shovels,
>     [{myShovel,
>       [{sources,      [{broker,"amqp://MachineC"}]},
>        {destinations, [{broker, "amqp://MachineA"}]},
>        {queue, <<"myQueue">>},
>        {ack_mode, on_confirm},
>        {publish_properties, [{delivery_mode, 2}]},
>        {reconnect_delay, 5}
>       ]
>     }]
>  }]
> }].
>  
> With this configuration, everything seems to work fine.  When I send messages to the queue on Machine C, they are shoveled automatically out to A.
>  
> So here is the weird behavior I mentioned earlier…  If I shut down the RabbitMQ service on Machine A, messages stack up in the durable queue on Machine C.  This is expected since Machine A is down.  However, if I then restart the RabbitMQ service on Machine C, all of the messages waiting in the durable queue get nuked.
>  
> Has anyone else seen this behavior?  Do I have a setting wrong or is there something else I can change so that this doesn’t happen?
>  
> Thanks in advance for your help!
>  
> Regards,
> Sean
> 
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>  
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120404/96acf201/attachment.htm>


More information about the rabbitmq-discuss mailing list