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]
