I am running some tests for an async process that consumes messages from rabbitmq. We are trying to figure out how to gracefully handle rabbitmq going away and coming back. The goal is to have the async process reconnect and resume operations. To simulate the situation I start my consumer, then I turn rabbitmq off, wait then turn it back on.<div><br></div><div>As expected, Connection Refused exceptions are thrown (and caught) while rabbitmq is off. As soon as I bring the server back online, it throws ShutDownSignalExceptions:</div><div>







<p class="p1"><span class="s1">com.rabbitmq.client.ShutdownSignalException</span>: connection error; reason: {#method&lt;connection.close&gt;(reply-code=320, reply-text=CONNECTION_FORCED - broker forced connection closure with reason 'shutdown', class-id=0, method-id=0), null, "[B@275e538e"}<br>at&nbsp;com.rabbitmq.client.QueueingConsumer.handle(<span class="s1">QueueingConsumer.java:198</span>)<br>at com.rabbitmq.client.QueueingConsumer.nextDelivery(<span class="s1">QueueingConsumer.java:214</span>)<br><br></p><p class="p1">How do I gracefully handle the shutdown so that I can get back to consuming? I attempted shutting the channel / connection and creating a new connection from the factory but the shutdown signal exception is still thrown after 'reconnect'. What's going on under the hood that keeps me from successfully consuming again? Is there some sort of message I need to tell RabbitMQ "yes I know I shut you down, but its you're back up so stop&nbsp;crying..."</p><p class="p1">Thanks,</p><p class="p1">Matt</p></div>