String mySelector = "/* Text of selector here */"; MessageConsumer myConsumer = mySession.createConsumer(myDest, mySelector);
The selector is a string whose syntax is based on a subset of the SQL92 conditional expression syntax, which allows you to filter the messages you receive based on the values of their properties (see Message Properties). See the Java Message Service Specification for a complete description of this syntax. The message consumer’s getMessageSelector method returns the consumer’s selector string (or null if no selector was specified when the consumer was created):
String mySelector = myConsumer.getMessageSelector();
Messages whose properties do not satisfy the consumer’s selector will be retained undelivered by the destination until they are retrieved by another message consumer. The use of message selectors can thus cause messages to be delivered out of sequence from the order in which they were originally produced. Only a message consumer without a selector is guaranteed to receive messages in their original order.
In some cases, the same connection may both publish and subscribe to the same topic destination. The createConsumer method accepts an optional boolean argument that suppresses the delivery of messages published by the consumer’s own connection:
String mySelector = "/* Text of selector here */"; MessageConsumer myConsumer = mySession.createConsumer(myDest, mySelector, true);
The resulting consumer will receive only messages published by a different connection.