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" <[email protected]> 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:[email protected]

Reply via email to