On 07/08/2011 01:09 PM, reekahdoh wrote:

Hello All,

I'll try and keep this as simple as possible.  I'm using C++ Apache Qpid
v0.8, and am having a problem when using dynamic routes with the headers
exchange.

FIRSTLY:

Send two messages the default headers exchange on a broker.

One Message has the headers :data-format=standard, data-source=A
One Message has the headers :data-format=standard, data-source=B

Set up two subscriptions to the same broker.

One subscription (A) listening on for messages where data-format=standard.

One subscription (B) listening on for messages where data-source=B.

EXPECTED RESULTS:
(A) receives contains two messages, where the data-format=standard
(B) receives one message, where the data-source = B


So, if I run the above I get the correct expected results.


HOWEVER ...

Now introduce another broker.  Link the two using a dynamic route on the
headers exchange.
Publish messages to BROKER_A and subscribe to messages on BROKER_B.

I would expect the results to be the same as above but now what I see
is:-


ACTUAL RESULTS:
(A) queue contains three messages
(B) queue contains two message


Somehow duplicates are being created when using the dyamic route.  Is
this a bug?  I certainly would not expect to see this behaviour differ
when using dynamic routes.   It seems that the dynamic route picks up on the
same message being delivered to each different subscription.  Surely the end
behaviour must be the same as if I was using one broker?

Apologies for the delay in responding! I believe it is a bug and have raised https://issues.apache.org/jira/browse/QPID-3356 to track it.

There may be a workaround. It seems to me that the problem is connected to the binding keys for each subscription being the same. If you are able to assign unique keys (doesn't affect matching or routing for this exchange type), then the problem is avoided.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to