Ein Nachrichtenselektor ermöglicht einem JMS-Konsumenten eine selektivere Auswahl hinsichtlich der zu empfangenden Nachrichten zu einem bestimmten Thema oder aus einer bestimmten Warteschlange.
Ein Nachrichtenselektor verwendet Nachrichteneigenschaften und Header als Kriterien in Bedingungsausdrücken. Diese Ausdrücke deklarieren unter Verwendung der booleschen Logik, welche Nachrichten an einen Client (z. B. den JMSEmpfangsknoten) gesendet werden sollen.
In der folgenden Tabelle ist der Aufbau eines Nachrichtenselektors dargestellt. Er besteht aus einer Kennung wie beispielsweise dem Header JMSPriority oder einer anwendungsgesteuerten Eigenschaft myProperty1. Die Selektorenzeichenfolge muss einen Operator gefolgt von einem Literal angeben.
Element | Gültige Werte |
Kennungen |
|
Operatoren | AND, OR, LIKE, BETWEEN, =, <>, <, >, <=, >=, IS NULL, IS NOT NULL |
Literale |
|
Der JMSEmpfangsknoten stellt für die Angabe von Selektoren eine freie Formatzeichenfolge (PropertySelector) bereit. Diese Selektoren filtern Anwendungseigenschaften oder schließen diese ein. Darüber hinaus verfügt der Knoten über Attribute für bestimmte Headereigenschaften, bei denen die ID implizit ist und vom Knoten generiert wird. Für die Header-Selektoren müssen der Operator- und Literal-Bereich der Zeichenfolge angegeben werden.
Werden mehrere Selektoren angegeben, generiert der Knoten eine kombinierte Selektorenzeichenfolge, bei der die einzelnen Selektorenzeichenfolgen durch den Operator AND verknüpft sind und jeder Bereich der Selektorenzeichenfolge in Klammern gesetzt ist.
Selektorenattribut | Beschreibung |
PropertySelector | OrderValue > 100.00 Diese Zeichenfolge wird genau wie dargestellt verwendet. |
TimeStamp | BETWEEN 1057576423231 AND 10575788993265 Nur Nachrichten, die zwischen diesen beiden Java-Zeitangaben liegen (dabei ist die Java-Zeitangabe seit dem 1. Januar 1970 in Millisekunden definiert), werden an den JMSEmpfangsknoten zugestellt. In diesem Fall wird der generierten Zeichenfolge die ID JMSTimestamp als Präfix vorangestellt. |
Zustellmodus | PERSISTENT Dies bedeutet, dass nur Nachrichten, die vom Absender als PERSISTENT markiert wurden, an den JMSEmpfangsknoten zugestellt werden sollen. In diesem Fall wird der generierten Zeichenfolge die ID JMSDeliveryMode als Präfix vorangestellt. |
Priorität | >= 5 AND <= 8 Dies bedeutet, dass nur Nachrichten, die vom Absender mit der Priorität 5, 6, 7 oder 8 markiert wurden, an den JMSEmpfangsknoten zugestellt werden sollen. In diesem Fall wird der generierten Zeichenfolge die ID JMSPriority als Präfix vorangestellt. |
Nachrichten-ID | > WMBRK123456 Dies bedeutet, dass nur Nachrichten zurückgegeben werden, deren Nachrichten-ID größer als der angegebene Wert ist. In diesem Fall wird der generierten Zeichenfolge die ID JMSMessageID als Präfix vorangestellt. |
Erneut zugestellt | FALSE Dies bedeutet, dass nur Nachrichten vom Knoten empfangen werden, die nicht nicht erneut zugestellt wurden. In diesem Fall wird der generierten Zeichenfolge die ID JMSRedlivered als Präfix vorangestellt. |
Korrelations-ID | = WMBRKABCDEFG Dies bedeutet, dass nur Nachrichten zurückgegeben werden, deren Korrelations-ID dem Wert WMBRKBABCDEFG entspricht. In diesem Fall wird der generierten Zeichenfolge die ID JMSCorrelationID als Präfix vorangestellt. |