Un selector de mensajes permite a un consumidor de JMS ser más selectivo con los mensajes que recibe de un tema o una cola en particular.
Un selector de mensajes utiliza cabeceras y propiedades de mensaje como criterios en las expresiones condicionales. Estas expresiones utilizan lógica booleana para declarar qué mensajes se deben entregar a un cliente, por ejemplo el nodo JMSInput.
La tabla siguiente muestra la construcción de un selector de mensajes. Éste consta de un identificador, por ejemplo la cabecera JMSPriority, o una propiedad controlada por aplicación myProperty1. La serie de caracteres de selector debe especificar un operador seguido de un literal.
Elemento | Valores válidos |
Identificadores |
|
Operadores | AND, OR, LIKE, BETWEEN, =, <>, <, >, <=, >=, IS NULL, IS NOT NULL |
Literales |
|
El nodo JMSInput proporciona una serie de caracteres de formato libre Selector de propiedad, para especificar selectores que filtran o incluyen propiedades de aplicación. El nodo también tiene atributos para propiedades de cabecera específicas, donde el identificador es implícito y está generado por el nodo. Para los selectores de cabecera, se deben especificar el operador y la parte de literal de la serie de caracteres.
Si se especifica más de un selector, el nodo genera una serie de caracteres de selector compuesta, donde las series de caracteres de selector individuales se concatenan con el operador AND y cada parte de serie de caracteres de selector se pone entre paréntesis.
Atributo de selector | Descripción |
Selector de propiedad | OrderValue > 100,00 Esta serie de caracteres se utiliza directamente como se muestra. |
Indicación de la hora | BETWEEN 1057576423231 AND 10575788993265 Los mensajes que se ponen entre estas dos horas Java (donde la hora Java son milisegundos desde el 01 de enero de 1970) sólo se entregan al nodo JMSInput. En este caso, a la serie de caracteres generada se le pone el identificador JMSTimestamp como prefijo. |
Modalidad de entrega | PERSISTENT Esto significa que sólo los mensajes marcados por el emisor como persistentes (PERSISTENT) se deben entregar al nodo JMSInput. En este caso, a la serie de caracteres generada se le pone el identificador JMSDeliveryMode como prefijo. |
Prioridad | >= 5 AND <= 8 Esto significa que sólo los mensajes marcados por el emisor como con prioridad 5, 6, 7 u 8 se deben entregar al nodo JMSInput. En este caso, a la serie de caracteres generada se le pone el identificador JMSPriority como prefijo. |
ID de mensaje | > WMBRK123456 Esto devolverá mensajes cuyo ID de mensaje sea mayor que el valor especificado. En este caso, a la serie de caracteres generada se le pone el identificador JMSMessageID como prefijo. |
Reentregado | FALSE Esto significa que el nodo debe recibir los mensajes que no se han reentregado. En este caso, a la serie de caracteres generada se le pone el identificador JMSRedelivered como prefijo. |
ID de correlación | = WMBRKABCDEFG Esto devuelve mensajes cuyo ID de correlación es igual al valor WMBRKBABCDEFG. En este caso, a la serie de caracteres generada se le pone el identificador JMSCorrelationID como prefijo. |