DRDA のサービス (操作)

次のセクションでは、Microsoft Service for DRDA (DRDA サービス) の運用に関するヘルプを提供します。

DRDA サービスの管理

DRDA サービスの開始

DRDA サービスを開始して、サービスまたはコンソール アプリケーションとして実行できます。

Windows サービス

コマンド ウィンドウを使用すると、サービス構成で定義されている資格情報の下で、DRDA サービスを開始してサービスとして実行できます。

  1. [スタート] メニューで [すべてのプログラム]、[Microsoft Visual Studio 2010]、[Visual Studio ツール] の順にポイントし、[Visual Studio x64 Win64 コマンド プロンプト (2010)] を右クリックして、[管理者として実行] をクリックします。 [ユーザー アカウント制御] ダイアログ ボックスが表示されます。 [はい] をクリックして続行します。

  2. コマンド プロンプトから、「net start msdrdaservice」と入力し、Enter キーを押します。

    C:\Windows\system32>net start msdrdaservice
    The Microsoft Service for DRDA service is starting.
    The Microsoft Service for DRDA service was started successfully.
    

コンソール アプリケーション

コマンド ウィンドウを使用すると、コマンド ウィンドウの資格情報の下で、DRDA サービスを実行してコンソール アプリケーションとして実行できます。

  1. [スタート] メニューで [すべてのプログラム]、[Microsoft Visual Studio 2010]、[Visual Studio ツール] の順にポイントし、[Visual Studio x64 Win64 コマンド プロンプト (2010)] を右クリックして、[管理者として実行] をクリックします。 [ユーザー アカウント制御] ダイアログ ボックスが表示されます。 [はい] をクリックして続行します。

  2. コマンド プロンプトから、「cd C:\Windows\system32cd> C:\Program Files\Microsoft Host Integration Server 2013\system」と入力し、Enter キーを押します。

    C:\Program Files\Microsoft Host Integration Server 2013\system>MsDrdaService.exe -c
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>msdrdaservice -c
    Information:0:0:[Oct 10 2012 16:46:11.581] Microsoft Service for DRDA (build: 9.0.1651.0 )
    Information:0:0:[Oct 10 2012 16:46:11.597] TCP communication manager listening on port 446
    

Note

DRDA サービス トレース リスナーは、コンソール ウィンドウに情報を出力します。

DRDA サービスの停止

DRDA サービスは、サービスまたはコンソール アプリケーションとして実行されているときに停止できます。

Windows サービス

コマンド ウィンドウを使用すると、サービスとして実行するときに DRDA サービスを停止できます。

  1. [スタート] メニューで [すべてのプログラム]、[Microsoft Visual Studio 2010]、[Visual Studio ツール] の順にポイントし、[Visual Studio x64 Win64 コマンド プロンプト (2010)] を右クリックして、[管理者として実行] をクリックします。 [ユーザー アカウント制御] ダイアログ ボックスが表示されます。 [はい] をクリックして続行します。

  2. コマンド プロンプトから、「net stop msdrdaservice」と入力し、Enter キーを押します。

    C:\Windows\system32>net stop msdrdaservice
    The Microsoft Service for DRDA service is stopping.
    The Microsoft Service for DRDA service was stopped successfully.
    

コンソール アプリケーション

コマンド ウィンドウを使用すると、コンソール アプリケーションとして実行されているときに DRDA サービスを停止できます。

  • コマンド プロンプトで、Ctrl + C キーを押します。

    C:\Windows\system32>
    

Note

DRDA サービスはコンソール アプリケーションとして実行を停止し、コマンド プロンプトが表示されます。

SQL SERVER データベースへの DRDA クライアントの接続

DRDA サービスは、DRDA クライアント要求をローカルおよびリモートのSQL Server データベースへの接続に処理します。 このトピックでは、MsDrdaService データベース接続操作の操作について説明します。

クライアント接続

サービスの起動時に、DRDA サービスは内部 DRDA サービス トレース リスナーに情報エントリを書き込み、TCP 通信マネージャーがバインドされた DRDA アプリケーション要求者クライアント接続をリッスンしているポートを IT プロフェッショナルに通知します。

Information:0:0:[Oct 10 2012 17:00:34.547] TCP communication manager listening on port 446

