Verwenden Sie SIP-Operanden und deren zugehörige Protokolle im Erstellungsprogramm für Unterausdrücke, einem optionalen Tool, mit dem Sie mittels AND, OR, NOT und Gruppierungen in Klammern komplexe Regelbedingungen aus Unterausdrücken erstellen können.
Jede Arbeitsklasse enthält eine optional sortierte Liste mit Regeln, die für eine bestimmte Anforderung ausgewertet werden, um die Richtlinie für diese Anforderung zu bestimmen. Jede Regel setzt sich aus einem Booleschen Ausdruck und einem Richtlinienwert zusammen. Wenn die Auswertung des Ausdrucks für eine bestimmte Anforderung den Wert "true" ergibt, wird die Richtlinie verwendet, die dieser Regel zugeordnet ist.
Die Syntax und die Semantik eines Booleschen Ausdrucks für eine Regel gleichen der WHERE-Klausel eines SQL-Ausdrucks (Structured Query Language). Genauer gesagt, die Syntax eines Ausdrucks wird durch die Spezifikation Java Message Service (JMS) 1.1 definiert. Weitere Informationen finden Sie im Artikel Regelbasierte Anforderungsklassifizierung .
In der JMS-Spezifikation verweisen Kennungen auf verschiedene Attribute, die einer Anforderung zugeordnet werden können, z. B. ein bestimmter Abfrageparameter, ein Cookie oder ein HTTP-Header. Eine JMS-Kennung ist mit einer Anforderungsvariablen (oder Operanden) vergleichbar. Diese Operanden können protokollspezifisch sein. Der SOAP-Servicename ist beispielsweise ein Operand, der nur in einer SOAP-Arbeitsklasse gültig ist.
clienthost LIKE '%.ibm.com'In diesem Ausdruck ist '%.ibm.com' ein Literal, das mit dem Clienthostnamen für eine Anforderung verglichen wird. Für alle Anforderungen, die von einem Computer in der Domäne ibm.com stammen, wird dieser Ausdruck mit "true" (wahr) ausgewertet. Schließen Sie Zeichenfolgeliterale in einfache Anführungszeichen ein. Numerische Literale dürfen nicht nicht in einfache Anführungszeichen eingeschlossen werden. Zum Erstellen zusammengesetzter Boolescher Ausdrücke können Sie runde Klammern zusammen mit den Operatoren AND, OR oder NOT verwenden. Eine detaillierte Beschreibung finden Sie in der Spezifikation JMS 1.1.
Operand | Syntax | Beschreibung |
---|---|---|
Clienthost |
clienthost | Der vollständig qualifizierte Hostname des Clients. Dies ist der Wert des IP-Befehls "host". Dieser Operand unterstützt keine numerischen Operatoren wie >, >=, <, <=. |
Client-IPV4 |
clientipv4 | Die IP-Adresse des Clients im IPv4-Format (Internet Protocol Version 4) n.n.n.n. |
Client-IPV6 |
clientipv6 | Die 128-Bit-Adresse des Clientcomputers im IPv6-Format (Internet Protocol Version 6) x:x:x:x:x:x:x:x gemäß RFC (Request for Comments) 1924. |
Header für Ansprechpartner |
request.contact | Das Header-Feld für den Ansprechpartner. |
URI des Ansprechpartners |
request.contact.uri | Das Header-Feld mit dem URI des Ansprechpartners. |
Header für Absender |
request.from | Das Header-Feld für den Absender. |
Anzeigename des Headers für Absender |
request.from.display-name | Der Anzeigename im Header-Feld für den Absender. |
URI des Absenders |
request.from.uri | Der URI im Header-Feld für den Absender. |
Host des Ansender-URI |
request.from.uri.host | Der Host im Header-Feld für den Absender. |
URI-Port des Absenders |
request.from.uri.port | Der Port im URI im Header-Feld für den Absender. |
Benutzer im URI des Absenders |
request.from.uri.user | Der Benutzer im Header-Feld für den Absender. |
Header-Name |
header $<Name> | Ein Header-Name und -Wert. Der Ausdruck header$Host='localhost' prüft beispielsweise, ob eine Anforderung
einen HTTP-Host-Header mit dem Wert localhost enthält.
Verwenden Sie die folgenden Ausdrücke, um zu prüfen, ob der Host-Header vorhanden bzw. nicht vorhanden ist:
header$Host IS NOT NULL header$Host IS NULL |
Prozentsatz |
percentage$<Wert> | Der Operand für den Prozentsatz ergibt
einen festen Prozentsatz der Zeit den Wert true. Beispiel: percentage$50 ergibt für durchschnittlich 50 % der Zeit den Wert true. |
Port |
port | Der Port, an dem die Anforderung empfangen wurde. |
Anstieg |
rampup$<Startzeit>$<Fertigstellungszeit> | Der Rampup-Operand ergibt einen variablen Prozentsatz der Zeit den Wert true.
Er ergibt immer false vor der <Startzeit> und immer true nach
der <Fertigstellungszeit>.
Mit dem Fortschreiten der Zeit ab der <Startzeit> hin zur <Fertigstellungszeit>
ergibt der Operand immer true (linear ansteigender Prozentsatz). Das Format von <Startzeit> und <Fertigstellungszeit> ist Tag/Monat/Jahr::Stunde:Minute:Sekunde. Tag steht für den Tag des Monats, Monat für einen der zwölf Monate (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec), Jahr für die vierstellige Jahreszahl, Stunde für den zweistelligen Stundenwert nach 24-Stundenformat, Minute für den zweistelligen Minutenwert und Sekunde für den zweistelligen Sekundenwert.Beispiel: rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 wird erstmalig am 1. Januar 2007 um 8 Uhr morgens mit true und danach bis zur Fertigstellungszeit um 5 Uhr nachmittags desselben Tags immer mit true auswertet. |
Anforderungstransport |
request.transport | Der Transport der Anforderung. |
Anforderungs-URI |
request.uri | Der Anforderungs-URI. |
Host des Anforderungs-URI |
request.uri.host | Der Host im Anforderungs-URI. |
Port des Anforderungs-URI |
request.uri.port | Der Port im Anforderungs-URI. |
Benutzer des Anforderungs-URI |
request.uri.user | Der Benutzer im Anforderungs-URI. |
Schema des Headers für den Absender |
request.from.uri.scheme | Das Schema des Header-Felds für den Absender. |
Schema des Headers für den Empfänger |
to.uri.scheme | Das Schema des Header-Felds für den Empfänger. |
Schema des URI |
request.uri.scheme | Das Schema des URI. |
Serverhost |
serverhost | Der vollständig qualifizierte Hostname des Servers. Dieser Operand unterstützt keine numerischen Operatoren wie >, >=, <, <=. |
Server-IPV4 |
serveripv4 | Die IP-Adresse des Servercomputers im IPv4-Adressformat n.n.n.n. |
Server-IPV6 |
serveripv6 | Die 128-Bit-Adresse des Servercomputers im IPv6-Format x:x:x:x:x:x:x:x gemäß RFC 1924. |
SIP-Methode |
request.method | Die SIP-Methode für die Anforderung. Die gültigen Werte sind INVITE, TRYING, RINGING, ACK, OK und BYE. Wenn die Nachricht keine Anforderung ist, gibt dieser Operand null zurück. |
SIP-Antwortcode |
response.code | Der Antwortcode der Antwort. Wenn die Nachricht keine Antwort ist, gibt dieser Operand "-1" zurück. |
Clienthost des Empfängers |
clienthost | Der Clienthost im Header-Feld für den Empfänger. |
Header für Empfänger |
request.to | Das Header-Feld für den Empfänger. |
Anzeigename des Headers für Empfänger |
request.to.display-name | Der Anzeigename im Header-Feld für den Empfänger. |
URI des Empfängers |
request.to.uri | Der URI im Header-Feld für den Empfänger. |
URI-Host des Empfängers |
request.to.uri.host | Der Port im URI im Header-Feld für den Empfänger. |
Benutzer im URI des Absenders |
request.to.uri.user | Der Benutzer im Header-Feld für den Empfänger. |
WebSphere Virtual Enterprise unterstützt in Regelausdrücken die Operatoren in der folgenden Tabelle. Diese Operatoren werden in der SQL-Terminologie auch als Prädikate bezeichnet, weil sie innerhalb einer Klausel "WHERE" oder "HAVING" verwendet werden. Bei der Schreibweise von Operatoren wird nicht zwischen Groß- und Kleinschreibung unterschieden.
Operator | Beschreibung |
---|---|
OR | Der logische Operator OR. |
AND | Der logische Operator AND. |
NOT | Der Operator für Negation. |
IN | Wird für die Angabe von Operanden mit mehreren Werten in einem Ausdruck verwendet.
Die Bedeutung dieses Operators ist mit der SQL-Standardbedeutung konform.
Wenn Sie beispielsweise ausdrücken möchten,
dass der Portwert einem der angegebenen Werte oder allen angegebenen Werten, wie z. B. 9080,
9090, 9091 entsprechen kann, geben Sie das folgende Ausdrucksfragment an:
port IN (9080,9090,9091) Wie die Werte in den runden Klammern in
SQL ausgedrückt werden, richtet sich nach dem Datentyp von "port".
Wenn "port" den Datentyp "integer" hat, sind die Werte ohne einfache Anführungszeichen
syntaktisch korrekt.
Wenn "port" den Datentyp "string" hat, ist der korrekte Ausdruck wie folgt:
port IN ('9080','9090','9091') |
LIKE | Dieser Operator drückt eine Mustererkennung für Zeichenfolgeoperanden aus. Der Wert muss das Platzhalterzeichen (%) an der Position enthalten, an der die Mustererkennung beginnen soll. Beispiel:
host LIKE %blancaDieser Ausdruck entspricht dem Wort blanca und allen anderen Wörtern, die mit blanca enden. Der folgende Ausdruck hingegen entspricht dem Wort blanca und allen anderen Wörtern, die mit blanca beginnen: host LIKE blanca%. Der folgende Ausdruck entspricht dem Wort blanca und allen anderen Wörtern, in denen blanca eingebettet ist: host LIKE %blanca% Die Klasse java.util.regex.Pattern wird verwendet. |
= | Der Gleichheitsoperator drückt einen Abgleich aus, bei dem die Groß-/Kleinschreibung berücksichtigt wird. |
> | Der Größer-als-Operator wird für numerische Operanden verwendet. |
>= | Der Größer-gleich-Operator wird für numerische Operanden verwendet. |
< | Der Kleiner-als-Operator wird für numerische Operanden verwendet. |
<= | Der Kleiner-gleich-Operator wird für numerische Operanden verwendet. |
< > | Nicht-gleich-Operator. |
BETWEEN | Dieser Operator wird zusammen mit dem Operator AND verwendet, um einen Bereich von Werten einschließlich des ersten (niedrigsten) und des letzten (höchsten) Wertes auszuwählen. Diese Operationen werden für Zahlen und Datumsangaben verwendet. |
IS NULL | Prüft, ob ein Operand den Wert NULL hat. |
IS NOT NULL | Prüft, ob ein Operand einen anderen Wert als NULL hat. |