DB2 for AS/400 as DRDA Application Requester / Server using SNA

DB2 for AS/400 as an DRDA Site

DB2 for OS/390をDRDAサイトとして設定するためには、次のような手順が必要となる:

Controller Descriptionの設定

Controller Descriptionの設定は、CRTCTLAPPCコマンドを用いて行う。相手方システムがLANに接続されている場合には、設定項目は以下のようになる:

CTLD (Controller Description)
任意だが、相手システムの名前を使うことが推奨される
LINKTYPE (Link Type)
*LAN
RMTCPNAME (Remote controll point)
相手システムの名前
ADPTADR (LAN remode adaper address)
相手システムのアドレス
SWTLINLST (Switched line list)
トークンリング回線記述

Device Descriptionの設定

Device Descriptionの設定は、CRTDEVAPPCコマンドを用いて行う。設定項目は以下のようになる:

DEVD (Device Description)
任意だが、相手システムのLU名を使うことが推奨される
RMTLOCNAME (Remote location)
相手システムのLU名。相手システムがDB2 UDBであれば、相手のCP名を使用する。VTAM接続であれば、Independent LU名を使用する。
RMTNETID (Remote Network Identifier)
相手システムがAS/400以外のnetwork IDを持っている場合には指定する。
CTL (Attached Controller)
CRTCTLAPPCで設定した定義名
LCLLOCNAME (Local location name)
相手システムがVTAMの場合、CTLと共に別の定義を指定する必要がある。

このようにして作成した定義は、WRKCFGSTSコマンドによってconntorollerに反映させる。

IBMRDBモードの設定

IBMRDBモードの設定は、CHGMODD IBMRDBコマンドを用いて行う。設定項目は以下のようになる:

COS (class-of-service)
セッションのプライオリティなど示す。IBMRDBでは#CONNECTを指定するのが通常
MAXSSN (Maximum session)
このモードを用いて同時に活動状態にできるセッションの数。DRDAでは、1つのコネクションが1つのセッションを使用する。
MAXCNV (Maximum conversation)
このモードを用いて同時に活動状態にできるCONVERSATIONの数。DRDAでは、1つのコネクションが1つのCONVERSATIONを使用する。

DB2 for AS/400 as DRDA Application Requester

DB2 for AS/400をARサイトとして設定するためには、次のような手順が必要となる:

APPNリストエントリの作成

APPNリストエントリの作成は、ASがLAN直結で無い場合に必要であり、ADDCFGLEコマンドを用いて行う。設定項目は以下のようになる:

Configuration List Type
*APPNRMTを指定する
Remote Location
ASのLUを指定する
Remote network identifier
ASのnetwork idを指定する
Remote control point
AS接続のルータとなるCPを指定する
Control point net ID
AS接続のルータとなるnetwork idを指定する

RDBディレクトリエントリの作成

RDBディレクトリエントリの作成は、ADDRDBDIREコマンドを用いて行う。設定項目は以下のようになる:

RDB (Relational database)
接続先データベースの名前
RMTLOCNAME (Remote location)
ASのLU名
DEV (Device)
RMTLOCNAMEと同じ
RMTNETID (Remote network identifier)
ASがAS/400とは違ったnetwork idを持っている場合に指定
TYPE (Type)
*SNAを指定
MODE (Mode)
IBMRDBを指定
TNSPGM (Transaction program)
デフォルトのX'07'6DBを指定する場合には*DRDAを、DB2DRDAを使用するならそれをそのまま指定

ここで設定したディレクトリエントリは、STRSQL環境で以下のコマンドを打ち込むことで確認できる。

RELEASE ALL
COMMIT
CONNECT TO database USER username USING 'password'

サーバ認証エントリの作成

サーバ認証エントリの作成は、AR上のユーザをAS上のユーザにマップすることを目的とし、ADDSVRAUTEコマンドを用いて行う。設定項目は以下のようになる:

USRPRF (User profile)
AR上でのユーザID。*CURRENTは現行のユーザを意味する。現行ユーザ以外を指定するためには、*SECADM特権か、*OBJMGT/*USE権限が必要である。
SERVER (Server)
接続先ASの名称。RDBディレクトリのRDBで指定した値。
USRID (User ID)
接続先ASでのユーザID。*USRPRFを指定すると、AR上のものと同じ値が渡る
PASSWORD (Password)
接続先ASでのパスワード。

USER/USINGを指定せずにCONNECTを発行した場合、現行ユーザと接続先データベースでサーバ認証エントリが走査され、マッチしたユーザID/パスワードがASに渡る。マッチしたレコードが無い場合には、現行ユーザのIDのみがASに渡され、パスワードは渡されない。

DB2 for AS/400 as DRDA Application Server

DB2 for OS/390をASサイトとして設定するためには、次のような手順が必要となる:

*LOCAL RDB エントリの作成

ARからの接続を受け付けるためには、RDBディレクトリエントリにローカルのRDBが登録されていなければならない。このためには、ADDRDBDIREコマンドが使用される。設定項目は以下の通り。

RDB (Relational database)
接続元データベースに公開する名前
RMTLOCNAME (Remote location)
*LOCALを指定する

スキーマNULLIDの作成

DB2 UDBやDB2 Connectのユーティリティは、スキーマNULLIDの中に作成される。このスキーマはAS/400ではデフォルトで存在しないため、明示的に作成しなければならない。このためには、SQL文 CREATE COLLECTION nullidを実行するか、CRTLIB LIB(NULLID)を実行する必要がある。このユーティリティをユーザが使用できるようにするためには、CRTAUTLコマンドですべてのDB2 CONNECTユーザを含む認証グループを作成し、そのグループをCRTLIBコマンドのAUTパラメータで指定する。

CCSIDsの設定

AS/400のCCSID(Coded Character Set Identifier)はデフォルトで65335であり、これはDB2 Connect側では対応していない。このため、この状態で接続しようとするとSQLエラー-332が返される。よって、接続に利用するUSRPRFについて、CHGUSRPRFコマンドでCCSDIDを037(英語)や850(国際化)に設定しておく必要がある。