|
はじめに
2回にわたりDB2コネクトの概要を説明してきましたが、最終回はDB2コネクトの利用形態と実際にホストDB2に接続するための定義方法をご紹介します。
DB2コネクトの利用形態
例1は、WindowsのVisualBasicアプリケーションからホストDB2にアクセスする例です。DB2 for OS/390はODBCインターフェースをサポートしていますが、同一オペレーティング・システム上にないリモート・アプリケーションからのアクセスとなりますので、DB2コネクトを利用します。VisualBasicはDB2コネクトが提供するODBCドライバーを使用してホストDB2にアクセスします。
例2は、Webサーバーからバックエンドにあるホスト・データベースをアクセスする例です。例1と同様に、DB2 for OS/390はJDBCインターフェースをサポートしていますが、リモート・アプリケーションからのアクセスになりますので、DB2コネクトを利用します。WebアプリケーションはDB2コネクトが提供するJDBCドライバーを使用してホストDB2にアクセスします。

図7.DB2コネクトの利用形態1
例3は、DB2 for OS/400を利用したデータ・プロパゲーションの例です。これまで、ホストDB2へ接続するためにはDRDAを利用すると説明しましたが、DB2
for OS/400は独自の接続形態もサポートしています。クライアント・アクセス/400はODBCドライバーを、Toolbox for JavaはJDBCドライバーを提供しているので、これらを利用して非DRDA接続が可能です。しかしながら、DpropRを使用してデータ・プロパゲーションを行う場合はサーバーとリクエスター間はDRDA接続にする必要があります。(DpropRはデータプロパゲーションを行うための機能あるいは製品です)
例4は、DB2コネクト用のサーバーを立てるのではなく、ホストでDB2コネクトを稼働させる例です。ホストのLinux区画にDB2コネクトを稼働させることにより、DB2コネクト用の中間サーバーは不要となります。
図8.DB2コネクトの利用形態2
DRDAの設定方法
最後にDB2コネクトを使って実際にホストDB2に接続するための定義例をご紹介します。
表2.DB2コネクトに必要な情報
| |
項目 |
OS/390の設定 |
定義された値を調べる方法 |
| 1. |
HOSTNAME+DOMAINORIGIN |
mp3kb.hako.ibm.com |
OS/390 : DB2立上げ時のログ |
| 2. |
IPアドレス |
192.168.23.2 |
OS/390 : TCPIPのプロファイル |
| 3. |
DB2ロケーション名 |
MP3KBDBX |
OS/390 : DB2立上げ時のログ |
| 4. |
ポート番号 |
6000 |
OS/390 : DB2立上げ時のログ |
| 5. |
サービス名 |
DSNXDIST |
OS/390 : TCPIPのプロファイル |
| 6. |
ユーザーID/パスワード |
XXXXXX/YYYYYY |
| OS/390 : |
RACFに登録されているユーザーID/パスワード SYSやIBMで始まるユーザーIDは無効となるので注意。 |
|
| 7. |
接続タイプ |
TCPIP |
|

図9.定義例の環境
図10.作業対象
ホストDB2の設定
始めに、ホストDB2がDRDAのアプリケーション・サーバー、リクエスターになるために必要となる作業を簡単にみておきます。ホストDB2はDB2 for OS/390、DB2コネクトとの通信プロトコルがTCP/IPの例です。
TCP/IP関連定義
- DB2は1サブシステム(接続する単位)あたりサーバー用と再同期化用として2つのポート番号を使用します。データ共用環境の場合は、サーバー用ポート番号のみ全メンバーで一致させます。また、システムのローカル・ホスト名は、分散データ機能を提供するアドレス・スペース(以下DDFリージョン)がスタートするときに参照するので必ず定義しておきます。
VTAM関連定義
- TCP/IPのプロトコルを利用したDRDA接続の時でも、NETIDとLU名を作業単位(UOW)の識別に使用するので、VTAMの定義は必須となります。BSDS(ブートストラップ・データセット)に定義したLU名を登録します。
BSDS定義
- DB2は、ログや再始動情報を格納するBSDSの中に、ネットワーク上のDB2サブシステムの識別名であるロケーション名やLU名、使用するTCP/IPのポート番号を定義します。登録にはバッチ・ユーティリティーを使用します。
セキュリティー関連定義
- DDFリージョンはUNIXシステム・サービス環境でスーパー・ユーザーとして稼働するので、UID(0)の権限を与える必要があります。また、クライアントから接続を行うユーザーIDの登録も行います。
DSNZPARMの作成
- DB2のパラメータ・モジュール内に分散データ機能の制御に関する定義を行います。
CDB(Communication Database)の設定
- ホストDB2がアプリケーション・リクエスターになる場合にサーバーの定義を格納するデータベースです。
プロシージャーの作成
- DDFリージョン用の立上げプロシージャーを用意します。
これらの作業によって設定された値をDB2コネクトに定義することにより、DB2コネクトとホストDB2間のコミュニケーションが可能となります。
ホストDB2がDB2 for OS/400の場合は、DDMの起動とRDB名の登録作業を行います。
DB2コネクトの設定

