I'm working on some code that sends messages to a topic exchange. I create a Receiver to get messages by key. When I use Receiver::fetch(Message, Duration) all appears ok; when I use Session::nextReceiver I never get a message. Here is some lines copied out of the real code to show usage:
qpid::messaging::Connection connection (broker_url_); connection.open (); session = connection.createSession(); sender = session.createSender("amq.topic"); ... qpid::messaging::Message msg (content, length); std::string dest ("a.b.c", 5); msg.setSubject (dest); sender.send(msg); ... In the receiving part ... std::string addr = "amq.topic/" + "a.b.#"; receivers.push_back (session.createReceiver(addr)); #if 1 // This next couple of lines works... qpid::messaging::Message message; if (receivers[0].fetch (message, qpid::messaging::Duration::SECOND * 1)) { // do something - this works } #else // This does not work. nextReceiver() doesn't ever return true qpid::messaging::Receiver r; if (session.nextReceiver (r, qpid::messaging::Duration::SECOND * 1)) { qpid::messaging::Message message = r.fetch(); // do something } #endif Is this a bug in my code, or in Qpid? If mine, what's the difference from fetching a message on a specific receiver and getting the next receiver then its message? Thanks, -Steve -- Steve Huston, Riverace Corporation Total Lifecycle Support for Your Networked Applications http://www.riverace.com --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:users-subscr...@qpid.apache.org