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

Reply via email to