[rabbitmq-discuss] Shutdown Listener on Java Client API

Dave Greggory davegreggory at yahoo.com
Tue Sep 28 20:29:47 BST 2010


We had something similar happen again last night. For some reason, one of our 
producers lost the connection to RabbitMQ at 7:47 PM but the shutDownCompleted 
event did not fire on that producer till 8:58 PM. We have a separate thread to 
send out messages from our app so that the app is unaffected should it lose 
messaging functionality. Starting at 7:47 PM, this separate thread started 
blocking and we lost all messages sent beyond its internal buffer's capacity. At 
about 8:58 the shutdown event fired, we automatically reconnected and everything 
returned to normal.

Both of our RabbitMQ nodes stayed up the whole time. No errors or VM HIGH 
WATERMARK events in the logs. This is on RabbitMQ 1.8.1 in our production 
environment. This is a very low volume environment, RabbitMQ nodes were only 
using about 30 MB of the 993 MB it allocated itself. No CPU / Memory / Disk 
spikes.

Any thoughts? Is there something in the java client api that could prevent the 
shutdownEvent from firing quickly? AMQP Heartbeats were mentioned in another 
thread, would that help and how do we enable these?



----- Original Message ----
From: Vlad Alexandru Ionescu <vlad at rabbitmq.com>
To: Dave Greggory <davegreggory at yahoo.com>
Cc: rabbitmq-discuss at lists.rabbitmq.com
Sent: Wed, September 15, 2010 7:51:27 AM
Subject: Re: [rabbitmq-discuss] Shutdown Listener on Java Client API


Hi Dave,

AFAIK, the event should fire regardless of the shutdown reason (be it 
connection loss, server initiated connection close, sudden socket 
closed, heartbeat timeout etc.). It appears to me that you are using it 
correctly.

Depending on the type of load balancer you are using, perhaps the 
clients never got disconnected? It is also possible that there is a bug 
in the client code.

Rgds,
Vlad.


On 09/13/2010 04:12 PM, Dave Greggory wrote:
> We register a shutdown listener to listen for connection-loss events and
> automatically re-connect clients to other RabbitMQ nodes in the cluster. This
> weekend we had to restart the load balancer that sits between rabbitmq and 
it's
> clients for some maintenance, but the 
ShutdownCompleted/ShutdownSignalException
> event never fired in the clients.
>
>
> I'm trying to understand how the shutdown signal works. Does it only fire the
> ShutDownCompleted event if RabbitMQ node shuts down and sends the signal back 
>to
> clients? If that's the case, I'm probably misusing it to detect 
>connection-loss.
> Is there a different way of detecting connection loss?
>
> Thanks,
> Dave
>
>
>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>    



      


More information about the rabbitmq-discuss mailing list