DB2 Connect概観

DRDAとは

DRDA(Distributed Relational Database Architecture)とは、IBMの分散データベース技術である。これは、APPCとTCP/IPの上でサポートされ、DRDA Application Requester(AR)と呼ばれる接続元と、DRDA Application Server(AS)と呼ばれる接続先との間でデータリンクを行うためのものである。つまり、OS/390やAS/400上のデータベースと相互接続する、あるいはOS/390やAS/400上のアプリケーションがDB2 UDBのデータを読み書きする、といったことが行える。DB2 UDBは、自らがAPPCやTCP/IP上でASになれるが、Windows/Unix環境からASに接続するためにはDB2 Connectが必要になる。

DB2 Connect

DB2 Connectには、ローカル接続しか許さないPersonal Edition(OS/2,Windowsのみ)と、ゲートウェイとして動作するEnterprise Editionが存在する。

接続先となるデータベースとプロトコルには以下のようなものがある:

サーバAPPCTCP/IP
DB2 UDB for OS/390Ver.6.1以降同左
DB2 for OS/390Ver.5.1以降同左
DB2 for OS/400Ver.2.1.1以降Ver.4.2以降
DB2 for MVS/ESAVer.3.1以降未サポート
DB2 for VSE & VMVer.5未サポート
SQL/DSVer.3.5未サポート
DB2 Common ServerVer.2?
DB2 Universal DatabaseVer.5以降Ver.5以降
注:DB2 Common ServerとDB2 Universal Databaseはオープン系(Unix/OS2/NT)で、DB2 UDB for OS/390・DB2 for OS/390・DB2 for MVS/ESAはS/390上で、それぞれ同一の製品ラインにあるものだが、バージョンアップによって名称が変わったもの。

DRDAでのトランザクション

DRDAで定義されるトランザクションには、以下の4種類がある。

Remote Request (RR)
一つのSQL文が一つのトランザクションになる、もっとも基本的なパターン。
Remote Unit of Work (RUW)
同一のデータベースに対する複数のSQL文が一つのトランザクションになる。どのDRDAでもサポートされる(DRDA-1)。
Distributed Unit of Work (DUW)
複数のデータベースに対する複数のSQL文が一つのトランザクションになる。ただし、一つのSQL文の中には一つのデータベースのオブジェクトのみが含まれる。2層コミットが必要。基本的にはAPPCを使用したDRDAのみでサポートされるが、DB2 for OS/390 Ver.5.1以降のみ、TCP/IPでもサポート可能である(DRDA-2)。
Distributed Request (DR)
一つのSQL文の中に複数のデータベースのオブジェクトが含まれる。現状でサポートする製品は無い。

DRDAでの2層コミット

APPCでDRDA接続を行う際に、2層コミットをサポートする接続を"protected conversation"といい、サポートしない接続を"unprotected conversation"という。LU6.2のみがprotected conversationをサポートする。

2層コミットを行うためには、Sync Point Manager(SPM)が必要になる。SPMは、各データベース上に存在するTransaction Manager(TM)と共同して動作し、トランザクションの原子性を保証する。

SPMは、AR・TM・DRDA-2 ASについては調整者として働き、DB2 UDB ASについては参加者として働く。