![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
Intelligent Management : opérandes SIP
Vous pouvez utiliser les opérandes SIP et les protocoles associés dans le générateur de sous-expression, outil disponible en option permettant de générer des conditions de règle complexes à partir de sous-expressions avec AND, OR, NOT et le regroupement entre parenthèses.
Règles
Chaque classe de travail contient une liste ordonnée et facultative de règles qui sont évaluées pour une demande particulière afin de déterminer la stratégie à lui appliquer. Chaque règle se compose d'une expression booléenne et d'une valeur de stratégie. Si l'expression renvoie la valeur true pour une demande particulière, la stratégie associée à cette règle est utilisée.
La syntaxe et la sémantique d'une expression booléenne d'une règle sont similaires à celles de la clause WHERE d'une expression SQL (Structured Query Language). Plus précisément, la syntaxe d'une expression est définie par la spécification Java™ Message Service (JMS) 1.1. Pour plus d'informations sur la syntaxe et la sémantique des expressions, consultez la rubrique relative à la classification des demandes basées sur des règles.
Dans la spécification JMS, les identificateurs font référence à différents attributs pouvant être associés à une demande, par exemple, un paramètre de demande, un cookie ou un en-tête HTTP spécifique. Un identificateur JMS peut être considéré comme une variable de demande ou opérande. Ces opérandes peuvent être propres à un protocole. Par exemple, le nom de service SOAP est un opérande qui n'est valide que dans une classe de travail SOAP.
clienthost LIKE '%.ibm.com'
'%.ibm.com' est un littéral utilisé pour comparer le nom d'hôte client pour une demande.
Cette expression est vraie pour toutes les demandes qui émanent d'un ordinateur du domaine ibm.com.
Placez les littéraux chaîne entre guillemets simples. Ne placez pas les littéraux numériques entre guillemets simples. Utilisées avec les opérateurs AND, OR et NOT, les parenthèses permettent de former des expressions booléennes complexes. La spécification JMS 1.1 propose une description détaillée de ces éléments.Opérandes SIP
Opérande | Syntaxe | Description |
---|---|---|
Hôte client |
clienthost | Nom d'hôte complet du client. Il s'agit de la valeur du nom d'hôte de la commande IP. Cet opérande ne prend pas en charge les opérateurs numériques tels que >, >=, <, <=. |
IPV4 client |
clientipv4 | clientipv4 – Adresse IP du client dans le format Internet Protocol version 4 (IPv4) à quatre éléments séparés par des points n.n.n.n. |
IPV6 client |
clientipv6 | Adresse Internet Protocol version 6 (IPv6) 128 bits du type x:x:x:x:x:x:x:x conforme au protocole RFC 1924 de l'ordinateur client. |
En-tête de contact |
request.contact | Zone de l'en-tête de contact |
URI de contact |
request.contact.uri | Zone de l'URI de l'en-tête de contact |
En-tête d'origine |
request.from | Zone de l'en-tête d'origine. |
Nom affiché d'en-tête d'origine |
request.from.display-name | Zone du nom affiché de l'en-tête d'origine. |
URI d'origine |
request.from.uri | Zone de l'URI de l'en-tête d'origine. |
Hôte URI d'origine |
request.from.uri.host | Zone de l'hôte de l'en-tête d'origine. |
Port URI d'origine |
request.from.uri.port | Zone du port de l'URI de l'en-tête d'origine. |
Utilisateur URI d'origine |
request.from.uri.user | Zone de l'utilisateur de l'en-tête d'origine. |
Nom d'en-tête |
header $<nom> | Nom et valeur de l'en-tête. Par exemple, l'expression header$Hote='localhost' permet de vérifier qu'une demande contient un en-tête hôte HTTP avec la valeur localhost.
Pour vérifier la présence ou l'absence de l'en-tête d'hôte, utilisez l'une des expressions suivantes :
|
Pourcentage |
percentage$<val> | L'opérande de pourcentage a pour valeur true pour un pourcentage fixe du temps. Par exemple, percentage$50 a pour valeur true 50 % du temps. |
port |
port | Port d'écoute sur lequel la demande a été reçue. |
Augmentation progressive |
rampup$<heure_début> $<heure_fin> |
L'opérande d'augmentation progressive a pour valeur true pour un pourcentage variable du temps. Il est toujours associé à la valeur false avant <heure_début> et à la valeur true avant <heure_fin>.
Au fur et à mesure que l'heure se rapproche de la valeur <heure_fin>, il prend la valeur true pour un pourcentage du temps qui augmente de façon linéaire. Le format de <heure_début> et <heure_fin> est jour/mois/année::hour:min:sec. où jour est le jour du mois, mois est l'un des douze mois (Jan, Fév, Mar, Avr, Mai, Jui, Juil, Aoû, Sep, Oct, Nov, Déc), année est une année composée de 4 chiffres, heure est l'heure militaire à 2 chiffres et mn et s sont des valeurs à 2 chiffres pour les minutes et les secondes, respectivement.Par exemple, rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 est parfois associé à la valeur true à 8 heures le 1er janvier 2007 et est toujours associé à la valeur true à 17 heures le même jour, une fois l'heure de fin atteinte progressivement. |
Transport de demande |
request.transport | Le transport de la demande. |
URI de la demande |
request.uri | L'URI de la demande. |
Hôte de l'URI de la demande |
request.uri.host | Hôte de l'URI de la demande |
Port de l'URI de la demande |
request.uri.port | Port de l'URI de la demande. |
Utilisateur de l'URI de la demande |
request.uri.user | L'utilisateur de l'URI de la demande. |
Schéma de l'en-tête d'origine |
request.from.uri.scheme | Zone du schéma de l'en-tête d'origine. |
Schéma de l'en-tête de destination |
to.uri.scheme | Zone du schéma de l'en-tête de destination |
Schéma de l'URI |
request.uri.scheme | Schéma de l'URI. |
Hôte serveur |
serverhost | Nom d'hôte complet du serveur. Cet opérande ne prend pas en charge les opérateurs numériques tels que >, >=, <, <=. |
IPV4 serveur |
serveripv4 | Adresse IP de l'ordinateur serveur au format IPv4 à quatre éléments séparés par des points n.n.n.n. |
IPV6 serveur |
serveripv6 | Adresse IPv6 128 bits du type x:x:x:x:x:x:x:x conforme au document RFC 1924 de l'ordinateur serveur. |
Méthode SIP |
request.method | Méthode SIP de la demande. Valeurs admises : INVITE, TRYING, RINGING, ACK, OK et BYE. Si le message n'est pas une demande, cet opérande renvoie la valeur null. |
Code de réponse SIP |
response.code | Code de la réponse. Si le message n'est pas une réponse, cet opérande renvoie la valeur -1. |
Hôte client de l'en-tête de destination |
clienthost | Zone de l'hôte client de l'en-tête de destination. |
En-tête de destination |
request.to | Zone de l'en-tête de destination. |
Nom affiché d'en-tête de destination |
request.to.display-name | Zone du nom affiché de l'en-tête de destination. |
URI de destination |
request.to.uri | Zone de l'URI de l'en-tête de destination |
Hôte URI de destination |
request.to.uri.host | Zone du port de l'URI de l'en-tête de destination |
Utilisateur URI de destination |
request.to.uri.user | Zone de l'utilisateur de l'en-tête de destination |
Opérateurs
La fonction Gestion intelligente prend en charge les opérateurs dans les expressions de règles. Ces opérateurs sont également appelés prédicats dans la terminologie SQL car ils figurent dans une clause WHERE ou HAVING. La distinction entre les minuscules et les majuscules n'est pas nécessaire pour les opérateurs.
Opérateur | Description |
---|---|
OR | Opérateur logique OR (ou). |
AND | Opérateur logique AND (et). |
NOT | Opérateur logique de négation. |
IN | Exprime un opérande avec des valeurs multiples dans une même expression. Sa signification est conforme à la spécification SQL de l'opérateur. Par exemple, si vous souhaitez indiquer que le port peut avoir pour valeur 9080, 9090 et/ou 9091, utilisez le fragment d'expression suivant :
Dans SQL, la façon dont les valeurs à l'intérieur des parenthèses sont exprimées dépend du type de données de port. Cela signifie que si le port est de type entier, la syntaxe des valeurs sans apostrophes est correcte. Si le port est de type chaîne, l'expression correcte est :
|
LIKE | Exprime une correspondance de masque pour les valeurs d'opérande chaîne. La valeur doit contenir le caractère générique (%) à la position où la correspondance de masque est censée débuter. Par exemple, l'expression
host LIKE %blancapermet de rechercher les occurrences du terme blanca et tout autre terme se terminant par blanca, alors que l'expression host LIKE blanca%permet de rechercher les occurrences du terme blanca et tout autre terme commençant par blanca. L'expression host LIKE %blanca%permet de rechercher les occurrences du terme blanca et tous les termes comportant la chaîne blanca. La classe java.util.regex.Pattern est utilisée. |
= | Opérateur d'égalité utilisé pour exprimer une correspondance différenciant les minuscules et les majuscules. |
> | Opérateur supérieur à, qui doit être utilisé avec des opérandes numériques. |
>= | Opérateur supérieur ou égal à, qui doit être utilisé avec des opérandes numériques. |
< | Opérateur inférieur à, qui doit être utilisé avec des opérandes numériques |
<= | Opérateur inférieur ou égal à, qui doit être utilisé avec des opérandes numériques. |
< > | Opérateur logique de négation. |
BETWEEN | Cet opérateur est utilisé conjointement avec l'opérateur AND pour sélectionner un intervalle de valeurs comprenant la première valeur (la plus basse) et la dernière valeur (la plus haute). Ensemble, ils agissent sur des nombres et des dates. |
IS NULL | Teste un opérande dont la valeur est NULL. |
IS NOT NULL | Teste un opérande dont la valeur est autre que NULL. |