リモート DRDA アプリケーションリクエスター クライアントは、TCP/IP ネットワーク接続を介してローカル DRDA サービスに接続します。 DRDA クライアントは、DRDA EXCSAT (Exchange Server属性)、ACCSEC (アクセス セキュリティ)、ACCRDB (Access Relational Database) プロトコル フローとデータ形式を送信し、DRDA サービスが DRDA プロトコル応答で応答します。

認証

統合認証を提供するために、DRDA サービスでは、Microsoft Enterprise Single Sign-On (ESSO) を使用する受信資格情報の検証とマッピングを、Windows SSPI (セキュリティ サポート プロバイダー インターフェイス) を使用する送信 SQL Server 認証と組み合わせることができます。 たとえば、DRDA サービスでは、ESSO と連携して IBM RACF (Resource Access Control Facility) のユーザー名とパスワードを Microsoft Windows Active Directory ドメイン\ユーザー名にマップし、統合セキュリティを使用してリモート SQL Server データベースに接続することができます。

SQL Server接続

DRDA サービスは、ADO.NET Framework Provider for SQL Serverを使用して、アップストリームのローカルまたはリモートのSQL Server データベースと通信します。 基になる SQL クライアント アクセスは、メモリ内接続を介して、または名前付きパイプまたは TCP/IP を使用してネットワーク経由でSQL Server。 SQL クライアントでは、セキュリティと信頼性を向上させるために、オプションの暗号化とフェールオーバー機能がサポートされています。 DRDA サービスでは、オプションのシングル サインオンとプール機能がサポートされ、セキュリティとパフォーマンスが向上します。 MsDrdaService.exe.config ファイルを編集して、接続をSQL ServerするSQL クライアントを管理する方法について DRDA サービスに指示できます。

フェールオーバー接続

DRDA サービスでは、コンピューターごとに 1 つずつ、2 つのサーバーのグループで動作して、基本的なフォールト トレランスを提供できます。 DRDA AR クライアントが SQL Server データベースに接続すると、DRDA サービスによってデータ サーバー インスタンスの加重リストを含む DRDA SRVLST (サーバー リスト) が返されます。 プライマリ DRDA サービスのフェールオーバーが発生した場合、DRDA AR はこの情報を使用して、DRDA サービス コンピューターのペアの代替メンバーに接続できます。 このテクノロジは、SQL Server のクラスタリングまたはミラーリングと組み合わせることで、フォールト トレラントなフェールオーバー保護を妥当なレベルで実現できます。

Failover Connections

前の図は、フェールオーバー シナリオで DRDA クライアントが DRDA サービス パートナー サーバーに再接続する方法を示しています。

パッケージ バインドの処理

DRDA サービスでは、DRDA Begin Bind (BGNBND) および Bind SQL Statement (BNDSQLSTT) コマンドを処理して SQL Server DROP PROCEDURE および CREATE PROCEDURE ステートメントにすることで、DB2 パッケージの静的 SQL を SQL Server ストアド プロシージャに変換します。 DRDA BGNBND フローには、パッケージ内に格納されているステートメントごとに 1 つずつ、1 つ以上の BNDSQLSTT フロー SQL含まれます。 DRDA サービスは、1 つの DRDA 静的SQL パッケージ セクション (1 つのステートメントを含む) を 1 つのSQL Server ストアド プロシージャにマップします。 DRDA サービスは、ストアド プロシージャ内のコメントの BGNBND パッケージ バインド オプションと、オプションの拡張ストアド プロシージャ プロパティをマップまたは保持します。 DRDA サービスは、内部SQL トランスフォーマーを使用して、コマンド構文、パラメーター、データ型、カーソル、結果セットSQL変換します。 必要に応じて、DRDA サービスまたはオフラインでパッケージを対話形式で処理するカスタム パッケージ バインド リスナーを開発できます。

パッケージを XML ファイルにバインドする

DRDA サービスは、1 つの BGNBND フローを DB2 パッケージ XML ファイルの静的SQLに処理し、DRDA BNDSQLSTT フローで定義されている元のバインド オプションとステートメントを保持できます。

パッケージをストアド プロシージャにバインドする

DRDA サービスは、単一の BGNBND フローを SQL Server ストアド プロシージャに処理し、DRDA BNDSQLSTT フローで定義されている元のステートメントを対応するSQL Server構文に変換します。