図11.DB2コネクトにおけるコマンド実行例
次にDB2コネクトに対する設定です。DB2のランタイム・クライアントとDB2サーバー間は、DRDAではなくプライベート・プロトコルを使用します。その際は2つのディレクトリーに対して接続定義を行います。DRDA接続の場合は、前述の2つのディレクトリーに加え、データベース接続サービス・(DCS)ディレクトリーに定義を行います。DB2コネクトに対して、コマンド、またはGUIツールであるクライアント構成アシスタントから設定が可能です。ここでは、コマンドによる定義例をご紹介します。表2は、DB2コネクトの設定を行うにあたり必要となるホストDB2の情報となります。1,2と4,5については、どちらか一方を指定します。
NODE DIRECTORY
- catalog tcpip node NODENAME remote HOSTNAME server PORTNO
DATABASE DIRECTORY
- catalog db DBNAME as ALIAS at node NODENAME authentication dcs
DCS DATABASE DIRECTORY
- catalog dcs db DBNAME as LOCATION
指定するパラメータ(カッコ内の数字は表2の番号を表しています。)
| NODENAME : |
接続先システムを指定するために任意の名前をつけます。ノード・ディレクトリー内ではユニークな名前にする必要があります。 |
| HOSTNAME : |
S/390のホスト名(1の一部)、またはIPアドレス(2)を指定します。ホストシステムがDB2コネクトと同 じドメインにない場合は、完全修飾されたドメイン名(1)を指定します。 |
| PORTNO : |
接続先DB2が使用するポート番号(4)、またはサービス名(5)を指定します。DB2 for OS/400の場合は通常446番を使用します。 |
| DBNAME : |
接続先DB2を表す任意の名前を指定します。ALIASを定義しない場合には、これがクライアントからCONNECTするときの名前となります。 |
| ALIAS : |
DBに別名をつけることもできます。指定がない場合はDBNAMEで定義した名前が使用されます。クライアントからCONNECTするときのデータベース名となります。 |
| LOCATION : |
接続先ホストDB2のBSDSに登録したロケーション名(3)を指定します。DB2 for OS/400の場合は、RDB名を指定します。 |
LISTコマンドを使用して定義内容の確認ができます(図12)。定義を削除する場合は、UNCATALOGコマンドを使用します。
続いて、ホストDB2用のパッケージのバインド処理を行います。コマンド行プロセッサーから以下のコマンドを実行します。ホストDB2のBIND権限を持つユーザーIDで実行してください。リスト・ファイルであることを示すためにファイル名の先頭に@をつけます。
- bind C:\sqllib\bnd\@ddcsmvs.lst blocking all sqlerror continue grant public
これで、DB2コネクトとホストDB2間の接続作業は終了です。DB2コネクト・サーバーのコマンド行プロセッサーから、接続コマンドを実行すると図12のような結果が返ってきます。
クライアントの設定
表3.クライアントに必要な情報
| |
項目 |
サブシステムDSNX |
定義された値を調べる方法 |
| 1. |
ホスト名 |
ssc1udbs1 |
| WindowsNT : |
コマンド・プロンプトからhostnameコマンドを入力 |
|
| 2. |
IPアドレス |
192.168.50.30 |
| WindowsNT : |
コマンド・プロンプトからipconfigコマンドを入力 |
|
| 3. |
ポート番号 |
50000 |
| WindowsNT : |
servicesファイルを参照 |
|
| 4. |
サービス名 |
db2cdb2inst1 |
| WindowsNT : |
get dbm cfg CLPコマンドのsvcename= |
|
| 5. |
データベース名 |
dbv7dsnx |
| WindowsNT : |
List db directoryコマンドのデータベース別名欄 |
|
| 6. |
ユーザーID/パスワード |
XXXXXX/YYYYYY |
| OS/390 : |
RACFに登録されているユーザーID/パスワード |
|

