[rabbitmq-discuss] RabbitMQ 1.7.0 close the cnx when consumer don't ack deliveries during 30s

Simon MacMullen simon at rabbitmq.com
Wed Jul 14 10:30:35 BST 2010


On 13/07/10 16:00, Vincent Barat wrote:
<snip>
> But from time to time, the database blocks during 30s to 1minute and
> thus I don't acknowledge during the same time.
>
> It seems that the RabbitMQ server closes the connection. Is there a
> timeout (or a setting) I can use to fix this issue ?

Hi Vincent. Not acking for 30s certainly should not close the 
connection. When the server closes a connection due to client error it 
sends an error message; you should see this as an IOException in the 
Java client. Check the ShutdownSignalException inside the IOException to 
get the error code / message. Alternatively you could look in the server 
logs, sometimes there's more detail there.

One way this could be happening is:

* You have heartbeating turned on (I think some of the client version 
have this turned on by default). Heartbeating makes the server 
periodically check the client is still alive and responding.

* You block the connection main loop, say by implementing your own 
Consumer rather than using QueueingConsumer, and doing something slow / 
expensive in Consumer.handleDelivery().

Does this sound plausible? If not I would look for error messages as above.

Cheers, Simon

-- 
Simon MacMullen
Staff Engineer, RabbitMQ
SpringSource, a division of VMware



More information about the rabbitmq-discuss mailing list