The c++ and python messaging apis need to clearly define the exceptions that can be thrown as well as when and where they can be thrown from.

As a start I'd like to compile a list of the important error conditions that can occur. I'm hoping other will chip in with changes and additions and without too much effort we can get a reasonably complete list agreed and then decide how to design the exception hierarchy used to communicate them.

The final stage will be determining which exceptions each method in the api may throw. There may be some exceptions very specific to particular methods that are more obvious when we reach that stage.

* tcp socket fails (or whatever the rdma equivalent is, assuming that is a detectable condition)

* missed heartbeats

* authentication errors

* authorisation errors

* queue not found

* exchange not found

* other address validation errors (e.g. exchange is of different type to that specified)

* session terminated by management

* connection terminated by management

* broker side queue limit breached

* exclusive subscriber violation

* feature not supported exception from broker (e,g, unsupported exchange type)

* protocol violation errors (by which I mean any sort of framing error or problem that is a result of a bug in the library or broker rather than being an invalid command by the application)

* internal error in broker, i.e. some as yet unidentified bug, misconfiguration or environmental problem

If you have any corrections or additions either email them back or edit the wiki page: http://cwiki.apache.org/confluence/display/qpid/API+Error+Conditions

--Gordon.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org

Reply via email to