Create Procedure ステートメント

DRDA サービス内部パッケージ バインド リスナーとほとんどのカスタム リスナーには、BGNBND (Begin Bind) DRDA プロトコル フローの PKGRPLOPT (パッケージ置換オプション) の値に応じて、DROP PROCEDURE ステートメントを含む IF EXISTS 句が含まれます。 PKGRPLOPT の既定値は PKGRPLALW (パッケージ置換可能) です。 必要に応じて、値 PKGRPLNA (パッケージ置換不可) を指定できます。

DRDA サービスの内部パッケージ バインド リスナーとほとんどのカスタム リスナーには、ストアド プロシージャの実行方法を DRDA サービス ランタイムに通知する CREATE PROCEDURE ステートメント テキストの直前にコメントが含まれます。

クエリ結果セット

このコメントは、SQLClient DataReader を使用して SELECT ステートメントの結果を返すように DRDA サービスに指示します。

/****** RETURN RESULTSET ******/

クエリ出力パラメーター

このコメントは、クエリからデータを返すプロシージャを呼び出すときに OUTPUT パラメーターを準備するように DRDA サービスに指示します。

/****** HAS OUTPUT PARAMS ******/

カーソルを保持する

このコメントは、トランザクション内でカーソルを開いたままにするよう DRDA サービスに指示します。

/****** CURSOR WITH HOLD ******/

バインド オプション

このコメントは、将来使用するためにランタイム DRDA BNDOPT (バインド オプション) を保持します。

/****** BNDOPT: <Options><BNDCHKEXS>BNDEXSOPT</BNDCHKEXS><BNDCRTCTL>BNDNERALW</BNDCRTCTL><BNDEXPOPT>EXPNON</BNDEXPOPT><DFTRDBCOL>DBO</DFTRDBCOL><DGRIOPRL>1</DGRIOPRL><PKGATHOPT>PKGATHKP</PKGATHOPT><PKGATHRUL>OWNER</PKGATHRUL><PKGISOLVL>ISOLVLCS</PKGISOLVL><PKGOWNID>PLARSEN</PKGOWNID><PKGRPLOPT>PKGRPLALW</PKGRPLOPT><QRYBLKCTL>LMTBLKPRC</QRYBLKCTL><RDBRLSOPT>RDBRLSCMM</RDBRLSOPT><STTDATFMT>ISODATFMT</STTDATFMT><STTDECDEL>DECDELPRD</STTDECDEL><STTSTRDEL>STRDELAP</STTSTRDEL><STTTIMFMT>ISOTIMFMT</STTTIMFMT></Options> ******/

[バインドとパッケージの実行] コマンドを無視する

DRDA クライアント・プログラムは、基本的な DECLARE CURSOR ステートメントを含む標準パッケージのセットをバインドします。このパッケージを使用して、IBM DB2 for z/OS に対して SELECT ステートメントおよび CALL ステートメントの結果をフェッチおよび戻す方法を定義します。 DRDA サーバーは、これらのパッケージをSQL Serverストアド プロシージャに変換する必要はありません。 修飾されたパッケージ名の値の区切りリストを含むIgnoreStandardPackages.txt ファイルを読み取ることで、DRDA サーバーにこれらのパッケージを無視するように指示することで、バインド処理とストレージ領域を節約できます。

COLIDPKGNAM
SYSIBM*
*MSCS001
*MSUR001
*MSRS001
*MSRR001
*MSNC001
NULLIDSYSSH*

ストック IgnoreStandardPackages.txt ファイルの内容。

ファイルの最初の行には、列ヘッダーを表す 2 つの値のタブ区切りのセットが含まれています。 最初の列ヘッダーは、COLID (コレクション識別子) です。 2 番目の列ヘッダーは PKGNAM (パッケージ名) です。 ファイルの残りの行には、コレクション識別子とパッケージ名のタブ区切り値のセットが含まれています。

値の代わりにアスタリスクを指定すると、任意の値が示されます。 Microsoft DRDA クライアントには、1 つ以上のユーザー定義コレクションでパッケージの標準セットを定義するための一連のツールが用意されています。 この場合、ワイルドカードは、パッケージが定義されているコレクションに関係なく、Microsoft DRDA クライアント標準パッケージを参照するバインドコマンドと実行コマンドを無視するように DRDA サーバーに指示します。

