You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Sitapati das / Joshua J Wulf <si...@worldsankirtan.net> on 2012/08/06 09:31:40 UTC
Routing to second alternate exchange
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
- Josh
Re: Routing to second alternate exchange
Posted by Gordon Sim <gs...@redhat.com>.
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