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 como, 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 propiedades para propiedades de cabecera específicas, donde el identificador es implícito y 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.
Propiedad 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 transfieren únicamente entre estas dos horas Java (donde la hora Java son milésimas de segundo desde el 01 de enero de 1970) 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 Este valor indica que sólo los mensajes marcados por el emisor como persistentes (PERSISTENT) se deben entregar al nodo JMSInput. En este caso, la serie que se genera tiene como prefijo el identificador JMSDeliveryMode. |
Prioridad | >= 5 AND <= 8 Este valor indica que únicamente los mensajes marcados por el emisor con la prioridad 5, 6, 7 u 8, deben entregarse al nodo JMSInput. En este caso, a la serie de caracteres generada se le pone el identificador JMSPriority como prefijo. |
ID de mensaje | > WMBRK123456 Este valor devuelve mensajes con un ID de mensaje mayor que el valor especificado. En este caso, a la serie de caracteres generada se le pone el identificador JMSMessageID como prefijo. |
Reentregado | FALSE Este valor indica 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 JMSRedlivered como prefijo. |
ID de correlación | = WMBRKABCDEFG Este valor 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. |