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: users-unsubscribe@qpid.apache.org For additional commands, e-mail: users-help@qpid.apache.org