Expressions de politique avancées : DataStream
L’infrastructure de politiques de l’appliance NetScaler inclut des expressions que vous pouvez utiliser pour évaluer et traiter le trafic des serveurs de base de données lorsque l’appliance est déployée entre une batterie de serveurs d’applications et leurs serveurs de base de données associés.
Cette rubrique comprend les sections suivantes :
- Expressions pour le protocole MySQL
- Expressions pour évaluer les connexions Microsoft SQL Server
Expressions pour le protocole MySQL
Les expressions suivantes évaluent le trafic associé aux serveurs de base de données MySQL. Vous pouvez utiliser les expressions basées sur les demandes (expressions commençant par MYSQL.CLIENT et MYSQL.REQ) dans les politiques pour prendre des décisions de commutation de demandes au point de liaison du serveur virtuel de commutation de contenu et les expressions basées sur les réponses (expressions commençant par MYSQL.RES) pour évaluer les réponses du serveur aux moniteurs de santé configurés par l’utilisateur.
-
MYSQL.CLIENT. Fonctionne sur les propriétés client d’une connexion MySQL.
-
MYSQL.CLIENT.CAPABILITIES. Renvoie l’ensemble d’indicateurs que le client a défini dans le champ des fonctionnalités du paquet d’initialisation de l’établissement de la liaison lors de l’authentification. Les indicateurs définis sont par exemple CLIENT_FOUND_ROWS, CLIENT_COMPRESS et CLIENT_SSL.
-
MYSQL.CLIENT.CHAR_SET. Renvoie la constante d’énumération affectée au jeu de caractères utilisé par le client. Les <m> <m> opérateurs EQ (\) et NE (\), qui renvoient des valeurs booléennes pour indiquer le résultat d’une comparaison, sont utilisés avec ce préfixe. Les constantes d’énumération des jeux de caractères sont les suivantes :
- LATIN2_CZECH_CS
- DEC8_SWEDISH_CI
- CP850_GENERAL_CI
- GREEK_GENERAL_CI
- LATIN1_GERMAN1_CI
- HP8_ENGLISH_CI
- KOI8R_GENERAL_CI
- LATIN1_SWEDISH_CI
- LATIN2_GENERAL_CI
- SWE7_SWEDISH_CI
- ASCII_GENERAL_CI
- CP1251_BULGARIAN_CI
- LATIN1_DANISH_CI
- HEBREW_GENERAL_CI
- LATIN7_ESTONIAN_CS
- LATIN2_HUNGARIAN_CI
- KOI8U_GENERAL_CI
- CP1251_UKRAINIAN_CI
- CP1250_GENERAL_CI
- LATIN2_CROATIAN_CI
- CP1257_LITHUANIAN_CI
- LATIN5_TURKISH_CI
- LATIN1_GERMAN2_CI
- ARMSCII8_GENERAL_CI
- UTF8_GENERAL_CI
- CP1250_CZECH_CS
- CP866_GENERAL_CI
- KEYBCS2_GENERAL_CI
- MACCE_GENERAL_CI
- MACROMAN_GENERAL_CI
- CP852_GENERAL_CI
- LATIN7_GENERAL_CI
- LATIN7_GENERAL_CS
- MACCE_BIN
- CP1250_CROATIAN_CI
- LATIN1_BIN
- LATIN1_GENERAL_CI
- LATIN1_GENERAL_CS
- CP1251_BIN
- CP1251_GENERAL_CI
- CP1251_GENERAL_CS
- MACROMAN_BIN
- CP1256_GENERAL_CI
- CP1257_BIN
- CP1257_GENERAL_CI
- ARMSCII8_BIN
- ASCII_BIN
- CP1250_BIN
- CP1256_BIN
- CP866_BIN
- DEC8_BIN
- CORBEILLE GRECQUE
- HEBREW_BIN
- HP8_BIN
- KEYBCS2_BIN
- KOI8R_BIN
- KOI8U_BIN
- LATIN2_BIN
- LATIN5_BIN
- LATIN7_BIN
- CP850_BIN
- CP852_BIN
- SWE7_BIN
- UTF8_BIN
- GEOSTD8_GENERAL_CI
- GEOSTD8_BIN
- LATIN1_SPANISH_CI
- UTF8_UNICODE_CI
- UTF8_ICELANDIC_CI
- UTF8_LATVIAN_CI
- UTF8_ROMANIAN_CI
- UTF8_SLOVENIAN_CI
- UTF8_POLISH_CI
- UTF8_ESTONIAN_CI
- UTF8_SPANISH_CI
- UTF8_SWEDISH_CI
- UTF8_TURKISH_CI
- UTF8_CZECH_CI
- UTF8_DANISH_CI
- UTF8_LITHUANIAN_CI
- UTF8_SLOVAK_CI
- UTF8_SPANISH2_CI
- UTF8_ROMAN_CI
- UTF8_PERSIAN_CI
- UTF8_ESPERANTO_CI
- UTF8_HUNGARIAN_CI
- CHARSET NON VALIDE
-
MYSQL.CLIENT.DATABASE. Renvoie le nom de la base de données spécifiée dans le paquet d’authentification que le client envoie au serveur de base de données. Il s’agit de l’attribut databasename.
-
MYSQL.CLIENT.USER. Renvoie le nom d’utilisateur (dans le paquet d’authentification) avec lequel le client tente de se connecter à la base de données. Il s’agit de l’attribut utilisateur.
-
MYSQL.REQ. Fonctionne sur une requête MySQL.
-
MYSQL.REQ.COMMAND. Identifie la constante d’énumération affectée au type de commande dans la demande. Les <m> <m> opérateurs EQ (\) et NE (\), qui renvoient des valeurs booléennes pour indiquer le résultat d’une comparaison, sont utilisés avec ce préfixe. Les valeurs constantes d’énumération sont les suivantes :
- DORMIR
- ARRÊTER
- INIT_DB
- REQUÊTE
- LISTE_DE_CHAMP
- CREATE_DB
- DROP_DB
- RAFRAÎCHIR
- ARRÊT
- STATISTIQUES
- INFORMATION_PROCESSUS
- SE CONNECTER
- PROCESS_KILL
- DEBUG
- PING
- HEURE
- INSERTION_DIFFÉRÉE
- CHANGE_UTILISATEUR
- BINLOG_DUMP
- TABLE_DUMP
- CONNEXION_OUT
- ENREGISTRER_ESCLAVE
- STMT_PREPARE
- STMT_EXECUTE
- STMT_SEND_LONG_DATA
- STMT_CLOSE
- STMT_RESET
- SET_OPTION
- STMT_FETCH
-
MYSQL.REQ.QUERY. Identifie la requête dans la requête MySQL.
-
MYSQL.REQ.QUERY.COMMAND. Renvoie le premier mot clé de la requête MySQL.
-
MYSQL.REQ.QUERY.SIZE. Renvoie la taille de la requête au format entier. La méthode SIZE est similaire à la méthode CONTENT_LENGTH qui renvoie la longueur d’une requête ou d’une réponse HTTP.
-
MYSQL.REQ.QUERY.TEXT. Renvoie une chaîne couvrant l’intégralité de la requête.
-
<n>MYSQL.REQ.QUERY.TEXT (\). Renvoie les n premiers octets de la requête MySQL sous forme de chaîne. <n>Ceci est similaire à HTTP.BODY (\).
Paramètres :
n - Nombre d’octets à renvoyer
-
MYSQL.RES. Fonctionne sur une réponse MySQL.
-
<i>MYSQL.RES.ATLEAST_ROWS_COUNT (\). Vérifie si la réponse comporte au moins un nombre de lignes et renvoie une valeur booléenne TRUE ou FALSE pour indiquer le résultat.
Paramètres :
i - Nombre de lignes
-
MYSQL.RES. ERREUR. Identifie l’objet d’erreur MySQL. L’objet d’erreur inclut le numéro d’erreur et le message d’erreur.
-
MYSQL.RES.ERROR.MESSAGE. Renvoie le message d’erreur extrait de la réponse d’erreur du serveur.
-
MYSQL.RES.ERROR.NUM. Renvoie le numéro d’erreur extrait de la réponse d’erreur du serveur.
-
MYSQL.RES.ERROR.SQLSTATE. Renvoie la valeur du champ SQLSTATE dans la réponse d’erreur du serveur. Le serveur MySQL traduit les valeurs des numéros d’erreur en valeurs SQLSTATE.
-
<i>MYSQL.RES.FIELD (\). <sup>Identifie le paquet qui correspond à la valeur i \th</sup> champ individuel dans la réponse du serveur. Chaque paquet de champ décrit les propriétés de la colonne associée. Le nombre de paquets (i) commence à 0.
Paramètres :
i - Numéro du paquet
-
<i>MYSQL.RES.FIELD (\) .CATALOG. Renvoie la propriété de catalogue du paquet de champs.
-
<i>MYSQL.RES.FIELD (\) .CHAR_SET. Renvoie le jeu de caractères de la colonne. Les <m> <m> opérateurs EQ (\) et NE (\), qui renvoient des valeurs booléennes pour indiquer le résultat d’une comparaison, sont utilisés avec ce préfixe.
-
<i>MYSQL.RES.FIELD (\) .TYPE DE DONNÉES. Renvoie une constante d’énumération qui représente le type de données de la colonne. Il s’agit de l’attribut type (également appelé enum_field_type) de la colonne. Les <m> <m> opérateurs EQ (\) et NE (\), qui renvoient des valeurs booléennes pour indiquer le résultat d’une comparaison, sont utilisés avec ce préfixe. Les valeurs possibles pour les différents types de données sont les suivantes :
- DÉCIMAL
- MINUSCULE
- COURT
- LONG
- FLOTTER
- DOUBLE
- NULL
- HORODATAGE
- LONGLONG
- INT24
- DATE
- HEURE
- DATE/HEURE
- ANNÉE
- NOUVELLE DATE
- VARCHAR (nouveau dans MySQL 5.0)
- BIT (nouveau dans MySQL 5.0)
- NEWDECIMAL (nouveau dans MySQL 5.0)
- ENUM
- ENSEMBLE
- TINY_BLOB
- MEDIUM_BLOB
- LONG_BLOB
- BLOB
- VAR_STRING
- FICELLE
- GÉOMÉTRIE
-
<i>MYSQL.RES.FIELD (\) .DB. Renvoie l’attribut d’identifiant de base de données (db) du paquet de champs.
-
<i>MYSQL.RES.FIELD (\) .DECIMALS. Renvoie le nombre de positions après la virgule décimale si le type est DECIMAL ou NUMERIC. Il s’agit de l’attribut décimal du paquet de champs.
-
<i>MYSQL.RES.FIELD (\) .FLAGS. Renvoie la propriété flags du paquet de champs. Les valeurs d’indicateur hexadécimales possibles sont les suivantes :
- 0001 : NOT_NULL_FLAG
- 0002 : PRI_KEY_FLAG
- 0004 : UNIQUE_KEY_FLAG
- 0008 : MULTIPLE_KEY_FLAG
- 0010 : BLOB_FLAG
- 0020 : DRAPEAU_NON SIGNÉ
- 0040 : ZEROFILL_FLAG
- 0080 : DRAPEAU BINAIRE
- 0100 : ENUM_FLAG
- 0200 : AUTO_INCREMENT_FLAG
- 0400 : TIMESTAMP_FLAG
- 0800 : SET_FLAG
-
<i>MYSQL.RES.FIELD (\) .LENGTH. Renvoie la longueur de la colonne. Il s’agit de la valeur de l’attribut de longueur du paquet de champs. La valeur renvoyée peut être supérieure à la valeur réelle. Par exemple, une instance d’une colonne VARCHAR (2) peut renvoyer la valeur 2 même si elle ne contient qu’un seul caractère.
-
<i>MYSQL.RES.FIELD (\) .NOM. Renvoie l’identifiant de colonne (le nom suivant la clause AS, le cas échéant). Il s’agit de l’attribut de nom du paquet de champs.
-
<i>MYSQL.RES.FIELD (\) .NOM_ORIGINAL. Renvoie l’identifiant de colonne d’origine (avant la clause AS, le cas échéant). Il s’agit de l’attribut org_name du paquet de champs.
-
<i>MYSQL.RES.FIELD (\) .TABLE_ORIGINALE. Renvoie l’identifiant de table d’origine de la colonne (avant la clause AS, le cas échéant). Il s’agit de l’attribut org_table du paquet de champs.
-
<i>MYSQL.RES.FIELD (\) .TABLEAU. Renvoie l’identifiant de table de la colonne (après la clause AS, le cas échéant). Il s’agit de l’attribut de table du paquet de champs.
-
MYSQL.RES.FIELDS_COUNT. Renvoie le nombre de paquets de champs contenus dans la réponse (l’attribut field_count du paquet OK).
-
MYSQL.RES.OK. Identifie le paquet OK envoyé par le serveur de base de données.
-
MYSQL.RES.OK.AFFECTED_ROWS. Renvoie le nombre de lignes affectées par une requête INSERT, UPDATE ou DELETE. Il s’agit de la valeur de l’attribut affected_rows du paquet OK.
-
MYSQL.RES.OK.INSERT_ID. Identifie l’attribut unique_id du paquet OK. Si aucune identité d’incrémentation automatique n’est générée par l’instruction ou la requête MySQL en cours, la valeur de unique_id, et donc la valeur renvoyée par l’expression, est 0.
-
MYSQL.RES.OK.MESSAGE. Renvoie la propriété de message du paquet OK.
-
MYSQL.RES.OK.STATUS. Identifie la chaîne de bits dans l’attribut server_status du paquet OK. Les clients peuvent utiliser l’état du serveur pour vérifier si la commande en cours fait partie d’une transaction en cours. Les bits de la chaîne de bits server_status correspondent aux champs suivants (dans l’ordre indiqué) :
- EN TRANSACTION
- AUTO_COMMIT
- PLUS DE RÉSULTATS
- REQUÊTE MULTIPLE
- MAUVAIS INDEX UTILISÉ
- AUCUN INDICE UTILISÉ
- LE CURSEUR EXISTE
- DERNIÈRE LIGNE VUE
- BASE DE DONNÉES SUPPRIMÉE
- AUCUNE BARRE OBLIQUE INVERSE NE S’ÉCHAPPE
-
MYSQL.RES.OK.WARNING_COUNT. Renvoie l’attribut warning_count du paquet OK.
-
<i>MYSQL.RES.ROW (\). <sup>Identifie le paquet qui correspond à la valeur i \th</sup> ligne individuelle dans la réponse du serveur de base de données.
Paramètres :
i - Numéro de ligne
-
<j>MYSQL.RES.ROW (\ <i>) .DOUBLE_ELEM (\). <sup>Vérifie si le fichier j \ th</sup> <sup>colonne du fichier i \th</sup> la ligne de la table est NULL. Conformément aux conventions C, les index i et j commencent tous deux à 0. <sup>Par conséquent, la ligne i et la colonne j sont en fait le (i+1) \th</sup> <sup>ligne et le (j+1) \th</sup> colonne, respectivement.
Paramètres :
i - Numéro de ligne
j - Numéro de colonne
-
MYSQL.RES.ROW (\ <i>) .IS_NULL_ELEM (j). <sup>Vérifie si le fichier j \ th</sup> <sup>colonne du fichier i \th</sup> la ligne de la table est NULL. Conformément aux conventions C, les index i et j commencent tous deux à 0. <sup>Par conséquent, la ligne i et la colonne j sont en fait le (i+1) \th</sup> <sup>ligne et le (j+1) \th</sup> colonne, respectivement.
Paramètres :
i - Numéro de ligne
j - Numéro de colonne
-
<j>MYSQL.RES.ROW (\ <i>) .NUM_ELEM (\). <sup>Renvoie une valeur entière à partir de j \th</sup> <sup>colonne du fichier i \th</sup> rangée du tableau. Conformément aux conventions C, les index i et j commencent tous deux à 0. <sup>Par conséquent, la ligne i et la colonne j sont en fait le (i+1) \th</sup> <sup>ligne et le (j+1) \th</sup> colonne, respectivement.
Paramètres :
i - Numéro de ligne
j - Numéro de colonne
-
MYSQL.RES.ROW (\ <i>) .TEXT_ELEM (j). <sup>Renvoie une chaîne à partir du fichier j \th</sup> <sup>colonne du fichier i \th</sup> rangée du tableau. Conformément aux conventions C, les index i et j commencent tous deux à 0. <sup>Par conséquent, la ligne i et la colonne j sont en fait le (i+1) \th</sup> <sup>ligne et le (j+1) \th</sup> colonne, respectivement.
Paramètres :
i - Numéro de ligne
j - Numéro de colonne
-
MYSQL.RES.TYPE. Renvoie une constante d’énumération pour le type de réponse. Ses valeurs peuvent être ERROR, OK et RESULT_SET. Les <m> <m> opérateurs EQ (\) et NE (\), qui renvoient des valeurs booléennes pour indiquer le résultat d’une comparaison, sont utilisés avec ce préfixe.
Expressions permettant d’évaluer les connexions au serveur Microsoft SQL
Les expressions suivantes évaluent le trafic associé aux serveurs de base de données Microsoft SQL Server. Vous pouvez utiliser les expressions basées sur les demandes (expressions commençant par MSSQL.CLIENT et MSSQL.REQ) dans les politiques pour prendre des décisions de commutation de demandes au point de liaison du serveur virtuel de commutation de contenu et les expressions basées sur les réponses (expressions commençant par MSSQL.RES) pour évaluer les réponses du serveur aux moniteurs de santé configurés par l’utilisateur.
Expression | Description |
---|---|
MSSQL.CLIENT.CAPABILITIES | Renvoie les champs OptionFlags1, OptionFlags2, OptionFlags3 et TypeFlags du paquet d’authentification Login7Authentication, dans cet ordre, sous la forme d’un entier de 4 octets. Chaque champ a une longueur d’un octet et spécifie un ensemble de fonctionnalités du client. |
MSSQL.CLIENT.DATABASE | Renvoie le nom de la base de données client. La valeur renvoyée est de type texte. |
MSSQL.CLIENT.USER | Renvoie le nom d’utilisateur avec lequel le client s’est authentifié. La valeur renvoyée est de type texte. |
COMMANDE MSSQL.REQ.COMMAND | Renvoie une constante d’énumération qui identifie le type de commande figurant dans la demande envoyée à un serveur de base de données Microsoft SQL Server. La valeur renvoyée est de type texte. Les valeurs de la constante d’énumération sont QUERY, RESPONSE, RPC et ATTENTION. Les |
MSSQL.REQ.QUERY.COMMAND | Renvoie le premier mot clé de la requête SQL. La valeur renvoyée est de type texte. |
MSSQL.REQ.QUERY.SIZE | Renvoie la taille de la requête SQL contenue dans la requête. La valeur renvoyée est un nombre. |
MSSQL.REQ.QUERY.TEXT | Renvoie l’intégralité de la requête SQL sous forme de chaîne. La valeur renvoyée est de type texte. |
|
Renvoie les n premiers octets de la requête SQL. La valeur renvoyée est de type texte. Paramètres : n - Nombre d’octets |
MSSQL.REQ.RPC.NOM | Renvoie le nom de la procédure appelée dans une demande d’appel de procédure distante (RPC). Le nom est renvoyé sous forme de chaîne. |
MSSQL.REQ.RPC.IS_PROCID | Renvoie une valeur booléenne qui indique si la demande d’appel de procédure distante (RPC) contient un ID de procédure ou un nom RPC. La valeur de retour Trueindique que la demande contient un ID de procédure et la valeur de retour FALSE indique que la demande contient un nom RPC. |
MSSQL.REQ.RPC.PROCID | Renvoie l’ID de procédure de la demande d’appel de procédure distant (RPC) sous forme d’entier. |
MSSQL.REQ.RPC.BODY Remarque : Non disponible pour les versions antérieures à la version 10.1. | Renvoie le corps de la requête SQL sous forme de chaîne sous forme de paramètres représentés par des clauses « a=b » séparées par des virgules, où « a » est le nom du paramètre RPC et « b » sa valeur. |
MSSQL.REQ.RPC.BODY (n) Remarque : Non disponible pour les versions antérieures à la version 10.1. | Renvoie une partie du corps de la requête SQL sous forme de chaîne sous forme de paramètres représentés par des clauses « a=b » séparées par des virgules, où « a » est le nom du paramètre RPC et « b » sa valeur. Les paramètres sont renvoyés uniquement à partir des « n » premiers octets de la requête, sans tenir compte de l’en-tête SQL. Seules les paires nom-valeur complètes sont renvoyées. |
MSSQL.RES.ATLEAST_ROWS_COUNT (i) | Vérifie si la réponse comporte au moins un nombre de lignes. La valeur renvoyée est une valeur booléenne TRUE ou FalseValue. Paramètres : i - Nombre de lignes |
MSSQL.RES.DONE.ROWCOUNT | Renvoie le nombre de lignes affectées par une requête INSERT, UPDATE ou DELETE. La valeur renvoyée est de type long non signé. |
MSSQL.RES.DONE.STATUS | Renvoie le champ d’état à partir du jeton DONE envoyé par un serveur de base de données Microsoft SQL Server. La valeur renvoyée est un nombre. |
MSSQL.RES. ERREUR. MESSAGE | Renvoie le message d’erreur provenant du jeton ERROR envoyé par un serveur de base de données Microsoft SQL Server. Il s’agit de la valeur du champ MsgText dans le jeton ERROR. La valeur renvoyée est de type texte. |
MSSQL.RES.ERROR.NUM | Renvoie le numéro d’erreur du jeton ERROR envoyé par un serveur de base de données Microsoft SQL Server. Il s’agit de la valeur du champ Numéro du jeton ERROR. La valeur renvoyée est un nombre. |
MSSQL.RES.ERROR.STATE | Renvoie l’état d’erreur à partir du jeton ERROR envoyé par un serveur de base de données Microsoft SQL Server. Il s’agit de la valeur du champ State dans le jeton ERROR. La valeur renvoyée est un nombre. |
MSSQL.RES.FIELD () .TYPE DE DONNÉES | Renvoie le type de données du dernier champ de la réponse du serveur. Les |
MSSQL.RES.FIELD () .LONGUEUR | Renvoie la longueur maximale possible du ième champ de la réponse du serveur. La valeur renvoyée est un nombre. Paramètres : i - Numéro de ligne |
MSSQL.RES.FIELD () .NOM | Renvoie le nom du dernier champ de la réponse du serveur. La valeur renvoyée est de type texte. Paramètres : i - Numéro de ligne |
|
Renvoie une valeur de type double à partir de la jème colonne de la ième ligne du tableau. Si la valeur n’est pas une valeur double, une condition UNDEF est déclenchée. Conformément aux conventions C, les index i et j commencent tous deux à 0 (zéro). Par conséquent, la ligne i et la colonne j sont en fait la (i + 1) ème ligne et la (j + 1) ème colonne, respectivement. Paramètres : i - Numéro de ligne j - Numéro de colonne |
MSSQL.RES.ROW () .NUM_ELEM (j) | Renvoie une valeur entière à partir de la jème colonne de la dernière ligne du tableau. Si la valeur n’est pas un entier, une condition UNDEF est déclenchée. Conformément aux conventions C, les index i et j commencent tous deux à 0 (zéro). Par conséquent, la ligne i et la colonne j sont en fait la (i + 1) ème ligne et la (j + 1) ème colonne, respectivement. Paramètres : i - Numéro de ligne j - Numéro de colonne |
MSSQL.RES.ROW () .IS_NULL_ELEM (j) | Vérifie si la jème colonne de la ième ligne du tableau est NULL et renvoie une valeur booléenne TRUE ou FALSE pour indiquer le résultat. Conformément aux conventions C, les index i et j commencent tous deux à 0 (zéro). Par conséquent, la ligne i et la colonne j sont en fait la (i + 1) ème ligne et la (j + 1) ème colonne, respectivement. Paramètres : i - Numéro de ligne j - Numéro de colonne |
MSSQL.RES.ROW () .TEXT_ELEM (j) | Renvoie une chaîne de texte à partir de la jème colonne de la ligne Ith du tableau. Conformément aux conventions C, les index i et j commencent tous deux à 0 (zéro). Par conséquent, la ligne i et la colonne j sont en fait la (i + 1) ème ligne et la (j + 1) ème colonne, respectivement. Paramètres : i - Numéro de ligne j - Numéro de colonne |
MSSQL.RES.TYPE | Renvoie une constante d’énumération qui identifie le type de réponse. Les valeurs de retour possibles sont les suivantes : ERROR, OK et RESULT_SET. Les |