図12.ランタイム・クライアントとDB2コネクトにおけるコマンド実行例
最後に、DB2コネクトとクライアント間の定義についてご紹介します。表3がクライアント側の設定に必要な情報です。ホストDB2ではなく、DB2コネクトの情報が必要です。表3からもユーザーがホストDB2のロケーション・構成等を意識せずに利用することができることがわかります。
コマンド行プロセッサーから2つのディレクトリーに対して定義を行います。
NODE DIRECTORY
- catalog tcpip node NODENAME remote HOSTNAME server PORTNO
DATABASE DIRECTORY
- catalog db DBNAME as ALIAS at node NODENAME
指定するパラメータ(カッコ内の数字は表3の番号を表します)
| NODENAME : |
接続先システムを指定するために任意の名前をつけます。ノード・ディレクトリー内ではユニークな名前にする必要があります。 |
| HOSTNAME : |
WindowsNTのホスト名(1)、またはIPアドレス(2)を指定します。 |
| PORTNO : |
接続先DB2コネクトが使用するポート番号(3)、またはサービス名(4)を指定します。 |
| DBNAME : |
接続先DB2 for OS/390を識別する名前です。DB2コネクトで指定したデータベース別名を指定します。ALIASがない場合はアプリケーションがCONNECTするときの名前となります。 |
| ALIAS : |
DBNAMEに対して別名の指定が可能です。指定がない場合はDBNAMEがCONNECTするときの名前となります。 |
クライアントのコマンド行プロセッサーからホストDB2に接続してみます。(図12)
以上でクライアントとホストDB2間の接続定義は完了です。簡単な設定により、DRDAを使用したホストDB2アクセス環境が実現できることがおわかりいただけましたか?是非実際に試していただきたいと思います。
ホストDB2との接続テストが難しい場合は、WindowsやOS2、UNIX系DB2に対して接続してみることもできます。WindowsやOS2、UNIX系DB2もDRDAのアプリケーション・サーバー機能を持っています。DB2コネクトのノード・ディレクトリー、データベース・ディレクトリーに加えてDCSディレクトリーに設定することによりDRDA接続環境を実現できます。
この場合、LOCATIONには接続するデータベース名を指定します。

図13.定義関連図
おわりに
3回に渡たり、DB2コネクトについてご紹介いたしました。クライアント・アプリケーションからホスト上のDB2にアクセスするために、DB2コネクトがなぜ必要か?という問いの答えをみつけることができたでしょうか?最後にクイズを載せますので、挑戦してみてください。
次のうち、正しいものには○、間違ったものには×をつけてください。
- DB2コネクトはDRDA環境におけるアプリケーション・リクエスターの機能を提供する
- Windows上のクライアント・アプリケーションからDB2 for OS/390のデータベースにアクセスするためには、 クライアント側にランタイム・クライアントのみを導入すればよい
- DB2 for OS/390はODBCをサポートしているので、Windows上のODBCアプリケーションからDB2 for OS/390のデータ ベースにアクセスするときにDB2コネクトは不要だ
答え:1. ○ 2. × 3. ×
解説:2について:
ランタイム・クライアントはDRDAプロトコルではなく、プライベート・プロトコルのみをサポートしています。DB2 for OS/390は同一オペレーティング・システム以外のリモート・システムからの要求はDRDAを通して受け付けます。ですからアプリケーション側にDRDAのアプリケーション・リクエスターとなる機能が必要となります。クイズの1にもありますように、DB2コネクトはアプリケーション・リクエスターの機能を提供しますので、DB2コネクトを利用することにより、DB2
for OS/390のデータベースにアクセスすることができます。
解説:3について
DB2 for OS/390は、同一オペレーティング・システム内におけるODBCインターフェースをサポートしていますが、リモート・システムからの要求はDRDAを通して受け付けます。Windows上のアプリケーションはDB2コネクトのODBCドライバーを使用してDRDAを通してDB2
for OS/390にアクセスしますので、DB2コネクトは必要です。
|