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を設定する(PUに対応)
- 相手方システムのDevice Descriptionを設定する(LUに対応)
- IBMRDBモードを設定する
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サイトとして設定するためには、次のような手順が必要となる:
- 相手方システムのController Descriptionを設定する(既述)
- 相手方システムのDevice Descriptionを設定する(既述)
- APPNリストエントリを作成する
- IBMRDBモードを設定する(既述)
- RDBディレクトリエントリを作成する
- サーバ認証エントリを作成する
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サイトとして設定するためには、次のような手順が必要となる:
- 相手方システムのController Descriptionを設定する(既述)
- 相手方システムのDevice Descriptionを設定する(既述)
- IBMRDBモードを設定する(既述)
- *LOCAL RDB エントリを作成する
- スキーマNULLIDを作成する
- CCSIDsを編集する
*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(国際化)に設定しておく必要がある。