文字列の末尾にあるアスタリスクは、部分的な値を表します。 IBM DB2 Connect DRDA クライアントは、開始パッケージ名値 SYSSH を使用して NULLID コレクション内の標準パッケージ・セットを定義するための一連のツールを提供します。 この場合、ワイルドカードは、IBM DB2 Connect DRDA クライアント標準パッケージの完全なセットを参照するバインドおよび実行コマンドを無視するように DRDA サーバーに指示します。

データ型

DRDA サービスは、これらのプラットフォーム変換を提供することで、異種ベンダー製品とテクノロジ間の互換性を提供します。

DB2 から SQL Server データ型へのマッピング

DRDA サービスは、%DRDAROOT%\system ディレクトリのDb2ToSql.xml ファイルに格納されている定義済みのマッピング セットに基づいて、DB2 をSQL Serverデータ型にマップします。 たとえば、DRDA サービスは、DRDA プロトコル フローで定義されている DB2 TIMESTAMP 値と形式、および書式設定されたデータを、SQL Server インターフェイス用の Microsoft ADO.NET Framework Data Providerを介してストアド プロシージャおよび動的SQLステートメントで定義されているSQL SERVER DATETIME2(6) の値と形式に変換します。

ソース DB2 の種類 ターゲット SQL Serverの種類
TIME TIME
timestamp DATETIME2
DATE DATETIME
CHAR CHAR
CHAR () FOR BIT DATA BINARY
CHAR () FOR MIXED DATA NCHAR
CHAR () FOR SBCS DATA CHAR
CHARACTER CHAR
CHARACTER () FOR BIT DATA BINARY
FIXEDBYTE BINARY
CHARACTER () FOR MIXED DATA NCHAR
CHARACTER () FOR SBCS DATA CHAR
NATIONAL CHARACTER NCHAR
VARCHAR VARCHAR
VARCHAR () FOR BIT DATA VARBINARY
VARBYTE VARBINARY
VARCHAR () FOR MIXED DATA NVARCHAR
VARCHAR () FOR SBCS DATA VARCHAR
CHARACTER VARYING VARCHAR
CHARACTER VARYING () FOR BIT DATA VARBINARY
CHARACTER VARYING () FOR MIXED DATA NVARCHAR
CHARACTER VARYING () FOR SBCS DATA VARCHAR
NATIONAL CHARACTER VARYING NVARCHAR
LONG VARCHAR FOR BIT DATA イメージ
LONG VARCHAR [TEXT]
GRAPHIC NCHAR
VARGRAPHIC NVARCHAR
GRAPHIC VARYING NVARCHAR
SMALLINT SMALLINT
INT INT
INTEGER INT
bigint bigint
DECIMAL DECIMAL
NUMERIC DECIMAL
実数 実数
FLOAT FLOAT
DOUBLE FLOAT
DOUBLE PRECISION FLOAT
BLOB イメージ
BINARY LARGE OBJECT イメージ
CLOB [TEXT]
CLOB () FOR MIXED DATA NTEXT
CLOB () FOR SBCS DATA [TEXT]
CHAR LARGE OBJECT [TEXT]
CHAR LARGE OBJECT () FOR MIXED DATA NTEXT
CHAR LARGE OBJECT () FOR SBCS DATA [TEXT]
CHARACTER LARGE OBJECT [TEXT]
CHARACTER LARGE OBJECT () FOR MIXED DATA NTEXT
CHARACTER LARGE OBJECT () FOR SBCS DATA [TEXT]

DB2 データ型マッピングへのSQL Server

DRDA サービスは、%DRDAROOT%\system ディレクトリのMsSqlToDb2.xml ファイルに格納されている定義済みのマッピングセットに基づいて、DB2 をSQL Serverデータ型にマップします。 たとえば、DRDA サービスは、SQL Server インターフェイスの Microsoft ADO.NET Framework Data Provider で定義されている SQL SERVER MONEY の値と形式を、DRDA プロトコル フローと書式設定されたデータで定義されている DB2 DECIMAL 値と形式に変換します。

