以下のセクションでは、Microsoft Service for DRDA (DRDA サービス) を使用したソリューションの計画と設計に関するヘルプを提供します。
計画
エンタープライズ IT 組織は、開発者の効率を高め、コストを削減しながら、新しいソリューションを提供する必要があります。 DRDA サービスには、IT プロフェッショナルやエンタープライズ開発者が Microsoft SQL Server に基づく新しいソリューションをデプロイしながら、IBM DB2 に基づく既存のワークロードを接続できるテクノロジとツールが用意されています。 次の図は、IBM DB2 クライアントを Microsoft SQL Server データベースに接続する DRDA サービス ソリューションに関連するテクノロジとコンポーネントのアーキテクチャの概要を示しています。
前の図は、IBM CICS for z/OS クライアント・プログラムを DB2 for z/OS および DRDA 用サービスを介してリモートの Microsoft SQL Server データベースに接続する計画を示しています。
Microsoft Service for DRDA (分散リレーショナル データベース アーキテクチャ) は、IBM DB2 for z/OS や DB2 for IBM i などの DRDA アプリケーション リクエスター (AR) クライアントが SQL Server ストアド プロシージャにマップされた静的 SQL ステートメントを実行できるようにするアプリケーション サーバー (AS) です。 DRDA サービスは、段階的なワークロード移行中、またはリモート バッチまたはビジネス インテリジェンス ソリューションをサポートする日常業務に不可欠な、ホストによって開始されるデータ統合を企業に提供します。
DRDA サービスには、次の機能があります。
TCP/IP ネットワーク接続経由で DRDA クライアントから SQL Server へのアクセス。
セキュリティ認証とデータ暗号化。
分散された 2 フェーズ コミット トランザクション。
SQL Server ストアド プロシージャ呼び出しにマップされた静的 SQL ステートメント。
T-SQL コマンドにマップされた制限付き動的データ操作言語コマンド。
データ型のマッピングと変換、文字列エンコード、および datetime の書式設定。
DRDA 応答メッセージと書式設定されたエラー オブジェクトへのエラー コードとテキスト マッピング。
問題のトラブルシューティングを可能にするフローとコマンドを記録するためのトレース ユーティリティ。
分散リレーショナル データベースアーキテクチャ
IBM DB2 クライアントとサーバーは、分散リレーショナル データベース アーキテクチャ (DRDA) プロトコルと形式を使用して通信します。 DRDA サービスは DRDA アプリケーション サーバー (AS) として機能し、DRDA アプリケーション リクエスター (AR) クライアントが Microsoft SQL Server データベースと対話できるようにします。 DRDA サービスは、Open Group (http://www.opengroup.org) によって公開されたアーキテクチャ参照で定義されている限られた DRDA コード ポイントのセットをサポートします。
DRDA、バージョン 5、ボリューム 1: 分散リレーショナル データベース アーキテクチャ (DRDA)
DRDA、バージョン 5、ボリューム 2: 書式設定されたデータ オブジェクト コンテンツ アーキテクチャ (FD:OCA)
DRDA、バージョン 5、ボリューム 3: 分散データ管理 (DDM) アーキテクチャ
オープン グループ書店 (https://go.microsoft.com/fwlink/?LinkID=219127& から DRDA V5 Vol. 3: Distributed Data Management Architecture、パブリケーション番号 C114 をダウンロードできます。clcid=0x409)。
IBM DB2 サーバーとクライアント
Microsoft、IBM、サード パーティベンダーは、さまざまな DRDA アプリケーション リクエスター (AR) クライアント テクノロジで DRDA プロトコルと形式を実装しています。 DRDA サービスは、これらの IBM および Microsoft 製品にパッケージ化された DRDA AR を含む、DRDA バージョン 5 標準に準拠する DRDA AR クライアントからのインバインド接続をサポートします。
IBM DB2 for z/OS 12 および 11
IBM DB2 for IBM i 7.4、7.3、および 7.2
IBM DB2 for LUW 11.5、11、および 10.5
Microsoft Host Integration Server には、リモート IBM DB2 データベース サーバーに接続するように設計された 2 つの DRDA アプリケーション リクエスター クライアントと、リモート IBM Informix データベース サーバーに接続するように設計されたクライアントが 2 つ含まれています。 これらの DRDA AR は、DRDA バージョン 5.0 のサブセットをサポートします。 Db2 用 Microsoft クライアントは、DB2 用の次のデータ プロバイダーをサポートしています。
Microsoft ODBC Driver for DB2
Microsoft OLE DB Provider for DB2
Microsoft ADO.NET Framework Data Provider for DB2
Microsoft BizTalk Adapter for DB2
DRDA サービスは、Microsoft DRDA クライアントと IBM DRDA クライアントに対する基本的な DRDA サポートを提供します。
エンタープライズ シングル Sign-On
DRDA サービスは、Microsoft Enterprise Single Sign-On に依存して、バインドされたホスト資格情報 (RACF ユーザー承認識別子など) をアウトバウンド Windows Active Directory (AD) 資格情報にマップし、DRDA サービスが統合セキュリティを使用して SQL Server に接続できるようにします。
前の図は、Enterprise Single Sign-One が有効化されている場合に、DRDA サービスが受信した DRDA 資格情報を送信用の SQL Server 資格情報にマップする方法を示しています。
ホストによって開始される ESSO には、Active Directory での昇格されたアクセス許可が必要です (Kerberos の制約付き委任と任意の認証プロトコルの使用)。 ESSO には、DRDA サービスが接続する SQL Server コンピューターの Kerberos サービス プリンシパル名が必要です。 .
Microsoft SQL Server
エンタープライズ管理者と開発者は、基幹業務アプリケーション用のミッション クリティカルなデータ プラットフォームを構築するために Microsoft SQL Server に依存しています。 SQL Server は、企業が組織全体でデータを発見し、新たな洞察を得るのを助けるとともに、ツールによって一貫したデータ、大規模な分析、およびデータウェアハウジングを提供します。 DRDA サービスは、既存の IBM ホスト ワークロードを Microsoft SQL Server に基づく新しいソリューションに接続して、異種エンタープライズ アプリケーションとビジネス インテリジェンスを有効にすることができます。
DRDA サービスは、SQL Server データベースへの接続とデータ アクセスのために、Microsoft SQL Server ネットワーク クライアントと ADO.NET Framework Data Provider for SQL Server に依存しています。 Microsoft SQL Server の詳細については、「 http://www.microsoft.com/sql」を参照してください。
アーキテクチャ
DRDA サービスは、プロトコル コード ポイントと形式のセットの形式で DB2 クライアントとサーバー間の通信を定義する業界標準の DRDA (分散リレーショナル データベース アーキテクチャ) に基づく互換性サービスを提供することで、リモート IBM DB2 クライアント プログラムとローカル Microsoft SQL Server データベースからの接続を可能にします。 DRDA サービスは、アプリケーション サーバー (AS) として DRDA 内で動作します。 IBM DB2 クライアント・プログラム (例: COBOL TOS および CICS for z/OS) は、DB2 for z/OS にローカルに接続され、DRDA 内でアプリケーション・リクエスター (AS) クライアントとして機能します。 DRDA サービスは、Microsoft .NET Framework のインスタンスをホストし、Microsoft ADO.NET Framework Data Provider for SQL Server と基になる Microsoft SQL Server ネットワーク クライアントを使用してローカルまたはリモートの Microsoft SQL Server に接続する Windows サービス プログラムです。
前の図は、IBM DB2 for z/OS を Microsoft SQL Server に接続する DRDA サービス ソリューションを示しています。
接続性
分散リレーショナル データベースアーキテクチャ
DRDA サービスは、DRDA コード ポイントとデータ形式を、対応する Microsoft ADO.NET 接続、トランザクション、コマンド、データ型、およびエラー オブジェクトに変換します。 DRDA サービスの主な機能は、DB2 パッケージおよびステートメント実行用の静的 SQL を Microsoft SQL Server ストアド プロシージャおよび CALL ステートメントに機能的にマップすることです。 DRDA サービスは、さまざまな DRDA マネージャーに基づいて、アーキテクチャ内で定義されている DRDA プロトコル フローを処理します。
ネットワーク トランスポートとトランザクション
DRDA サービスは、TCP/IP ネットワークを介した、バインドされた認証済みの DRDA クライアント接続をサポートします。 DRDA サービスでは、HPR/IP を使用した LU6.2 経由の SNA APPC (インターネット プロトコル経由のハイ パフォーマンス ルーティング) はサポートされていません。 DRDA サービスは、SQL Server に接続するために、基になる Microsoft ADO.NET Provider for SQL Server と SQL ネットワーク クライアントを使用し、メモリ内、名前付きパイプ、TCP/IP ネットワーク接続をサポートします。
既定では、DRDA サービスは、既定の DRDA ポート 446 でインバインド接続をリッスンし、任意の DRDA クライアント接続要求を受け入れます。 必要に応じて、事前構成された別のポート番号でDRDAサービスがリッスンすることができます。 また、セキュリティを向上させるために、DRDA サービスは、定義済みのリモート ネットワーク アドレスの一覧からバインドされた接続要求を受け入れるように構成できます。
ネットワーク全体で信頼性の高い更新を有効にするために、DRDA サービスは DRDA DUW (分散作業単位) の 2 フェーズ コミット トランザクションをサポートします。 DRDA DUW トランザクションは、Microsoft ADO.NET Framework Data Provider for SQL Server と基になる SQL ネットワーク クライアントを介して SQL Server トランザクションにマップされます。
プールとフェールオーバー
DRDA サービスは、DRDA サービス アプリ構成の SQL Server 接続文字列引数で SQL クライアント プーリング オプションを構成することで、SQL クライアント接続プーリングをサポートします。また、DRDA サービスは内部接続プールを提供し、バインドされた DRDA AR クライアント接続と認証資格情報を、アウトバウンド SQL Server データベース接続と資格情報にマッピングします。
DRDA サービスのプライマリ サーバーとパートナー サーバーは、フォールト トレラント フェールオーバーのために連携します。
DRDA サービスは、基本的なフォールト トレランスを提供するために、コンピューターごとに 1 つずつ、2 台のサーバーのグループで動作できます。 DRDA AR クライアントが SQL Server データベースに接続すると、DRDA サービスは、データ サーバー インスタンスの重み付けされたリストを含む DRDA SRVLST (サーバー リスト) を返します。 プライマリ DRDA サービスのフェールオーバーの場合、DRDA AR はこの情報を使用して、DRDA サービス コンピューターのペアの代替メンバーに接続できます。 このテクノロジは、SQL Server クラスタリングまたはミラーリングと組み合わせることで、適切なレベルのフォールト トレラント フェールオーバー保護を提供できます。
認証と暗号化
情報をセキュリティで保護するために、DRDA サービスでは、一般的な DRDA 認証とデータ暗号化テクノロジがサポートされています。 たとえば、DRDA サービスでは、基本認証 (パスワードを使用したプレーン テキストの EBCDIC でエンコードされたユーザー名) や、256 ビットの Advanced Encryption Standard (AES) を使用したセキュリティで保護された認証をサポートできます。 また、DRDA サービスでは、Secure Sockets Layer (SSL) V3.0 またはトランスポート層セキュリティ (TLS) V1.0 を使用した統合認証と暗号化をサポートできます。
統合認証を提供するために、DRDA サービスは、Microsoft Enterprise Single Sign-On (ESSO) を使用したインバインド資格情報の検証とマッピングと、Windows SSPI (セキュリティ サポート プロバイダー インターフェイス) を使用したアウトバウンド SQL Server 認証を組み合わせることができます。 たとえば、DRDA サービスは ESSO と連携して、IBM RACF (リソース アクセス制御機能) のユーザー名とパスワードを Microsoft Windows Active Directory ドメイン\ユーザー名にマップし、統合セキュリティを使用してリモート SQL Server データベースに接続できます。
互換性
静的 SQL と動的 SQL
主に、DRDA サービスを使用すると、DB2 クライアント プログラムは、パッケージ ステートメントを SQL Server ストアド プロシージャにマッピングすることによって、DB2 パッケージ用にリモート定義の静的 SQL を実行できます。 たとえば、DB2 管理者またはプログラマが DB2 パッケージを SQL Server にバインドすると、DRDA サービスは DRDA BNDSQLSTT (Bind SQL ステートメント) フローを SQL Server T-SQL CREATE PROCEDURE ステートメントに変換します。 DB2 プログラムがリモート・パッケージ・ステートメントを実行すると、DRDA サービスは DRDA OPNQRY (Open Query) または EXCSQLSTT (SQL ステートメントの実行) を CALL ステートメントに変換します。
二次的には、DRDA サービスは、DB2 クライアント・プログラムがリモート SQL Server T-SQL コマンドを実行できるように、限られた動的 SQL 操作をサポートします。 たとえば、DB2 管理者は、qMF (Query Management Facility) for z/OS を使用してリモート SQL Server テーブルに対してクエリを実行できます。
SQL 構文
DRDA サービスには、バインド パッケージ、静的および動的 SQL ステートメントの実行に使用される DB2 ANSI から SQL Server への T-SQL コマンド構文トランスフォーマーが限られています。 必要に応じて、DRDA サービスは、SQL Server CLR ベースの関数の形式で、互換性のある DB2 関数を追加で提供します。
DRDA サービスは、DRDA BNDSQLSTT (Bind SQL ステートメント) を SQL Server T-SQL CREATE PROCEDURE ステートメントに処理するための、置き換え可能なパッケージ バインド コンポーネントを提供します。 たとえば、ISV (独立系ソフトウェア ベンダー) やエンタープライズ開発者は、構文、データ型、エンコード、またはその他の必要な変換をサポートするために、カスタム定義のパッケージ バインド コンポーネントを実装できます。
カタログ名とスキーマ名
DRDA サービスは、カタログ名やスキーマ名を含む、高レベルのオブジェクト識別子の基本的なマッピングを提供します。 たとえば、DRDA サービスは、外部からの DRDA RDBNAM(リレーショナル データベース名)を、内部の SQL Server データベース名にマッピングできます。 また、DRDA サービスは、インバウンドの DRDA COLLID (コレクション識別子) をアウトバウンドの SQL Server スキーマ名にマッピングできます。
データ型の変換
Windows オペレーティング システム上で実行されている SQL Server データベースと z/OS および IBM i 上で実行されている DB2 サーバー間のクロスプラットフォーム相互運用性をサポートするために、DRDA サービスには、XML ファイル (DB2ToMSSql.xml および MSSQLToDB2.xml) で定義された一連のデータ型マッピングと変換が用意されています。 たとえば、DRDA サービスは、入力された DB2 DECIMAL データを SQL Server の通貨形式データにマッピングして変換できます。
文字列エンコード
DRDA サービスでは、DB2 EBCDIC 文字列エンコードから SQL Server ANSI および UNICODE エンコードへの変換がサポートされています。 必要に応じて、DRDA サービスは、変更された置き換え可能な Windows EBCDIC から UNICODE NLS (各国語サポート) への変換ファイルをサポートします。 また、DRDA サービスでは、CCSID (コード化文字セット ID) の 16 進値ペアを使用して、事前に定義されたマップに基づいて行内文字置換が提供されます。
Datetime の書式設定
DRDA サービスでは、インライン DB2 DATE/TIME/TIMESTAMP から SQL Server の日付/時刻/datetime2 形式および文字列リテラル値の変換が提供されます。 たとえば、DRDA サービスは、YYYY-MM-DD-hh.mm.ss.tttttt 形式のインバインド DB2 形式の TIMESTAMP 文字列リテラル値を、YYYY-MM-DD hh:mm:ss.tttttt 形式のアウトバインド SQL Server datetime2(6) 値に変換できます。
管理
管理者は、DRDA サービスを開始する前に、MsDrdaService.exe.config ファイルと共に補助 XML ファイル (データ型とエラー マッピング) を変更することで、DRDA サービスを構成できます。 必要に応じて、DRDA サービスでは、動的構成の更新を有効にするために、MsDrdaService.exe.config の即時読み取りが提供されます。
コンフィギュレーション
インストール後、IT プロフェッショナルは、MsDrdaService.exe.config ファイルを編集し、他の XML ファイルを更新することで、DRDA サービスの構成をカスタマイズできます。 DRDA サービス コンポーネント、構成可能な項目、および構成ストアの一覧を次に示します。
コンポーネント | アイテム | 設定保存 |
---|---|---|
DRDA サービス | サービス資格情報 セキュリティ ポリシー権限 接続マネージャー セキュリティマネージャー SQLアクセスマネージャー データベース マネージャー |
Windows レジストリ MsDrdaService.exe.config MSDRDAErrorMappings.xml |
データ変換 | データ型マッピング 日付、時間、日時形式 |
DB2ToMSSql.xml MSSQLToDB2.xml MsDrdaService.exe.config |
コードページ変換 | カスタム コード ページ コードポイントマッピング |
Windows レジストリ MsDrdaService.exe.config |
リスナーをバインドする | 既定のリスナー カスタム リスナー |
MsDrdaService.exe.config |
トレース リスナー | テキスト リスナー コンソール リスナー ETW リスナー カスタム リスナー |
MsDrdaService.exe.config |
イベント ログ | イベント | アプリケーション ログ |
パフォーマンス モニター | カウンター | Windows レジストリ MsDrdaService.exe.config |
前の表に、構成可能な DRDA サービスのコンポーネント、項目、および構成ストアの一覧を示します。
追跡
DRDA サービスは、複数のトレース オプションのコンソール リスナー トレース、テキスト リスナー トレース、イベント ログ リスナー、ETW (Windows イベント トレース) リスナー、およびカスタム トレースをサポートしています。 管理者は、WINDOWS コンソール モードで DRDA サービスを実行するときにコンソール トレースを使用して、トレース データを画面に出力します。 管理者は、Windows サービス モードまたはコンソール モードで DRDA サービスを実行するときにテキスト トレースを使用して、テキスト読み取り可能なファイルにトレース データを出力します。 DRDA サービスは、イベント ログ リスナーのトレース項目を Windows イベント ログに自動的にポストします。 管理者は、高速データ収集に ETW トレースを使用します。 必要に応じて、エンタープライズ開発者はカスタム トレース リスナーを実装して、すべてのトレース データまたは選択したトレース データを別のコンポーネントに出力できます。
アカウンティングとログ記録
DRDA サービスでは、標準の DRDA アカウンティング コード ポイントであるクライアント ワークステーション名がサポートされます。クライアント ユーザー ID。クライアント アプリケーション名。およびクライアント アカウンティング。 エンタープライズ開発者は、DRDA クライアント アカウンティング プロパティを設定する動的な値をプログラムで指定できます。 DRDA サービスは実行時に値を読み取って DRDA サービス トレースを設定し、特定のアプリケーションとユーザー コンテキストへの問題の関連付けを可能にします。 必要に応じて、エンタープライズ開発者は、DRDA AR クライアント要求をログに記録する DRDA サービスの顧客トレース リスナーを実装できます。 たとえば、顧客トレース リスナーは、クライアント アカウントの値に基づいて、選択したネットワークとデータベースのアクセスをリモート SQL Server ログ データベースに記録できます。
エラー マッピング
DRDA サービスは、DRDA コード ポイント応答メッセージ (RM) または DRDA SQLCARD (SQL Communications Area Reply Data) のいずれかの形式で SQL Server エラーを返します。 既定では、一般的な問題の場合、DRDA サービスは組み込みテーブルを使用して、SQL エラー コードとエラー文字列を DRDA 応答メッセージとエラーにマップします。 また、DRDA サービスは外部 MsDrdaErrorMappings.xml ファイルを使用して、SQL Server のエラー コードとエラー テキストを SQLCODE、SQLSTATE、Reason Code、および Error Message にマップします。