DB2 UDB as DRDA Application Requester / Server using SNA

SNAとは

SNA LU 6.2とは、APPCが使用する階層型プロトコルである。定義される階層は以下のようなものになる:

階層サービス名接続名
アプリケーション層Transaction Programs(TP)Conversation
論理層Logical Units(LU)Session
物理層Data Link Controll(DLC)connection / link

ここで、論理層の接続であるSessionは、属性としてモードとセキュリティ種別を持つ。つまり、アプリケーションであるTPが他のTPと接続を行うためには、以下のような設定が事前になされている必要がある。

これらの情報をまとめて設定するインタフェースとして、CPI-Cがある。これは、「相手サイトのLU/TPNAME、セッションのMODENAME/SECURITY」をSNA接続製品に格納し、プロファイル名の指定で利用できるようにするものである。

なお、LU 6.2には、independent LU と dependent LU の2つのタイプが存在する。dependent LU とは、VTAM上で一つのLUにつき一つのSessionしか利用できないものである。

DB2 UDB as an Application Requester

DB2 ConnectをARとして設定するためには、次のような手順が必要となる:

SNAのセットアップ

SNAのセットアップは、接続製品によって異なるが、以下のような点について行われる。

Node Profile
FQCP(Network IDとCP NAME)とCP alias、Local Node IDを設定する。CP aliasは、指定しなければCP NAMEが使用され、またLocal Node IDは、VTAMを使用しない場合にはブランクにしておく。
Token-ring DLC
トークンリングアダプタの物理アドレスを設定する。通常は検出値のままで良い。
Link to Application Server
Application Serverのアダプタ物理アドレス(Destination Address)と、SSCP名(Adjacent CP Name)を設定する
Local LU
VTAMを用いるネットワークなら明示的なLocal LU名を、そうでないならCP Nameを、それぞれ設定する。
Partner LU Location
VTAMを用いるネットワークについて、Adjacent CP NameとPartner LU Nameを指定する。
Modename
Sessionのmodenameとしては、"IBMRDM"を使用する。また、最大接続数も、ここで指定することになる。
CPI-C Side Information
ここまでのプロセスで設定してきた「Partner LU Name / Modename / TP Name」の組み合わせに名前をつける。Securityについては、DB2 Connect側の設定によって上書きされるので無視して良い。

ノードの登録

ノードの登録は、通常のクライアント構成と同じく、CATALOG APPC NODEコマンドにて行う。その構文は以下の通り:

CATALOG APPC NODE nodename 
  REMOTE symbolic-dest-name
  [SECUTRITY (PROGRAM|NONE|SAME)] 
  [OSTYPE (OS400|MVS|VM|VSE)]
  [WITH "comment-string"
nodename
DB2 ConnectからASを指し示すための任意の名前
symbolic-dest-name
CPI-Cで定義したリンク名
SECUTRITY (PROGRAM|NONE|SAME)
NONEだと、ID/PASSWORDは接続先に送られない。PROGRAMだと、ID/PASSWORDが両方とも送られる。SAMEだと、IDのみが送られる。SNAが"already-verified APPC sessions"を許すように構成されていることが必要。

また、DB2 Connect for OS/2では、互換性のために「CATALOG APPCLU NODE」「CATALOG APPN NODE」というコマンドが残されている。

データベースの登録

データベースの登録は、通常のクライアント構成と同じく、CATALOG DBコマンドにて行う。その構文は以下の通り:

CATALOG DB database-name 
  [AS alias] 
    AT NODE node-name
  [AUTHENTICATION 
    (DCS|CLIENT|SERVER)]
  [WITH "comment-string"
database-name
登録するデータベース名。これは任意の名前を指定し、DRDA上の実際の名前はDCSで指定する。
alias
クライアントからの接続に使用する別名
node-name
CATALOG APPC NODEコマンドで指定したノード名
AUTHENTICATION (DCS|CLIENT|SERVER)
認証方式の指定

DCSの登録

DCSへの登録は、該当するデータベースが通常のDB2 UDBではなくDRDA ASであることをクライアントに認証させるために行う。その書式は以下の通り:

CATALOG DCS DB database-name 
  [AS target-database-name]
  [PARMS "parameter string"
  [WITH "comment-string"
database-name
CATALOG DBコマンドで使用したデータベース名
target-database-name
DRDA AS上のデータベース名。指定する項目は、

ODBCの登録

Windowsの場合、ODBCに登録することで、この接続をODBCデータソースとして利用することができる。その書式は以下の通り:

CATALOG (USER|SYSTEM) 
  ODBC DATA SOURCE 
  [AS data-source-name]
(USER|SYSTEM)
ODBCデータソースの種類
data-source-name
CATALOG DBコマンドで使用したデータベース名

このようにカタログに登録した情報は、LIST (NODE|DATABASE|DCS) DIRECTORYコマンドで参照することができる。

DB2 UDB as an Application Server

DB2 UDBをASとして設定する機能は、DB2 UDBに含まれている。DB2 Connectは必要無い。設定のためには、次のような手順が必要となる:

SNAのセットアップと動作確認

前節で述べたのと同じようなものである、が、SNAサーバソフトの設定に応じてTransaction Program Profileの設定が必要になる(MS SNA Serverでは手動設定は不要)。

インスタンス変数の設定

該当サーバ上でAPPCコミュニケーションを可能にするためには、DB2COMMプロファイル変数を以下のように設定する。

db2set [ -i ] 
  DB2COMM=other-protocols,APPC

これと同等の設定は、セットアップ時のウィザード内、またコマンドセンターのGUIメニューから行うこともできる。

また、DB2SERVICETPINSTANCE変数を設定しておくことで、TPNAME設定にかかわらず、古いクライアントのTP名を使用する事ができる。

DBM構成パラメータの変更

さらに、DB2のトランザクション・プログラム名は、以下の構文にて登録する必要がある。

UPDATE DB CFG 
  USING TPNAME tpname
tpname
トランザクション・プログラム名。UDBとOS/390のデフォルトは"DB2DRDA"であり、AS/400・VM/VSEのデフォルトは"X'07'6DB"である。また、後者は、DB2 for OS/2 Ver.1のデフォルトでもある。

なお、OS/390やAS/400がARとなる場合、AR内で登録されたエントリがそのまま接続先データベース名として使用される。つまり、別のサーバ上に同一名のデータベースが存在した場合に、そのままでは接続ができなくなる。これを避けるには、ARの側でエイリアスを適切に設定する必要がある。