ターゲット SQL Serverの種類 ソース DB2 の種類
SMALLINT SMALLINT
INT 整数
実数 実数
FLOAT DOUBLE
SMALLMONEY DECIMAL(10,4)
MONEY DECIMAL(19,4)
BIT SMALLINT
TINYINT SMALLINT
bigint bigint
UNIQUEIDENTIFIER CHAR(38)
VARBINARY VARBYTE
timestamp timestamp
BINARY FIXEDBYTE
XML LONG VARCHAR
イメージ LONG VARCHAR
VARIANT BIT データの VARCHAR(32672)
[TEXT] LONG VARCHAR
CHAR CHAR
VARCHAR VARCHAR
NCHAR CHAR
NVARCHAR VARCHAR
NTEXT LONG VARCHAR
DECIMAL DECIMAL
NUMERIC DECIMAL
DATETIME timestamp
DATETIMEOFFSET timestamp
DATE DATE
TIME TIME
SMALLDATETIME timestamp
SYSNAME VARGRAPHIC(128)

データ型マッピングの構成

DRDA サービスは、基本データ型を DB2 から SQL Server に変換し、SQL Serverから DB2 に変換します。 必要に応じて、これらの XML ファイルを編集して、基本データ型のマッピングを変更できます。

C:\Program Files\Microsoft Service for DRDA\system\ DB2ToMSSql.xml
C:\Program Files\Microsoft Service for DRDA\system\ MSSQLToDB2.xml

ロケールエンコード

DRDA サービスでは、ロケール固有の文字列エンコードがサポートされています。

EBCDIC

DRDA サービスは、UNICODE 1208 との間で変換される以下の SBCS (1 バイト文字セット) EBCDIC CCSID をサポートします。

名前 CCSID NLS コード ページ
EBCDIC - アラビア語 420 20420
EBCDIC - キリル文字 (ロシア語) 880 20880
EBCDIC - キリル文字 (セルビア語、ブルガリア語) 1025 21025
EBCDIC - デンマーク/ノルウェー (ユーロ) 277 1142
EBCDIC - デンマーク/ノルウェー 277 20277
EBCDIC - フィンランド/スウェーデン (ユーロ) 278 1143
EBCDIC - フィンランド/スウェーデン 278 20278
EBCDIC - フランス (ユーロ) 297 1147
EBCDIC - フランス 297 20297
EBCDIC - ドイツ (ユーロ) 273 1141
EBCDIC - ドイツ 273 20273
EBCDIC - ギリシャ語 (モダン) 875 875
EBCDIC - ギリシャ語 423 20423
EBCDIC - ヘブライ語 424 20424
EBCDIC - アイスランド語 (ユーロ) 871 1149
EBCDIC - アイスランド語 871 20871
EBCDIC - インターナショナル (ユーロ) 500 1148
EBCDIC - International 500 500
EBCDIC - イタリア (ユーロ) 280 1144
EBCDIC - イタリア 280 20280
EBCDIC - ラテン アメリカ/スペイン (ユーロ) 284 1145
EBCDIC - ラテン アメリカ/スペイン 284 20284
EBCDIC - 多言語/ROCE (ラテン語-2) 870 870
EBCDIC - タイ語 838 20838
EBCDIC - トルコ語 (Latin-3) 905 20905
EBCDIC - トルコ語 (Latin-5) 1026 1026
EBCDIC - 米国/カナダ (ユーロ) 37 1140
EBCDIC - 米国/カナダ 37 37
EBCDIC - イギリス (ユーロ) 285 1146
EBCDIC - イギリス 285 20285

ANSI

DRDA サービスでは、UNICODE 1208 との間で変換された以下の SBCS (1 バイト文字セット) ANSI CCSID がサポートされます。

名前 CCSID NLS コード ページ
ANSI - アラビア語 1256 1256
ANSI - バルト言語 1257 1257
ANSI - 中央ヨーロッパ 1250 1250
ANSI - キリル言語 1251 1251
ANSI - ギリシャ語 1253 1253
ANSI - ヘブライ語 1255 1255
ANSI - ラテン I 1252 1252
ANSI - トルコ語 1254 1254
ANSI - アラビア語 1256 1256

[パフォーマンス]

このトピックには、DRDA サービスを使用するときにパフォーマンスを最大化するのに役立つ情報が含まれています。

