On 12/05/11 18:12, Gavin M. Roy wrote:
I am looking to enumerate in Pika the places or reasons that RabbitMQ
may disconnect the client connection. There's the case of bad
credentials and permission issues with the vhost for example. Is there a
common module/function called within the RabbitMQ source to handle these
types of disconnects?
In pretty much every case an #amqp_error{} record will be constructed,
then thrown as an exception. #amqp_error{} is in general constructed and
thrown by a call to rabbit_misc:protocol_error(), so that's probably the
best thing to look for.
Note that some AMQP exceptions lead to connections being disconnected
("hard" errors) while some lead to channels being disconnected ("soft"
errors). Both go through rabbit_misc:protocol_error(). The 0-9-1 XML
spec lists which are which (under "CONSTANTS", near the top).
Can I ask why you want to know though? In general the spec document
lists the error codes that can occur, and each error should be
accompanied by a descriptive text. The only exception is for errors that
happen while the connection is being established (is that what you're
asking about? - in which case I think it's permissions as you already
know, framing errors and internal errors.)
Cheers, Simon
--
Simon MacMullen
Staff Engineer, RabbitMQ
SpringSource, a division of VMware