DRDA は、分散データベース管理システム機能のタイプを定義します。 DB2 (MVS/ESA 版) V2R3 はリモート作業単位をサポートしています。リモート作業単位を使用すると、あるシステムで実行されているアプリケーション・プログラムは、 1 つのリモート DBMS のデータにアクセスできます。そのときにはそのリモート DBMS が提供する SQL を使用します。 DB2 (MVS/ESA 版) V3R1 は分散作業単位をサポートしています。分散作業単位を使用すると、あるシステムで実行されているアプリケーション・プログラムは、複数のリモート DBMS のデータにアクセスできます。そのときには各リモート DBMS が提供する SQL を使用します。 DRDA で定義される分散のタイプの詳細については、分散関係データベース体系 接続の手引き を参照してください。
図 2 に示されているとおり、 DB2 (MVS/ESA 版) は 2 種類のアクセス方式を使用して、 3 種類の分散データベース接続構成をサポートしています。
[1] システム主導アクセス では、 DB2 (MVS/ESA 版) リクエスターを 1 つ以上の DB2 (MVS/ESA 版) サーバーに接続できます。 DB2 (MVS/ESA 版) リクエスターとサーバーとの間に確立される接続は、 DRDA で定義されたプロトコルに適合しないため、非 DB2 (MVS/ESA 版) 製品を DB2 (MVS/ESA 版) に接続するのには使用できません。このタイプの接続は、 3 つの部分からなる名前または別名をアプリケーションにコーディングすることによって確立されます。
[2] アプリケーション主導アクセス では、 DB2 (MVS/ESA 版) リクエスターまたは非 DB2 (MVS/ESA 版) リクエスター (DB2 コネクトなど) を、 1 つ以上の DB2 (MVS/ESA 版) アプリケーション・サーバーまたは非 DB2 (MVS/ESA 版) アプリケーション・サーバー、たとえば DB2 ユニバーサル・データベースや DB2 ユニバーサル・データベース (AS/400 版) などに接続できます。アプリケーション・リクエスターに一度に接続できるアプリケーション・サーバーの数は、アプリケーション・リクエスターの DB2 (MVS/ESA 版) のレベルに応じて異なります。アプリケーション・リクエスターが DB2 (MVS/ESA 版) V2R3 であれば、一度に 1 つだけアプリケーション・サーバーを接続できます。このタイプの接続は、 SQL CONNECT ステートメントをアプリケーションにコーディングすることによって確立されます。アプリケーション・リクエスターが DB2 (MVS/ESA 版) V3R1 であれば、一度に 1 つ以上のアプリケーション・サーバーを接続できます。
[3] アプリケーション主導およびシステム主導アクセスを一緒に使用して接続を確立できます。
構成の中に含まれるすべてのシステムが 2 フェーズ・コミットをサポートしている場合、分散作業単位 (複数サイト読み取りと複数サイト更新) がサポートされます。すべてのシステムが 2 フェーズ・コミットをサポートしているわけではない場合、作業単位内での更新は、2 フェーズ・コミットをサポートしない単一のサイト、または 2 フェーズ・コミットをサポートするサイトのサブセットのいずれかに制限されます。
![]() |
表 1 は、DB2 (MVS/ESA 版) 分散データベースの接続タイプを比較したものです。
表 1. DB2 (MVS/ESA 版) 分散データベースの接続の比較
[1] システム主導アクセス | [2] アプリケーション主導アクセス (すべてのシステムが 2 フェーズ・コミットをサポートする場合) | [3] アプリケーション主導およびシステム主導アクセス |
---|---|---|
すべてのパートナーが DB2 (MVS/ESA 版) システムでなければならない。 | 任意の 2 つの DRDA システムを相互接続できる。 | アプリケーション・リクエスターは任意の DRDA システムでかまわないが、サーバーは DB2 (MVS/ESA 版) システムでなければならない。 |
複数のパートナーに直接接続できる。 | 複数のパートナーに直接接続できる。 | アプリケーション・リクエスターは直接アプリケーション・サーバーに接続できる。アプリケーション・サーバーは複数の DB2 (MVS/ESA 版) 2 次サーバーに接続できる。 |
各 SQL アプリケーションは、各サーバーと複数の APPC 会話を行うことができる。 | 各 SQL アプリケーションは、各サーバーと 1 つの APPC 会話を行うことができる。 | SQL アプリケーションは、各サーバーと 1 つの APPC 会話を行うことができる。 DB2 (MVS/ESA 版) アプリケーションは、アプリケーションの各サーバーと複数の APPC 会話を確立できる。 |
1 コミットの範囲内でローカル資源とリモート資源の両方にアクセスできる。 | 1 コミットの範囲内でローカル資源とリモート資源の両方にアクセスできる。 | アプリケーション・リクエスターとアプリケーション・サーバーはローカル・データとリモート・データにアクセスできる。 |
大規模な照会、および複数の照会を同時に行う場合に効果的。 | 1 コミットの範囲内で実行回数がわずかな SQL ステートメントの場合に効果的。 | アプリケーション・リクエスターとアプリケーション・サーバー間の接続は [2] と同様に動作し、 2 次サーバー接続は [1] と同様に動作する。 |
静的または動的 SQL をサポートできるが、コミットの範囲内で最初に静的 SQL を実行するとき、サーバーは静的 SQL を動的にバインドする。 | 静的または動的 SQL を発行できる。 | アプリケーション・リクエスターとアプリケーション・サーバーは静的または動的 SQL を発行できる。 2 次サーバーは静的または動的 SQL をサポートしているが、コミットの範囲内で最初に静的 SQL を実行するとき、静的 SQL を動的にバインドする。 |
SQL INSERT、DELETE、 UPDATE ステートメント、および SELECT をサポートするステートメントに制限されている。 | システムがサポートしているステートメントであれば、どれでも使用できる。 | アプリケーション・サーバーはすべての SQL をサポートしている。 2 次サーバーは DML SQL だけをサポートしている (CREATE または ALTER など)。 |