Hi Gordon, I have implemented 2 Java JMS consumers based on your suggestion, using "topic://<somestuff>.<someelse>" and they worked perfectly. You can subscribe to the topics using "*" and "#" with ease. Java producer produces 2 messages for news and 2 messages for weather, total of 4. Pub/sub model worked with messages delivered to all JMS subs. //Java Producer Destination topic = producersession.createTopic("topic://usa.news"); Destination topic2 = producersession.createTopic("topic://usa.weather"); //Java Producer end //Java Consumer 1 Destination topic = session.createTopic("topic://*.weather"); //Java Consumer 1 output Hello weather! Hello weather! //Java Consumer 2 Destination topic = session.createTopic("topic://usa.*"); //Java Consumer 2 output Hello news! Hello news! Hello weather! Hello weather! //C++ Consumer string address = "topic://usa.news"; //tried all possible combo including "usa.news" alone //C++ Consumer output <nothing>
So based on my observation of the Qpid c++ API, there seems to be a lot of incompatibility with the JMS API or with JBOSS A-MQ. It can also simply be the case where the c++ implementation hasn't gone as far as the JMS API. On a related note, the following connection URL on Java works with JBOSS A-MQ authentication: amqp://guest:guest@localhost:5672 while c++ connection options: {username: guest, password: guest, protocol: amqp1.0} will fail at authentication with message from broker: username [null] or invalid password Hope that my observation is correct. Quynh> Date: Wed, 2 Jul 2014 17:46:01 +0100 > From: g...@redhat.com > To: dev@qpid.apache.org > Subject: Re: qpid cpp pub/sub > > On 07/02/2014 05:29 PM, Quynh Duong wrote: > > Hi Gordon, > > Thanks for the prompt reply, I would like to further clarify my problem. > > I am currently running the QPID JMS client and QPID CPP API against JBOSS > > A-MQ 6.1 on AMQP 1.0 protocol. I am still having trouble initiating a > > 1pub/2sub model where the pub is java and the sub is c++. I have tried > > different address options however I am still unable to emulate AMQP > > "private queue bound to exchange" approach to pub/sub. > > Ok, in that case you need to modify the address so A-MQ knows that it is > a 'topic'. Instead of using "news" use "'topic://news'" in the c++ receiver. > > > Also JBOSS A-MQ seems to not like subjects, since every time I add > > "/<subject>" to the address, the sub application will fail to receive > > messages. > > The core AMQP 1.0 specification doesn't defined any standard filters, > which is what is needed over 1.0 to do subject filtering. There are some > extensions registered under the Apache namespace which is what the c++ > client uses for subject matching. However these are not supported by A-MQ. > > (You could use a selector to do filtering instead if needed. There is > another extension registered for a JMS-style selector which you can use > with the qpid::messaging client and I believe A-MQ supports that filter.)