ADC

Référence DataStream

Cette référence décrit les protocoles MySQL et TDS, les versions de base de données, les méthodes d’authentification et les jeux de caractères pris en charge par la fonctionnalité DataStream. Il décrit également la manière dont Citrix ADC gère les demandes de transaction et les requêtes spéciales qui modifient l’état d’une connexion.

Vous pouvez également configurer l’appliance Citrix ADC pour générer des messages de journal d’audit pour la fonctionnalité DataStream.

Versions de base de données, protocoles et méthodes d’authentification pris en charge

  Base de données MySQL Base de données MS SQL
versions de base de données Base de données MySQL versions 4.1, 5.0, 5.1, 5.4, 5.5, 5.6 Versions de base de données MS SQL 70, 2000, 2000SP1, 2005, 2008, 2008R2, 2012, 2014 (prise en charge de l’authentification Kerberos). Vous pouvez configurer le serveur MS SQL principal avec TDS 7.4 en 2016, 2017, 2019 et 2022 en configurant le paramètre NetScaler -mssqlServerVersion 2014. Le groupe de disponibilité Always On est pris en charge uniquement dans les versions 2012 et 2014 de MS SQL.
Protocoles Protocole MySQL version 10. Pour plus d’informations sur le protocole MySQL, consultez MySQL Client/Server Protocol Protocole Tabular Data Stream (TDS) versions 7.1 à 7.4. Pour plus d’informations sur le protocole TDS, voir Tabular Data Stream Protocol.
Méthodes d’authentification L’authentification native MySQL est prise en charge. L’authentification SQL Server et l’authentification Windows (Kerberos/NTLM) sont prises en charge.

Ensembles de caractères

La fonctionnalité DataStream prend uniquement en charge le jeu de caractères UTF-8.

Le jeu de caractères utilisé par le client lors de l’envoi d’une demande peut être différent de celui utilisé dans les réponses du serveur de base de données. Bien que le paramètre charset soit défini lors de l’établissement de la connexion, il peut être modifié à tout moment en envoyant une requête SQL. Le jeu de caractères est associé à une connexion et, par conséquent, les demandes concernant des connexions utilisant un jeu de caractères ne peuvent pas être multiplexées sur une connexion avec un jeu de caractères différent.

L’appliance Citrix ADC analyse les requêtes envoyées par le client et les réponses envoyées par le serveur de base de données.

Le jeu de caractères associé à une connexion peut être modifié après la première prise de contact en utilisant les deux requêtes suivantes :

SET NAMES <charset> COLLATION <collation>

SET CHARACTER SET <charset>
<!--NeedCopy-->

Transactions

Dans MySQL, les transactions sont identifiées à l’aide du paramètre de connexion AUTOCOMMIT ou des requêtes BEGIN:COMMIT. Le paramètre AUTOCOMMIT peut être défini lors de l’établissement de la connexion initiale ou après l’établissement de la connexion à l’aide de la requête SET AUTOCOMMIT.

L’appliance Citrix ADC analyse explicitement chaque requête pour déterminer le début et la fin d’une transaction.

Dans le protocole MySQL, la réponse contient deux indicateurs pour indiquer si la connexion est une transaction : les indicateurs TRANSACTION et AUTOCOMMIT.

Si la connexion est une transaction, l’indicateur TRANSACTION est activé. Ou, si le mode AutoCommit est OFF, l’indicateur AUTOCOMMIT n’est pas défini. L’appliance ADC analyse la réponse et si l’indicateur TRANSACTION est défini ou si l’indicateur AUTOCOMMIT n’est pas défini, elle n’effectue pas de multiplexage des connexions. Lorsque ces conditions ne sont plus vraies, l’appliance ADC commence le multiplexage des connexions.

Remarque

Les transactions sont également prises en charge pour MS SQL.

Requêtes spéciales

Certaines requêtes spéciales, telles que SET et PREPARE, modifient l’état de la connexion et peuvent interrompre la commutation des requêtes. Par conséquent, ces requêtes doivent être traitées différemment.

À la réception d’une demande contenant des requêtes spéciales, l’appliance Citrix ADC envoie une réponse OK au client et stocke également la demande dans la connexion.

Lorsqu’une requête non spéciale, telle que INSERT et SELECT, est reçue en même temps qu’une requête stockée, l’appliance ADC recherche la connexion côté serveur sur laquelle la requête stockée a déjà été envoyée au serveur de base de données. Si aucune connexion de ce type n’existe, l’appliance ADC crée une connexion et envoie d’abord la requête stockée, puis envoie la demande avec la requête non spéciale.

Dans les requêtes spéciales SET, USE db et INIT_DB, l’appliance modifie un champ de la connexion côté serveur correspondant à la requête spéciale. Cette modification permet une meilleure réutilisation de la connexion côté serveur.

Seules 16 requêtes sont stockées dans chaque connexion.

Vous trouverez ci-dessous une liste des requêtes spéciales pour lesquelles le comportement de l’appliance ADC a été modifié.

  • Requête SET

    Les requêtes SQL SET définissent les variables associées à la connexion. Ces requêtes sont également utilisées pour définir des variables globales, mais pour l’instant, l’appliance ADC n’est pas en mesure de différencier les variables locales des variables globales. Pour cette requête, l’appliance ADC utilise le mécanisme de « stockage et transfert ».

  • USE <db> query

    À l’aide de cette requête, l’utilisateur peut modifier la base de données associée à une connexion. Dans ce cas, l’appliance ADC analyse la <db> valeur envoyée et modifie un champ dans la connexion côté serveur pour refléter la nouvelle base de données à utiliser.

  • commande INIT_DB

    À l’aide de cette requête, l’utilisateur peut modifier la base de données associée à une connexion. Dans ce cas, l’appliance ADC analyse la <init_db> valeur envoyée et modifie un champ dans la connexion côté serveur pour refléter la nouvelle base de données à utiliser.

  • COM_PREPARE

    L’appliance ADC arrête la commutation des requêtes à la réception de cette commande.

  • Requête PREPARE

    Cette requête est utilisée pour créer des instructions préparées associées à une connexion. Pour cette requête, l’appliance ADC utilise le mécanisme de « stockage et transfert ».

Prise en charge des messages du journal d’audit

Vous pouvez désormais configurer l’appliance Citrix ADC pour générer des messages de journal d’audit pour la fonctionnalité DataStream. Les messages du journal d’audit sont générés lorsque des connexions côté client et côté serveur sont établies, fermées ou abandonnées. Les catégories de messages que vous pouvez enregistrer et consulter sont ERROR et INFO. Les messages d’erreur pour les connexions côté client commencent par « CS » et les messages d’erreur pour les connexions côté serveur commencent par « SS ». Des informations supplémentaires sont fournies si nécessaire. Par exemple, les messages de journal relatifs aux connexions fermées (CS_CONN_CLOSED) incluent uniquement l’ID de connexion. Toutefois, les messages de journal relatifs aux connexions établies (CS_CONN_ESTD) incluent des informations telles que le nom d’utilisateur, le nom de la base de données et l’adresse IP du client en plus de l’ID de connexion.

Référence DataStream