On 08/06/2012 08:31 AM, Sitapati das / Joshua J Wulf wrote:
How to reconcile these two seemingly contradictory things?
1. Messages must not be re-routed to a second alternate exchange
http://qpid.2158936.n2.nabble.com/Alternate-Exchange-of-Alternate-Exchange-td7000176.html
The AMQP 0-10 specification has a rule ('double-failure' on p216), that
states:
A message which is being routed to a alternate exchange,
MUST NOT be re-routed to a secondary alternate exchange
if it fails to route in the primary alternate exchange.
After such a failure, the message MUST be dropped. This
prevents looping.
2. Orphaned/rejected messages no longer dropped if the exchange they are
routed to first has an alternate exchange.
https://bugzilla.redhat.com/show_bug.cgi?id=679212
The rule from the specification is intended as a way of preventing
circular routes. As soon as you allow three exchanges in a chain, you
would have to deal with potential message looping.
In the case of a *queue's* alternate exchange, you can safely re-route
to that exchanges alternate-exchange if defined without any risk of
circularity; there are still only two exchanges in the chain.
So I would argue it is a case of adhering to the spirit of the law while
perhaps bending the letter of the law just a fraction.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]