Citrix ADC

DataStream のリファレンス

このリファレンスでは、MySQL および TDS プロトコル、データベースのバージョン、認証方法、および DataStream 機能でサポートされる文字セットについて説明します。また、Citrix ADCがトランザクション要求と接続状態を変更する特別なクエリをどのように処理するかについても説明します。

また、Citrix ADCアプライアンスを構成して、DataStream機能の監査ログメッセージを生成することもできます。

サポートされるデータベースのバージョン、プロトコル、および認証方法

  MySQL Database MS SQL Database
データベースのバージョン MySQL データベースのバージョン 4.1, 5.0, 5.1, 5.4, 5.5, 5.6 MS SQL データベースバージョン 2000, 2000SP1, 2005, 2008, 2008R2, 2012, 2014 (Kerberos 認証サポート)
プロトコル MySQL プロトコルのバージョン 10。MySQL プロトコルの詳細については、MySQL クライアント/サーバープロトコルを参照してください 表形式データストリーム(TDS)プロトコルバージョン7.1以上。TDS プロトコルの詳細については、表形式データストリームプロトコルを参照してください。
認証方法 MySQL ネイティブ認証がサポートされています。 SQL サーバー認証と Windows 認証 (Kerberos または NTLM) がサポートされています。

文字セット

DataStream 機能は、UTF-8 文字セットのみをサポートします。

要求を送信するときにクライアントが使用する文字セットは、データベースサーバーの応答で使用される文字セットとは異なる場合があります。charset パラメーターは接続の確立中に設定されますが、SQL クエリを送信することでいつでも変更できます。文字セットは接続に関連付けられているため、1 つの文字セットを持つ接続に対する要求は、別の文字セットを持つ接続に多重化できません。

Citrix ADCアプライアンスは、クライアントから送信されたクエリとデータベースサーバーから送信された応答を解析します。

接続に関連付けられた文字セットは、最初のハンドシェイク後に次の 2 つのクエリを使用して変更できます。

SET NAMES <charset> COLLATION <collation>

SET CHARACTER SET <charset>

トランザクション

MySQL では、トランザクションは、接続パラメータ AUTOCOMMIT または BEGIN: COMMIT クエリを使用して識別されます。AUTOCOMMIT パラメータは、最初のハンドシェイク中、またはクエリ SET AUTOCOMMIT を使用して接続が確立された後に設定できます。

Citrix ADCアプライアンスは、各クエリを明示的に解析して、トランザクションの開始と終了を決定します。

MySQL プロトコルでは、応答には、接続がトランザクションであるかどうかを示すための 2 つのフラグ (TRANSACTION フラグと AUTOCOMMIT フラグです) が含まれています。

接続がトランザクションの場合は、TRANSACTION フラグが設定されます。または、自動コミットモードがオフの場合、AUTOCOMMIT フラグは設定されません。ADCアプライアンスは応答を解析し、TRANSACTIONフラグが設定されているか、AUTOCOMMITフラグが設定されていない場合、接続の多重化は行われません。これらの条件が満たされなくなると、ADCアプライアンスは接続の多重化を開始します。

トランザクションは、MS SQLでもサポートされています。

特殊クエリー

SET や PREPAREなど、接続の状態を変更し、要求の切り替えを中断する可能性がある特殊なクエリがあります。したがって、これらのクエリは異なる方法で処理する必要があります。

特別なクエリで要求を受信すると、Citrix ADCアプライアンスはクライアントにOK応答を送信し、接続に要求を保存します。

INSERTやSELECTなどの特殊でないクエリが格納されたクエリとともに受信されると、Citrix ADCアプライアンスはまず、格納されたクエリがすでにデータベースサーバーに送信されているサーバー側の接続を探します。このような接続が存在しない場合、ADC アプライアンスは接続を作成し、格納されたクエリーを最初に送信してから、特殊でないクエリーで要求を送信します。

SET、USE db、および INIT_DB 特殊クエリでは、アプライアンスは特殊クエリに対応するサーバー側接続のフィールドを変更します。この変更により、サーバー側の接続の再利用が向上します。

各接続に格納されるクエリは 16 個だけです。

以下は、ADCアプライアンスの動作が変更された特殊なクエリのリストです。

  • SET クエリ

    SET SQL クエリは、接続に関連付けられている変数を定義します。これらのクエリーはグローバル変数の定義にも使用されますが、現時点では、ADCアプライアンスはローカル変数とグローバル変数を区別できません。このクエリでは、ADCアプライアンスは「保存と転送」メカニズムを使用します。

  • USE<db> クエリ

    このクエリを使用すると、接続に関連付けられたデータベースを変更できます。この場合、ADCアプライアンスは送信された<db> 値を解析し、使用する新しいデータベースを反映するようにサーバー側接続のフィールドを変更します。

  • INIT_DB コマンド

    このクエリを使用すると、接続に関連付けられたデータベースを変更できます。この場合、ADCアプライアンスは送信された<init_db> 値を解析し、使用する新しいデータベースを反映するようにサーバー側接続のフィールドを変更します。

  • COM_PREPARE

    ADC アプライアンスは、このコマンドの受信時に要求切り替えを停止します。

  • PREPARE query

    このクエリは、接続に関連付けられたプリペアドステートメントを作成するために使用されます。このクエリでは、ADCアプライアンスは「保存と転送」メカニズムを使用します。

監査ログメッセージのサポート

これで、DataStream 機能の監査ログメッセージを生成するようにCitrix ADCアプライアンスを構成できるようになりました。監査ログメッセージは、クライアント側およびサーバー側の接続が確立、クローズ、またはドロップされたときに生成されます。ログに記録して表示できるメッセージのカテゴリは、ERROR と INFO です。クライアント側接続のエラーメッセージは「CS」で始まり、サーバー側接続のエラーメッセージは「SS」で始まります。必要に応じて、追加情報が提供されます。たとえば、閉じられた接続(CS_CONN_CLOSED)のログメッセージには、接続 ID のみが含まれます。ただし、確立された接続 (CS_CONN_ESTD) のログメッセージには、接続 ID に加えて、ユーザー名、データベース名、クライアント IP アドレスなどの情報が含まれます。

DataStream のリファレンス