Appendix D. Message Selectors
Message selectors allow a JMS consumer
to be more selective about the messages it receives from a particular
topic or queue. Message selectors use Message
properties and headers as criteria in conditional expressions. These
conditional expressions use boolean logic to declare which messages
should be delivered to a client.
The message selectors are based on a subset of the SQL-92 conditional
expression syntax that is used in the WHERE
clauses of SQL statements. This section is a detailed exploration of
the message selector syntax.
To illustrate how message selectors are applied, we will consider a
hypothetical message that contains three application properties:
Age
, Weight
, and
LName
. Age
is an
int
, Weight
is a
double
, and LName
is a
String
property. The values of these properties
depend on the message. The message selector is used to obtain only
those messages with property values of interest to the consumer.
Identifiers
An identifier is the part of the expression that is being compared.
For example, the identifiers in the following expression are
Age
, Weight
, and
LName
:
Age
< 30 ANDWeight
>= 100.00 ANDLName
= 'Smith'
Identifiers can be any application-defined, JMS-defined, or provider-specific property, or one of several JMS headers. Identifiers must match the property or JMS header name exactly; identifiers are case sensitive. Identifiers have the same naming restrictions as property names (see Appendix C).
The JMS headers that can be used as identifiers ...
Get Java Message Service now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.