Hel
We are using C++ API - qpid-cpp-1.39.0 and qpid-proton-0.34.0 and seems to have 
an issue handling multiple instances of application (using different 
implementations).
The broker supplies all messages to our entity in 1 Response Queue and there 
are uniqueAPPId to identify the messages received in Response Queue.

However, at times, only 1 instance seems to get these messages. We suspect it's 
the way we retrieve the messages from the queue. Our current logic is
Using namespace qpid::messaging;
Message msg;
If(Receiver::fetch (msg, Duration(0)))
{
        //process the message if unqiueAppId is ours

        //Acknowledge the message
       Session::acknowledge(msg);
}

Is this the correct way of handling the messages form Response Queue?


  1.  We had a look at description for Receiver::get() and it indicates that 
the message is retrieved from the Receiver's local Queue.
For Receiver::fetch(), the description says "Retrieves the message from 
Receiver's Subscription. Unlike get(), this message will check with the server 
that there is no message for the subscription this
Receiver is serving before returning false. Is the Receiver::fetch method 
popping the message off the Response Queue as opposed to Receiver::get () 
method.

  1.  Whats the purpose of Session::acknowledge(msg) ? Does it pop the message 
off the Response Queue.

We want to only pull the message off the queue which are destined to our 
instance. Otherwise, we don't want to remove them since this might affect other 
instances.

Please can you help in throwing some light on how to get this logic right.

Best Regards,
Rahul

________________________________
NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions or 
views contained herein are not intended to be, and do not constitute, advice 
within the meaning of Section 975 of the Dodd-Frank Wall Street Reform and 
Consumer Protection Act. If you have received this communication in error, 
please destroy all electronic and paper copies and notify the sender 
immediately. Mistransmission is not intended to waive confidentiality or 
privilege. Morgan Stanley reserves the right, to the extent required and/or 
permitted under applicable law, to monitor electronic communications, including 
telephone calls with Morgan Stanley personnel. This message is subject to the 
Morgan Stanley General Disclaimers available at the following link: 
http://www.morganstanley.com/disclaimers.  If you cannot access the links, 
please notify us by reply message and we will send the contents to you. By 
communicating with Morgan Stanley you acknowledge that you have read, 
understand and consent, (where applicable), to the foregoing and the Morgan 
Stanley General Disclaimers.

You may have certain rights regarding the information that Morgan Stanley 
collects about you. Please see our Privacy Pledge 
https://www.morganstanley.com/privacy-pledge for more information about your 
rights.

Reply via email to