認証と暗号化

認証

DRDA サービスは、Microsoft Enterprise シングル Sign-Onを使用して、バインドされた DRDA アプリケーションリクエスター (DB2 for z/OS RACF ユーザー識別子とパスワードなど) のユーザー資格情報を、データベース接続をSQL Serverするアウトバインド SQL クライアント (たとえば、Windows Active Directory アカウントを持つ統合セキュリティ) ユーザー資格情報を認証します。 ESSO の代わりに、マップされた認証を使用するように MsDrdaService を構成できます。 MsDrdaService.exe.configの mappedAuthenticationDomain 属性は、統合セキュリティ サポート プロバイダー インターフェイス (SSPI) を使用してWindows 認証用に構成されたSQL Serverに接続するときに、Microsoft が Active Directory ドメインをWindowsする DRDA サービスに、バインドされた DRDA クライアント資格情報 (ユーザー名とパスワード) をマップするように指示しますが、Microsoft を使用する場合は使用しません。シングル サインオンをEnterpriseします。 DRDA サービスは、Microsoft Enterprise シングル Sign-Onおよびマップされた認証ドメイン機能から取得したセキュリティ トークンを、構成された期間キャッシュします。このトークンは、Windows 認証用に構成されたSQL Serverに接続するときに使用します。 統合されたセキュリティ サポート プロバイダー インターフェイス (SSPI) を使用します。securityTokenTimeout 属性は、一定期間セキュリティ トークンを保持するように DRDA サーバーに指示し、その後、新しいWindowsクライアント識別子 (CID) を取得します。 この省略可能な属性は、期間の値を受け入れます。 既定値は PT8H (期間は 8 時間) です。パフォーマンスを向上させるために、ESSO セキュリティ トークン のタイムアウト値を長期間調整できます。

暗号化

DRDA サービスは、データ暗号化 Standard (DES) テクノロジ、Secure Sockets Layer (SSL) V3.0、トランスポート層セキュリティ (TLS) V1.0 を使用した認証とデータ暗号化をサポートするData Providerをサポートしています。 また、DRDA サービスでは、Advanced Encryption Standard (AES) 暗号化のみを使用したデータ暗号化がサポートされています。 これらの暗号化メカニズムは、パフォーマンスに影響を与える可能性があります。

Connection

SQL Server接続

DRDA 用サービスは、SQL Serverと基になる SQL ネットワーク クライアント用の ADO.NET Framework Data Providerを使用して、SQL Server データベースに接続します。 ローカル SQL Server インスタンスに接続する場合は、ネットワーク ライブラリ=dbmslpcn を指定して、TCP/IP ネットワーク接続ではなく、共有メモリを使用してSQL Serverに接続するようにSQL クライアントに指示します。接続の起動時間を短縮するには、接続プールSQL Server使用します。接続文字列で Pooling=true を設定して、DRDA サービスによって閉じられたときにプールに新しく作成された接続を追加するようにSQL クライアントに指示します。 ローカル サーバーへの影響を調整するには、接続文字列の最大プール サイズを設定して、SQL クライアントが接続プールに保持する必要がある接続の最大数を定義します。 既定値は、接続の起動時間をさらに短縮 100.To、MsDrdaService 内部接続プールを使用し、バインドされた DRDA AR クライアント接続と認証資格情報をアウトバインド SQL Server データベース接続と資格情報にマッピングします。connectionCacheSize 属性を設定して、DRDA サービスがキャッシュするコンピューター接続 SQL SQL Serverクライアントの数を定義します。クライアント接続プールをSQLします。 このオプション属性は、整数値を受け入れます。 既定値は 1000 です。connectionCacheTimeout 属性は、プールされた接続を一定期間保持するように DRDA サーバーに指示し、その後、新しいSQLクライアント接続を取得します。 この省略可能な属性は、期間の値を受け入れます。 既定値は PT8H (期間は 8 時間) です。

接続のフェールオーバー

