DB2 for OS/390 as DRDA Application Requester / Server using SNA
DB2 for OS/390 as an Application Requester
DB2の分散データベースサポートには、次の2種類がある:
- System-directed access
- DB2 for OS/390同士が通信する場合には、DRDAをバイパスして接続が確立される。
- Application-directed access
- DRDAを用いて、DB2 for OS/390が他のサーバと接続する。ARがDB2 for MVS/ESA V2R3の場合には、同時に一台のASにしか接続できないが、それ以降のバージョンでは同時に複数のASに接続することができる。
DB2 for OS/390をARとして設定するためには、次のような手順が必要となる:
- VTAM Resourceを編集する
- BSDS(Bootstrap Data Set)を編集する
- CDB(Communications Database)に項目を追加する
- DDF(Distributed Data Facility)を再起動する
- パッケージをASにバインドする
VTAM Resourceの編集
VTAM APPL で設定できる項目には、以下のようなものがある。
- 相手先LU名
- NETIDの部分は指定せず、LUNAMEの部分のみ指定する。APPL名と同じになる。
- AUTOSES
- コネクション確立時などに立ちあがるセッション数。ゼロ以外を指定する。DMILWNLまではリクエストに応じてセッションは追加されていく。
- DSESLIM
- 立ちあがるセッション数(contention winner/loser 共に)の最大値。この設定は、SYSIBM.LUMODESの値で上書きされる。
- EAS
- 全コネクションを通したセッションの合計予想値
- MODETAB
- DB2 for OS/390のMODENAME(つまりIBMRDB)が格納されている VTAM MODE テーブル名
- PRTCT
- DB2 for OS/390がVTAMを使用するためのパスワード。
- SECACPT(=ALREADYV)
- SNAが使用するセキュリティレベルを設定する。ALREADYVを指定すると、次のSECURITYキーワードでセキュリティレベルを選択できるようになる
- SECURITY=(PGM|SAME|NONE)
- PGMはID/PASSWORDが、SAMEはIDのみが、NONEは何もアカウント情報が送られてこないことを意味する。DB2 for OS/390はNONEの接続要求を許可しない。推奨値はPGM。
- VERIFY=(NONE|OPTIONAL|REQUIED)
- SNAセッションのセキュリティを設定する。
- SYNCLVL=SYNCPT
- DB2 for OS/390が2層コミットを行えるようにする。
- ATNLOSS=ALL
- DB2 for OS/390に対し、VTAMセッションの終了を通知し、適切な同期処理が行えるようにする。
CDBに項目を追加
ここまでに登録した情報をDB2から使用できるようにするため、CDBに項目を追加する。
INSERT INTO SYSIBM.LOCATIONS(LOCATION, LINKNAME, TPN)
VALUES(location,linkname,tpn);
INSERT INTO SYSIBM.LUNAMES(LUNAME, MODESELECT,
SYSMODENAME, SECURITY_OUT, USERNAMES)
VALUES(luname,mode,sysmodename,
security,username);
INSERT INTO SYSIBM.USERNAMES(TYPE, LINKNAME,
AUTHID, NEWAUTHID, PASSWORD)
VALUES(type,linkname,id-at-AR,
id-at-AS,password);
- SYSIBM.LOCATIONS.LOCATION
- CONNECT文で使用される名称
- SYSIBM.LOCATIONS.LINKNAME
- リンク先の名称。これは、SYSIBM.IPNAMES→SYSIBM.LUNAMESの順番で検索される
- SYSIBM.LOCATIONS.TPN
- TP名。空白だとX'07'6DBが使用される。DB2 UDBのデフォルト値はDB2DRDA
- SYSIBM.LUNAMES.LUNAME
- SYSIBM.LOCATIONS.LINKNAMEに対応するLU名
- SYSIBM.LUNAMES.MODESELECT
- 'Y'であれば、現状のUSERIDとアクセスプランを元にSYSIBM.MODESELECTテーブルを検索してそこからモードを取得する。そうでなければ、同一レコード中のSYSMODENAMEフィールドが使用される。
- SYSIBM.LUNAMES.SECURITY_OUT
- 'A'であれば、ユーザはOS/390上で認証済みであることを意味する。相手先では、クライアント認証を許可する設定が必要(DB2 UDBであればAUTHENTICATION=CLIENT。)
'P'であれば、IDとPASSWORDが共に接続先に送られることを意味する。この場合、USERNAMESフィールドには、接続ID変換設定を意味する'O'がセットされていなければならない。
- SYSIBM.LUMODES.CONVLIMIT
- VTAM Resourceで設定したセッション最大数を上書きする。
- SYSIBM.USERNAMES.TYPE
- 接続ID変換設定を意味する'O'をセットする。
- SYSIBM.USERNAMES.LINKNAME
- リンク先の名称。
- SYSIBM.USERNAMES.AUTHID
- AR側でのUSERID。指定されていない場合には、明示的に指定された以外のすべてのUSERIDを対象とする。
- SYSIBM.USERNAMES.NEWAUTHID, SYSIBM.USERNAMES.PASSWORD
- AS側に送られるUSERID/PASSWORD
パッケージのバインド
DB2 for OS/390では、パッケージは自動的にはサーバにバインドされないため、BIND PACKAGEパネルを用いて設定を行う必要がある。設定する項目は次のようなものである:
パラメータ | 値 |
LOCATION NAME | 設定したLOCATION |
COLLECTION-ID | バインドするパッケージの名称 |
ACTION ON PACKAGE | ADDかREPLACEか |
CHANGE CURRENT DEFAULTS | YES |
ISOLATION LEVEL | 適切な値 |
SQLERROR PROCESSING | NOPACKAGE |
DB2 for OS/390 as an Application Server
DB2 for OS/390をASとして設定するためには、次のような手順が必要となる:
- VTAM Resourceを編集する
- BSDS(Bootstrap Data Set)を編集する
- CDB(Communications Database)に項目を追加する
- DDF(Distributed Data Facility)を再起動する
このうち、CDBへの項目追加以外は、AR設定と同一の作業である。
CDBに項目を追加
ASとしての動作にかかわる追加は、以下のようなSQL文を用いて行う。
INSERT INTO SYSIBM.LUNAMES
(LUNAME, SECURITY_IN, USERNAMES)
VALUES(luname,security,
username);
INSERT INTO SYSIBM.USERNAMES
(TYPE, LINKNAME, AUTHID, NEWAUTHID)
VALUES(type,linkname,
id-at-AR,id-at-AS);
- SYSIBM.LUNAMES.LUNAME
- SYSIBM.LOCATIONS.LINKNAMEに対応するLU名
- SYSIBM.LUNAMES.SECURITY_IN
- 'A'であれば、ユーザは相手先システムで上で認証済みであることを意味する(DB2 UDBのAUTHENTICATION=CLIENTに相当)。
'V'であれば、IDとPASSWORDを共に受け取る必要があることを意味する。
- SYSIBM.LUNAMES.USERNAMES
- 'I'がセットされていた場合、SYSIBM.USERNAMESテーブルを元に接続ユーザの変換が行われる。
- SYSIBM.USERNAMES.TYPE
- 'I'の場合、ASとしてのユーザ定義変換であることを意味する。
- SYSIBM.USERNAMES.LINKNAME
- リンク先の名称。
- SYSIBM.USERNAMES.AUTHID
- AR側でのUSERID。指定されていない場合には、明示的に指定された以外のすべてのUSERIDを対象とする。
- SYSIBM.USERNAMES.NEWAUTHID, SYSIBM.USERNAMES.PASSWORD
- AS側に送られるUSERID/PASSWORD