Hello While using C++ Broker (0.34) and JMS Selector (JMS 0.7.0) I observed two things: 1/ the JMSSelector filter cannot use the JMSCorrelationID header but must use the amqp equivalent header. so my selector is
messageConsumer = session.createConsumer(queue, "\"amqp.correlation_id\"='abc' AND color='blue' AND weight > 2500"); //JMSCorrelationID='abc' AND color = 'blue' AND weight > 2500"); 2/ the messages that does not match the filter stay in the queue (broker side). qpid-stat gives me this (300 unconsumed messages) queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ========================================================================================================================== aa9f75f7-a42f-4c97-96f6-ea12a61d6820:0.0 Y Y 0 0 0 0 0 0 1 2 A *300 *1.70k 1.40k 68.1k 381k 313k 0 2 B 1.70k 1.70k 0 381k 381k 0 0 2 Behind the scene, queues are binded to a topic exchange. Based on this discussion, the JMSCorrelation ID should be ok in the next release: https://issues.apache.org/jira/browse/QPID-6714 Why do messages stay in the queue server side? related to https://issues.apache.org/jira/browse/QPID-5030? Am I missing something? Cheers.