Types of errors that are possible:

  • connection failure (after connection has been established)
  • connection cannot be established
  • 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
  • internal error in client: same thing for client-side misconfiguration or bugs.
  • Exceeded client-side limitation: a client-side queue is over-full. E.g. user has not respected flow control limits on the client side.
  • Transaction related errors - not sure what the set is, probably just copy from spec exceptions.

Impact of errors:

  • session no longer valid[1]
  • connection no longer valid[1]
  • transaction aborted
  • no longer term impact, specific call simply failed

[1] May want to distinguish between amqp 0-10 session and sessions in the messaging api here. E.g. even if a particular condition kills the amqp 0-10 session/connection, that may not prevent recreating the session or reconnecting.

  • No labels