It could be that in the first case all consumers get their own queue and then all get the messages.
In the second case, perhaps they all join a shared queue and the first subscriber manages
to consume all the messages. (?)
I'm only quickly speculating. Can you check the broker with qpid-tool or qpid-queue-stat to
see how many and what queues are getting created.
It probably is some sort of bug that the implicit behavior seems inconsistent. Though I'm
sure you'll get a reasonable explanation for what is really going on.
I'll give this a test with some other clients tomorrow.
William
On Jan 12, 2012, at 10:20 PM, "Kalle" <kalle@airdice.com> wrote:
> Hi,
>
> Java client, cpp broker.
>
> When I do (a bit of a pseudocode here, I'll post with actual examples if necessary)
>
> Topic t = session.createtopic("yyy");
> MessagePublisher p = session.createPublisher(t);
>
> MessageSubscriber s = session.createSubscriber(t);
>
>
> things work. But when I do:
>
> Topic t = session.createtopic("xxx/yyy");
> MessagePublisher p = session.createPublisher(t);
>
> MessageSubscriber s = session.createSubscriber(t);
>
>
> they don't. What I see is that when I define my topic with a /, in order to use my own
exchange, not all consumers get my messages. Messages seem to go to just one consumer (which
ever got the message first). This would mean that they are in fact listening in a totally
different pattern, than in the first case (topic with default exchange).
>
> Why does it work like this? Is this a bug, or a feature I've yet to learn to like? :)
>
> --
> Kalle
>
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org
|