DataStream Referenz

Diese Referenz beschreibt die Protokolle MySQL und TDS, die Datenbankversionen, die Authentifizierungsmethoden und die Zeichensätze, die von der DataStream Funktion unterstützt werden. Außerdem wird beschrieben, wie Citrix ADC Transaktionsanforderungen und spezielle Abfragen verarbeitet, die den Status einer Verbindung ändern.

Sie können die Citrix ADC Appliance auch so konfigurieren, dass Auditprotokollmeldungen für die DataStream -Funktion generiert werden.

Unterstützte Datenbankversionen, Protokolle und Authentifizierungsmethoden

  MySQL Datenbank MS SQL-Datenbank
Datenbankversionen MySQL Datenbankversionen 4.1, 5.0, 5.1, 5.4, 5.5 und 5.6. MS SQL-Datenbankversionen 2000, 2000SP1, 2005, 2008, 2008R2 und 2012.
Protokolle MySQL Protokoll Version 10. Informationen zum MySQL Protokoll finden Sie unterMySQL Client/Server-Protokoll Tabular Data Stream (TDS) Protokoll Version 7.1 und höher. Informationen zum TDS-Protokoll finden Sie unterTabellarischer Datenstrom-Protokoll
Authentifizierungsmethoden Die native MySQL Authentifizierung wird unterstützt. SQL Server-Authentifizierung und Windows-Authentifizierung (Kerberos/NTLM) werden unterstützt.

Zeichensätze

Die DataStream Funktion unterstützt nur den UTF-8-Zeichensatz.

Der Zeichensatz, der vom Client beim Senden einer Anforderung verwendet wird, kann sich von dem Zeichensatz unterscheiden, der in den Antworten des Datenbankservers verwendet wird. Obwohl der charset-Parameter während des Verbindungsaufbaus festgelegt wird, kann er jederzeit durch Senden einer SQL-Abfrage geändert werden. Der Zeichensatz ist einer Verbindung zugeordnet, und daher kann kein Multiplexing von Anfragen für Verbindungen mit einem Zeichensatz auf eine Verbindung mit einem anderen Zeichensatz stattfinden.

Die Citrix ADC Appliance analysiert die vom Client gesendeten Abfragen und die vom Datenbankserver gesendeten Antworten.

Der mit einer Verbindung verknüpfte Zeichensatz kann nach dem ersten Handshake mithilfe der folgenden beiden Abfragen geändert werden:

SET NAMES <charset> COLLATION <collation>

SET CHARACTER SET <charset>

Transaktionen

In MySQL werden Transaktionen mithilfe des Verbindungsparameters AUTOCOMMIT oder der BEGIN:COMMIT Abfragen identifiziert. Der AUTOCOMMIT Parameter kann während des ersten Handshake oder nach der Verbindung mit der Abfrage SET AUTOCOMMIT gesetzt werden.

Die Citrix ADC Appliance analysiert jede einzelne Abfrage explizit, um den Anfang und das Ende einer Transaktion zu bestimmen.

Im MySQL Protokoll enthält die Antwort zwei Flags, um anzugeben, ob die Verbindung eine Transaktion ist, die TRANSACTION und AUTOCOMMIT Flags.

Wenn es sich bei der Verbindung um eine Transaktion handelt, wird das TRANSACTION-Flag gesetzt. Oder wenn der AutoCommit-Modus OFF ist, ist das AUTOCOMMIT Flag nicht gesetzt. Die ADC-Appliance analysiert die Antwort, und wenn entweder das TRANSACTION-Flag gesetzt ist oder das AUTOCOMMIT Flag nicht gesetzt ist, wird kein Verbindungsmultiplexing durchgeführt. Wenn diese Bedingungen nicht mehr zutreffen, beginnt die ADC-Appliance das Verbindungsmultiplexing.

Hinweis:

Transaktionen werden auch für MS SQL unterstützt.

Spezielle Anfragen

