[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