[rabbitmq-discuss] Connection and channel resource management in servlet

Bertrand Guay-Paquet bernie at step.polymtl.ca
Mon Mar 31 16:59:01 BST 2014


Hello,
>> Does that mean I should never
>> throw
>> from handleDelivery()? Or should I monitor currently active
>> consumers
>> and restart the failed ones?
> Unhandled exceptions will be delegated to ExceptionHandler which
> is configured per channel. If you use manual acknowledgements,
> throwing exceptions in handleDelivery without acking or rejecting
> a delivery is not a very good idea: RabbitMQ will think that the
> delivery is still being processed, and will keep the message around.
If there is a problem with the consumer's channel which, for example, 
causes the consumer to throw an IOException when acking the message, 
what happens to the message? Is it automatically delivered to the next 
available consumer? I don't see how the consumer with a broken channel 
could cleanly recover from this situation.. I'm handling other types of 
exceptions by rejecting invalid messages to avoid this situation where 
possible.

Regards,
Bertrand


More information about the rabbitmq-discuss mailing list