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