ADC

DataStream-Referenz

Diese Referenz beschreibt die MySQL- und TDS-Protokolle, die Datenbankversionen, die Authentifizierungsmethoden und die Zeichensätze, die von der DataStream-Funktion unterstützt werden. Es beschreibt auch, wie der NetScaler mit Transaktionsanfragen und speziellen Abfragen umgeht, die den Status einer Verbindung ändern.

Sie können die NetScaler-Appliance auch so konfigurieren, dass sie Prüfprotokollmeldungen für die DataStream-Funktion generiert.

Unterstützte Datenbankversionen, Protokolle und Authentifizierungsmethoden

  MySQL-Datenbank MS SQL-Datenbank
Datenbankversionen MySQL-Datenbankversionen 4.1, 5.0, 5.1, 5.4, 5.5, 5.6 MS SQL-Datenbankversionen 70, 2000, 2000SP1, 2005, 2008, 2008R2, 2012, 2014 (Unterstützung für die Kerberos-Authentifizierung). Sie können den Backend-MS SQL-Server mit TDS 7.4 in den Jahren 2016, 2017, 2019 und 2022 konfigurieren, indem Sie den NetScaler-Parameter -mssqlServerVersion 2014 konfigurieren. Die Always-On-Verfügbarkeitsgruppe wird nur in den MS SQL-Versionen 2012 und 2014 unterstützt.
Protokolle MySQL Protokoll Version 10. Informationen zum MySQL-Protokoll finden Sie unter MySQL Client/Server Protocol Tabular Data Stream (TDS)-Protokoll, Version 7.1 bis 7.4. Informationen zum TDS-Protokoll finden Sie unter Tabular Data Stream Protocol
Authentifizierungsmethoden Die native MySQL-Authentifizierung wird unterstützt. Die SQL-Serverauthentifizierung und die Windows-Authentifizierung (Kerberos/NTLM) werden unterstützt.

Zeichensätze

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

Der vom Client beim Senden einer Anfrage verwendete Zeichensatz kann sich von dem Zeichensatz unterscheiden, der in den Antworten des Datenbankservers verwendet wird. Der Zeichensatz-Parameter wird zwar während des Verbindungsaufbaus gesetzt, kann aber jederzeit geändert werden, indem eine SQL-Abfrage gesendet wird. Der Zeichensatz ist mit einer Verbindung verknüpft, weshalb Anfragen für Verbindungen mit einem Zeichensatz nicht auf eine Verbindung mit einem anderen Zeichensatz gemultiplext werden können.

Die NetScaler-Appliance analysiert die vom Client gesendeten Abfragen und die vom Datenbankserver gesendeten Antworten.

Der einer Verbindung zugeordnete Zeichensatz kann nach dem ersten Handshake mithilfe der folgenden zwei Abfragen geändert werden:

SET NAMES <charset> COLLATION <collation>

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

Transaktionen

In MySQL werden Transaktionen mithilfe des Verbindungsparameters AUTOCOMMIT oder der BEGIN:COMMIT-Abfragen identifiziert. Der AUTOCOMMIT-Parameter kann während des ersten Handshakes oder nach dem Verbindungsaufbau mithilfe der Abfrage SET AUTOCOMMIT festgelegt werden.

Die NetScaler-Appliance analysiert jede Abfrage explizit, um den Beginn und das Ende einer Transaktion zu bestimmen.

Im MySQL-Protokoll enthält die Antwort zwei Flags, die angeben, ob es sich bei der Verbindung um eine Transaktion handelt: die Flags TRANSACTION und AUTOCOMMIT.

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, führt sie kein Verbindungsmultiplexing durch. Wenn diese Bedingungen nicht mehr zutreffen, beginnt die ADC-Appliance mit dem Verbindungsmultiplexen.

Hinweis

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

Besondere Anfragen

Es gibt spezielle Abfragen wie SET und PREPARE, die den Status der Verbindung ändern und möglicherweise das Umschalten von Anfragen unterbrechen. Daher müssen diese Abfragen anders behandelt werden.

Beim Empfang einer Anfrage mit speziellen Abfragen sendet die NetScaler-Appliance eine OK-Antwort an den Client und speichert die Anfrage auch in der Verbindung.

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

In den Spezialabfragen SET, USE db und INIT_DB ändert die Appliance ein Feld in der serverseitigen Verbindung, das der speziellen Abfrage entspricht. Diese Änderung 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 modifiziertes Verhalten aufweist.

  • SET-Abfrage

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

  • USE <db> query

    Mit dieser Abfrage kann der Benutzer die einer Verbindung zugeordnete Datenbank ändern. 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 widerzuspiegeln.

  • INIT_DB-Befehl

    Mit dieser Abfrage kann der Benutzer die einer Verbindung zugeordnete Datenbank ändern. 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 widerzuspiegeln.

  • COM_PREPARE

    Die ADC-Appliance stoppt die Anforderungsumschaltung beim Empfang dieses Befehls.

  • Abfrage VORBEREITEN

    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 für Audit-Log-Nachrichten

Sie können die NetScaler-Appliance jetzt so konfigurieren, dass sie Prüfprotokollmeldungen für die DataStream-Funktion generiert. Prüfprotokollmeldungen werden generiert, wenn clientseitige und serverseitige Verbindungen hergestellt, geschlossen oder unterbrochen 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 bei Bedarf bereitgestellt. Protokollmeldungen für geschlossene Verbindungen (CS_CONN_CLOSED) enthalten beispielsweise 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.

DataStream-Referenz