Hi Dominic
unfortunately, it 's does not work!!
I try your idea, see my code (I move the pn_link_detach() and pn_link_open()
in all my code, but .)
Here my code:
// Init one time to use many time
pn_messenger_t* msgConsumer= pn_messenger(NULL);
pn_messenger_set_timeout (msgConsumer, 1000);
pn_messenger_set_blocking (msgConsumer, true);
pn_messenger_set_incoming_window (msgConsumer, 1);
// After in a method
pn_messenger_subscribe(msgConsumer,
amqp://127.0.0.1:5672/queue://myqueue);
pn_link_t* link = pn_messenger_get_link(msgConsumer,
(amqp://127.0.0.1:5672/queue://myqueue).c_str(), false);
*pn_link_detach(link);*
pn_terminus_t* terminus = pn_link_source(link);
pn_data_t* data = pn_terminus_filter (terminus);
/* Map creation with selector*/
std::string selector = jms-selector;
pn_data_put_map(data);
pn_data_enter(data);
pn_data_put_symbol(data, pn_bytes(selector.size(), selector.c_str()));
// Described
std::string filter = JMSCorrelationID='12346789';
pn_data_put_described(data);
pn_data_enter(data);
pn_data_put_string(data, pn_bytes(6, string));
pn_data_put_string(data, pn_bytes(filter.size(), filter.c_str()));
pn_data_exit(data);
*pn_link_open(link);*
pn_messenger_recv(msgConsumer, -1);
if (pn_messenger_incoming(msgConsumer))
{
// The message is arrived
pn_message_t* message = pn_message();
pn_messenger_get(msgConsumer, message);
.
.
pn_message_free(message);
}
And unfortunately, I have a time out, the message is on the queue, and like
before (if I do pn_messenger_start before pn_messenger_recv and
pn_messenger_stop after, it's works!!!
Your help is very important, I believe, I am not very far, but.
So what do you thinks Dominic???
Thanks a lot
--
View this message in context:
http://qpid.2158936.n2.nabble.com/CorrelationId-tp7614606p7617311.html
Sent from the Apache Qpid Proton mailing list archive at Nabble.com.