DRDA のサービス (操作)

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

DRDA サービスの管理

DRDA サービスの開始

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

Windows サービス

コマンド ウィンドウを使用すると、サービス構成で定義されている資格情報の下で、DRDA サービスを開始してサービスとして実行できます。 コマンド プロンプトを開き、「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. コマンド プロンプトから、「 net stop msdrdaservice」 と入力し、Enter キーを押します。
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC>net stop msdrdaservice
The Microsoft Service for DRDA service is stopping.
The Microsoft Service for DRDA service was stopped successfully.
  1. コマンド プロンプトで、「 msdrdaservice.exe -c 」と入力し、Enter キーを押します。
Information:0:3:[Jan 24 2024 17:03:15.743] disableXaTransaction has been set to False by parsing string: False
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set TransactionExpiryDuration.
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set ResyncRetryDurationInMinutes.
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set XaIsolationLevel attribute to: SZ
Information:0:3:[Jan 24 2024 17:03:15.743] ResynchronizationManager reaching the end of transaction log file.
Information:0:5:[Jan 24 2024 17:03:15.962] Enter SessionManager::Initialize
Information:0:5:[Jan 24 2024 17:03:16.118] Exit SessionManager::Initialize
Information:0:5:[Jan 24 2024 17:03:16.118] Enter TcpConnectionManager::StartListener
Information:0:3:[Jan 24 2024 17:03:16.118] Microsoft Service for DRDA (build: 11.0.2205.0)
Information:0:3:[Jan 24 2024 17:03:16.118] TCP communication manager listening on port 446
Information:0:5:[Jan 24 2024 17:03:16.150] Exit TcpConnectionManager::StartListener
Information:0:5:[Jan 24 2024 17:03:16.150] Exit TcpConnectionManager::Initialize
Information:0:4:[Jan 24 2024 17:03:16.150] Set ServerBootstrap state to: Started

注意

DRDA サービス トレース リスナーは、コンソール ウィンドウに情報を出力します。 DrdaAsConsoleListener エントリのコメントを解除し、MsDrdaServiceConfig.exe.config ファイルに traceLevel (つまり 5) を設定する必要があります。

DRDA サービスの停止

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

Windows サービス

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

  1. コマンド プロンプトから、「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>

注意

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

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

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

クライアント接続

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

Information:0:3:[Jan 24 2024 17:03:16.118] TCP communication manager listening on port 446

リモート DRDA アプリケーションリクエスター クライアントは、TCP/IP ネットワーク接続を介してローカル DRDA サービスに接続します。 DRDA クライアントは、DRDA EXCSAT (Exchange Server属性)、ACCSEC (Access Security)、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 Connections

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

フェールオーバー Connections

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

フェールオーバー Connections

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

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

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

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

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

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

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

プロシージャステートメントの作成

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

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

クエリ結果セット

このコメントは、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 ステートメントを含む標準パッケージのセットをバインドします。このパッケージを使用して、SELECT ステートメントおよび CALL ステートメントの結果を IBM DB2 for z/OS に対してフェッチおよび戻す方法を定義します。 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 値と形式、および書式設定されたデータを、microsoft ADO.NET Framework Data Provider for SQL Server インターフェイスを介してストアド プロシージャおよび動的 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
real real
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 サービスは、microsoft ADO.NET Framework Data Provider で定義されている SQL SERVER MONEY 値と形式を、SQL Server インターフェイス用に、DRDA プロトコル フローと書式設定されたデータで定義されている DB2 DECIMAL 値と形式に変換します。

ターゲット SQL Serverの種類 ソース DB2 の種類
SMALLINT SMALLINT
INT 整数
実数 real
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 ビット データの 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 - インターナショナル 500 500
EBCDIC - イタリア (ユーロ) 280 1144
EBCDIC - イタリア 280 20280
EBCDIC - ラテン アメリカ/スペイン (ユーロ) 284 1145
EBCDIC - ラテン アメリカ/スペイン 284 20284
EBCDIC - 多言語/ROECE (Latin-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 CCS がサポートされています。

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

暗号化

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

接続

SQL Server接続

Service for DRDA は、ADO.NET Framework Data Provider for SQL Server と基になる SQL ネットワーク クライアントを使用して、SQL Server データベースに接続します。 ローカル SQL Server インスタンスに接続する場合は、ネットワーク ライブラリ=dbmslpcn を指定して、TCP/IP ネットワーク接続ではなく共有メモリを使用してSQL Serverに接続するように SQL クライアントに指示します。接続の起動時間を短縮するには、接続文字列で Pooling=true を設定して、DRDA サービスによって閉じられたときに新しく作成された接続をプールに追加するように SQL クライアントに指示することで、SQL Server接続プールを使用します。 ローカル サーバーへの影響を調整するには、SQL クライアントが接続プールに保持する必要がある接続の最大数を定義するように、接続文字列の最大プール サイズを設定します。 既定値は、接続の起動時間をさらに短縮 100.To、MsDrdaService 内部接続プールを使用し、バインドされた DRDA AR クライアント接続と認証資格情報をアウトバインド SQL Server データベース接続と資格情報にマッピングします。connectionCacheSize 属性を設定して、SQL Serverする SQL クライアントの数を定義します。コンピューター接続 DRDA サービスは 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 ステートメントの実行) コマンドと OPNQRY (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 ファイルの読み取りと書き込みを無効にするには、期間を PT0S (Time Zero Seconds の期間) に設定します。

SQL 構文

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

Isolation Level

DRDA サービスは、DRDA EXCSQLSTT (SQL 実行ステートメント) の IBM DB2 分離レベルを、トランザクション・オブジェクトの ADO.NET・プロバイダーのSQL Server・トランザクション・レベル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 ステートメント SQL Serverを T-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 セクションの診断要素は、さまざまなリスナーを定義および制御します。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 Connections

  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 サービスでは、サービスごとまたは接続ごとの "インスタンス" ベースでパフォーマンス モニター カウンターが提供されます。ここで、"インスタンス" はプロセスまたはセッションにすることができます。