Es gibt spezielle Abfragen, wie SET und PREPARE, die den Zustand der Verbindung ändern und möglicherweise die Anforderungsumschaltung unterbrechen, und daher müssen diese anders behandelt werden.

Beim Empfang einer Anfrage mit speziellen Abfragen sendet die Citrix ADC Appliance eine OK-Antwort an den Client und speichert die Anforderung zusätzlich in der Verbindung.

Wenn eine nicht spezielle Abfrage wie INSERT und SELECT zusammen mit einer gespeicherten Abfrage empfangen wird, sucht die Citrix ADC Appliance zuerst nach der serverseitigen Verbindung, auf der die gespeicherte Abfrage bereits an den Datenbankserver gesendet wurde. Wenn keine solchen Verbindungen vorhanden sind, erstellt die ADC-Appliance eine neue Verbindung, sendet zuerst die gespeicherte Abfrage und sendet dann die Anforderung mit der nicht speziellen Abfrage.

Bei SET, USE db und INIT_DB Sonderabfragen ändert die Appliance ein Feld in der serverseitigen Verbindung entsprechend der speziellen Abfrage. Dies führt zu einer besseren Wiederverwendung der serverseitigen Verbindung.

In jeder Verbindung werden nur 16 Abfragen gespeichert.

Im Folgenden finden Sie eine Liste der speziellen Abfragen, für die die ADC-Appliance ein geändertes Verhalten hat.

  • SET-Abfrage

    Die SET SQL-Abfragen definieren Variablen, die der Verbindung zugeordnet sind. Diese Abfragen werden auch verwendet, um globale Variablen zu definieren, aber ab sofort kann die ADC-Appliance nicht zwischen lokalen und globalen Variablen unterscheiden. Für diese Abfrage verwendet die ADC-Appliance den Mechanismus Speichern und Weiterleiten.

  • <db>`` USE-Abfrage

    Mit dieser Abfrage kann der Benutzer die Datenbank ändern, die einer Verbindung zugeordnet ist. In diesem Fall analysiert die ADC-Appliance den gesendeten<db> Wert und ändert ein Feld in der serverseitigen Verbindung, um die neue zu verwendende Datenbank wiederzugeben.

  • INIT_DB (Befehl)

    Mit dieser Abfrage kann der Benutzer die Datenbank ändern, die einer Verbindung zugeordnet ist. In diesem Fall analysiert die ADC-Appliance den gesendeten<init_db>Wert und ändert ein Feld in der serverseitigen Verbindung, um die neue zu verwendende Datenbank wiederzugeben.

  • COM_PREPARE

    Die ADC-Appliance beendet die Anforderungsschaltung beim Empfang dieses Befehls.

  • PREPARE-Abfrage

    Diese Abfrage wird verwendet, um vorbereitete Anweisungen zu erstellen, die einer Verbindung zugeordnet sind. Für diese Abfrage verwendet die ADC-Appliance den Mechanismus Speichern und Weiterleiten.

Unterstützung von Auditprotokollmeldungen

Sie können jetzt die Citrix ADC Appliance so konfigurieren, dass Auditprotokollmeldungen für die DataStream -Funktion generiert werden. Auditprotokollmeldungen werden generiert, wenn clientseitige und serverseitige Verbindungen hergestellt, geschlossen oder gelöscht werden. Die Kategorien von Nachrichten, die Sie protokollieren und anzeigen können, sind ERROR und INFO. Fehlermeldungen für clientseitige Verbindungen beginnen mit CS und Fehlermeldungen für serverseitige Verbindungen beginnen mit SS. Zusätzliche Informationen werden erforderlichenfalls zur Verfügung gestellt. Beispielsweise enthalten Protokollmeldungen für geschlossene Verbindungen (CS_CONN_CLOSED) nur die Verbindungs-ID. Protokollmeldungen für etablierte Verbindungen (CS_CONN_ESTD) enthalten jedoch Informationen wie Benutzername, Datenbankname und Client-IP-Adresse zusätzlich zur Verbindungs-ID.