次の方法で共有


DRDA 用 Microsoft サービスを使用したソリューションの計画と設計

以下のセクションでは、Microsoft Service for DRDA (DRDA サービス) を使用したソリューションの計画と設計に関するヘルプを提供します。

計画

Enterprise IT 組織は、開発者の効率を高め、コストを削減しながら、新しいソリューションを提供する必要があります。 DRDA サービスでは、IT プロフェッショナルおよびエンタープライズ開発者が IBM DB2 に基づく既存のワークロードを接続しながら、Microsoft SQL Server に基づく新しいソリューションをデプロイできるようにするテクノロジとツールを提供します。 次の図は、IBM DB2 クライアントを Microsoft SQL Server データベースに接続する DRDA サービス ソリューションに関連するテクノロジとコンポーネントの高レベルのアーキテクチャを示しています。

HIS DRDA Planning

前の図は、DB2 for z/OS および DRDA のサービスを介して、IBM CICS for z/OS クライアント プログラムをリモート 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 コマンドにマップされる制限付き動的データ操作言語コマンド。

  • データ型のマッピングと変換、文字列エンコード、および日時の書式設定。

  • DRDA 応答メッセージおよび書式設定されたエラー オブジェクトへのエラー コードとテキストのマッピング。

  • フローとコマンドを記録して問題をトラブルシューティングするためのトレース ユーティリティ。

分散型リレーショナル データベース アーキテクチャ

IBM DB2 クライアントとサーバーは、分散型リレーショナル データベース アーキテクチャ (DRDA) プロトコルと形式を使用して通信します。 DRDA サービスは、DRDA アプリケーション サーバー (AS) として機能し、DRDA アプリケーション リクエスター (AR) クライアントが Microsoft SQL Server データベースと対話できるようにします。 DRDA サービスは、The Open Group (http://www.opengroup.org) によって公開されるアーキテクチャ参照で定義されている、限定された DRDA コード ポイントのセットをサポートします。

  • DRDA、バージョン 5、ボリューム 1: 分散型リレーショナル データベース アーキテクチャ (DRDA)

  • DRDA、バージョン 5、ボリューム 2: 書式設定されたデータ オブジェクト コンテンツ アーキテクチャ (FD:OCA)

  • DRDA、バージョン 5、ボリューム 3: 分散データ管理 (DDM) アーキテクチャ

    DRDA V5 Vol. 3: Distributed データ管理 Architecture, publication number C114 を Open Group Bookstore からダウンロードできます (https://go.microsoft.com/fwlink/?LinkID=219127&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 データベース サーバーに接続するように設計された DRDA アプリケーション リクエスター クライアントと、リモート IBM Informix データベース サーバーに接続するように設計された 2 つの DRDA アプリケーション リクエスター クライアントが含まれています。 これらの DRDA AR では、DRDA バージョン 5.0 のサブセットがサポートされています。 Microsoft client for DB2 では、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 サポートを提供します。

エンタープライズ シングル サインオン

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 データベースへの接続とデータ アクセスを SQL Server 用の Microsoft SQL Server ネットワーク クライアントと ADO.NET Framework データ プロバイダーに依存しています。 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 サービス プログラムです。

DRDA サービス ソリューション

前の図は、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 はサポートされていません。 SQL Server に接続するために、DRDA サービスは、基になる 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 サービスのプライマリ サーバーとパートナー サーバーは、フォールト トレラント フェールオーバーのために連携します。

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 (Resource Access Control Facility) のユーザー名とパスワードを Microsoft Windows Active Directory ドメイン\ユーザー名にマップし、統合セキュリティを使用してリモート SQL Server データベースに接続することができます。

互換性

静的 SQL と動的 SQL

主に、DRDA サービスを使用すると、DB2 クライアント プログラムでは、パッケージ ステートメントを SQL Server ストアド プロシージャにマッピングすることにより、リモートで定義された DB2 パッケージの静的 SQL を実行できます。 たとえば、DB2 管理者またはプログラマーが DB2 パッケージを SQL Server にバインド コピーすると、DRDA サービスにより、DRDA BNDSQLSTT (SQL ステートメントのバインド) フローは SQL Server T-SQL CREATE PROCEDURE ステートメントに変換されます。 DB2 プログラムでリモート パッケージ ステートメントを実行すると、DRDA サービスにより、DRDA OPNQRY (クエリを開く) または EXCSQLSTT (SQL ステートメントの実行) が CALL ステートメントに変換されます。

次に、DRDA サービスでは、限定された動的 SQL 操作がサポートされ、DB2 クライアント プログラムがリモート SQL Server T-SQL コマンドを実行できるようにします。 たとえば、DB2 管理者は、z/OS の QMF (クエリ管理機能) を利用して、テーブルに対してリモート SQL Server をクエリできます。

SQL 構文

DRDA サービスには、DB2 ANSI から SQL Server への限定された T-SQL コマンド構文トランスフォーマーがあり、パッケージのバインド、静的および動的 SQL ステートメントの実行に使用されます。 必要に応じて、DRDA サービスでは SQL Server CLR ベースの関数の形式で互換性のある DB2 関数が提供されます。

DRDA サービスでは、DRDA BNDSQLSTT (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-to-UNICODE NLS (National Language Support) 変換ファイルがサポートされます。 また、DRDA サービスでは、CCSID (コード化文字セット識別コード) の 16 進値のペアを使用して、定義済みのマップに基づいたインライン文字を置換します。

日付時刻の書式設定

DRDA サービスでは、インラインの DB2 DATE/TIME/TIMESTAMP を SQL Server date/time/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 サービス サービス資格情報

セキュリティ ポリシー権限

接続マネージャー

Security Manager

SQL アクセス マネージャー

データベース マネージャー (Database Manager)
Windows レジストリ

MsDrdaService.exe.config

MSDRDAErrorMappings.xml
データ変換 データ型のマップ

日付、時刻、日時の形式
DB2ToMSSql.xml MSSQLToDB2.xml

MsDrdaService.exe.config
コード ページ変換 カスタム コード ページ

コード ポイント マッピング
Windows レジストリ

MsDrdaService.exe.config
リスナーのバインド 既定のリスナー

カスタム リスナー
MsDrdaService.exe.config
トレース リスナー テキスト リスナー

コンソール リスナー

ETW リスナー

カスタム リスナー
MsDrdaService.exe.config
イベント ログ events アプリケーション ログ
パフォーマンス モニター Counters 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 サービスでは、SQL Server エラーは、DRDA コード ポイント応答メッセージ (RM) または DRDA SQLCARD (SQL 通信領域応答データ) のいずれかの形式で返されます。 デフォルトでは、一般的な問題について、DRDA サービスでは組み込みテーブルを使用して、SQL エラー コードとエラー文字列を DRDA 応答メッセージやエラーにマップします。 また、DRDA サービスでは、外部の MsDrdaErrorMappings.xml ファイルを使用して、SQL Server のエラー コードとエラー テキストから SQLCODE、SQLSTATE、理由コード、およびエラー メッセージにマップします。