DRDA サービスは、フォールト トレラント フェールオーバーを提供するためにグループ内で動作できます。 このグループは、ローカル サービス ロール (プライマリまたはセカンダリ)、使用可能なフェールオーバー パートナー サーバー、およびグループ内のサーバーの正常性を監視するための ping 間隔を指定することによって定義されます。 pingInterval 属性は、EXCSAT (Exchange Server属性) フローを実行し、EXCSATRD (EXCSAT 応答データ) を確認することによって、パートナー サーバー コンピューターの正常性を監視する頻度を DRDA サービスに指示します。 このオプション属性は、整数値を受け入れます。 既定値は、10000 ミリ秒 (10 秒) です。

プラットフォームの互換性

パッケージ プロシージャ キャッシュ

DRDA サービスは、対応するSQL Server ストアド プロシージャに対して SQL Server CALL ステートメントを実行することで、DRDA EXCSQLSTT (SQL ステートメントの実行) コマンドと OP MYSQLRY (Open Query) コマンドを処理します。 CALL ステートメントを実行する前に、DRDA サービスは、ステートメントの種類 (SELECT、INSERT、UPDATE、DELETE)、カーソルの種類 (WITH HOLD)、パラメーター データ型 (CHAR FOR BIT など)、およびその他の属性 (結果など) を確認する、SQL Server ストアド プロシージャのメタデータをフェッチします。 メタデータをフェッチした後、DRDA サービスは、次にこのパッケージ セクションを実行するときにパフォーマンスを向上させるために、構成された間隔のこの情報 (マップされたプロシージャ名を含む) をパッケージ プロシージャ キャッシュにキャッシュします。 packageProcedureCacheFlush 属性は、指定された時間間隔後にパッケージ プロシージャ キャッシュをフラッシュするように DRDA サーバーに指示します。 この省略可能な属性は、期間の値を受け入れます。 既定値は P1D (期間は 1 日) です。packageProcedureLastInvoke 属性は、指定した期間の後に、パッケージ プロシージャ キャッシュ内のオブジェクトの名前をテキスト ファイル %DRDAROOT%\LastInvokePackageProcedures.txt に書き込むよう DRDA サーバーに指示します。 この省略可能な属性は、期間の値を受け入れます。 既定値は P7D (期間は 7 日) です。 サービスの起動時に、DRDA サービスはこのテキスト ファイルを読み込み、ファイルに一覧表示されているプロシージャのスキーマを事前フェッチします。サービスの起動のパフォーマンスを向上させるために、このファイルを編集し、不要なストアド プロシージャ名を削除できます。 LastInvokePackageProcedures.txt ファイルの読み取りと書き込みを無効にするには、timepan を PT0S (時間 0 秒の期間) に設定します。

SQL 構文

DRDA サービスには、DB2 ANSI から SQL Server への限定された T-SQL コマンド構文トランスフォーマーがあり、パッケージのバインド、静的および動的 SQL ステートメントの実行に使用されます。 必要に応じて、DRDA サービスでは SQL Server CLR ベースの関数の形式で互換性のある DB2 関数が提供されます。 SQL構文変換のパフォーマンスを向上させるには、DRDA サービス CLR ベースの関数を有効にします。 DRDA サービスは、DB2 パッケージの静的SQLをSQL Serverストアド プロシージャに変換します。DRDA begin bind and bind SQL ステートメント コマンド (埋め込みSQL DECLARE CURSOR ステートメントを含む) を処理する場合。 パフォーマンスを向上させるために、DRDA サービスは、1 回の行フェッチで同時更新をサポートするようにパッケージまたはカーソルが定義されていない限り、フェッチごとに複数の行を返します。 読み取りパフォーマンスを最適化するために SELECT ステートメントを定義する場合、開発者は FOR FETCH ONLY 句または FOR READ ONLY 句を含める必要があります。

Isolation Level

DRDA サービスは、DRDA EXCSQLSTT (SQL実行ステートメント) の IBM DB2 分離レベルを、SQL Server トランザクション・オブジェクトの ADO.NET・プロバイダーのSQL Server・トランザクション・レベルにマップします。 パフォーマンスを向上させ、データベース オブジェクトの競合を減らすために、開発者は、分離レベル Read Committed にマップされる DB2 分離レベルカーソルの安定性 (CS) SQL Server利用する必要があります。

日付時刻の形式と変換

