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]

Reply via email to