DRDA サービスは、動的および静的なSQLステートメントを処理するときに、特定の日付時刻と文字データ型に対して、ソースとターゲットの形式から文字列リテラルの日付時刻値を書式設定します。 conversionFormats 要素には、DB2 形式と SQL Server datetime 形式との間で変換するための dateMasks、timeMasks、dateTimeMasks が含まれており、これらの変換をいつ実行するかを DRDA サービスに指示します。 日付時刻の書式設定された値との間の文字列の解析、エンコード、デコードでは、追加の DRDA サービス リソースが使用されます。

コード ページ変換

DRDA サービスは、コード ページをマップし、基になる HIS Encoder コンポーネントと Windows 各国語サポート (NLS) システム コンポーネントを使用したカスタム コード ページ変換をサポートします。 必要に応じて、DRDA サービスは、カスタム コード ページをサポートするように個々のコード ポイントを変換できます。 DRDA サーバーは、カスタム コード ページ変換をサポートするときに追加のリソースを使用します。

照合順序のマッピング

SQL Serverは、DRDA クライアント プログラムで予想される順序とは異なる順序でクエリ結果を照合できます。 たとえば、IT プロフェッショナルは、ANSI 照合順序を使用するように SQL Server データベースを構成し、DB2 for z/OS データベースで EBCDIC 照合順序を使用するように構成できます。 DRDA サービスは、DB2 ORDER BY COLLATION_KEY (照合順序名) 構文から SELECT ステートメントを T-SQL Server SQL ORDER BY COLLATE (collation_name) 構文に変換し、DB2 照合順序名の値からSQL Server collation_name値にマッピングして、互換性のあるクエリ結果を提供できます。DRDA サービスは、既定の ORDER BY 照合順序名に基づいて、COLLATE 句を ORDER BY 句に追加できます。 DRDA サービスの構文の解析と置換または追加SQLは、追加のリソースを消費します。

トレース

DRDA サービスは、テキスト、コンソール、イベント ログ、およびカスタム コンポーネントに情報をログ記録するための一連の共有リスナーをサポートします。 MsDrdaService.exe.config ファイルの hostIntegration.drdaAs.drdaService セクションの system.diagnostics 要素は、さまざまなリスナーを定義および制御します。traceLevel 属性は、トレースの最小レベルから最大レベルまで、定義済みの情報のコレクションをトレースするように DRDA サービスに指示します。 このオプション属性は、整数値を受け入れます。 既定値は 0 で、トレースを無効にします。DRDA サービスはトレース リスナーにトレース データを自動的にフラッシュできます。これにより、トレース データが確実にキャプチャされますが、ディスク I/O が増加し、システム全体のパフォーマンスが低下します。 パフォーマンスを向上させるには、autoFlush を false に設定して、自動トレース フラッシュを無効にします。

パフォーマンス モニター

パフォーマンスを測定するために、DRDA サービスにはパフォーマンス カウンターが用意されています。 DRDA サービス のパフォーマンス カウンターは、オープン接続、オープン ステートメント、送信/受信したパケットとバイト数、平均処理時間、コマンド実行、データ フェッチ、トランザクションコミット/ロールバックに関する情報をキャプチャします。

構成

パフォーマンスを測定するために、DRDA サービスには、Windows パフォーマンス モニターで使用するパフォーマンス カウンターが用意されています。 peformanceCountersOn 属性は、パフォーマンス カウンターに情報を収集するように DRDA サービスに指示します。 このオプション属性は、ブール値を受け入れます。 既定値は false です。 詳細については、パフォーマンスに関するセクションを参照してください。 また、Windows パフォーマンス モニターの詳細については、「パフォーマンス カウンター (https://go.microsoft.com/fwlink/?LinkID=119211)」を参照してください。

Counters

DRDA サービスは、これらのパフォーマンス モニター カウンターにデータを出力します。

  1. Active sessions

  2. アクティブなSQL接続

  3. Active Transactions

  4. 受信バイト数

  5. Bytes Received/sec

  6. 送信バイト数

  7. Bytes Sent/sec

  8. トランザクション

  9. トランザクションのコミット

  10. Transactions Commits/sec

  11. トランザクションロールバック

  12. Transactions/sec

DRDA サービス インスタンス

DRDA サービスは、サービスごとまたは接続ごとの "インスタンス" ベースでパフォーマンス モニター カウンターを提供します。ここで、"インスタンス" はプロセスまたはセッションにすることができます。