DB2 (MVS/ESA 版) では、 DB2 (MVS/ESA 版) 分散データ機能 (DDF) の重要な部分として DRDA アプリケーション・リクエスターを実装しています。 DDF は、ローカルな DB2 (MVS/ESA 版) データベース管理機能とは別個に停止させることができますが、ローカルな DB2 (MVS/ESA 版) データベース管理サポートなしに実行させることはできません。
アプリケーション・リクエスターとして動作している場合、 DB2 (MVS/ESA 版) はシステム上で実行されているアプリケーションを、 DRDA アプリケーション・サーバー機能が実装されているリモート DB2 ユニバーサル・データベース、 DB2 (MVS/ESA 版)、DB2 ユニバーサル・データベース (OS/390 版)、DB2 ユニバーサル・データベース (AS/400 版)、および DB2 (VSE および VM 版) の各データベース・サーバーに接続できます。
DB2 (MVS/ESA 版) アプリケーション・リクエスターを使用して分散データベースにアクセスするには、以下のようにしてください。
分散データベース環境の処理の大部分では、ネットワーク内の他の場所との間でメッセージを交換することが必要です。このプロセスが正しく実行されるようにするには、以下のことを実行しなければなりません。
ネットワーク内の各プログラムには NETID および LU 名が割り当てられているため、 DB2 (MVS/ESA 版) アプリケーション・リクエスターがネットワークに接続するときには NETID.LUNAME 値が必要です。 DB2 (MVS/ESA 版) アプリケーション・リクエスターはローカルの DB2 (MVS/ESA 版) データベース管理システムに統合されるため、アプリケーション・リクエスターには RDB_NAME も必要です。 DB2 (MVS/ESA 版) のマニュアルでは、 DB2 (MVS/ESA 版) は RDB_NAME をロケーション 名と呼んでいます。
DB2 (MVS/ESA 版) アプリケーション・リクエスターを SNA ネットワークに定義するには、次のようにします。
DB2 (MVS/ESA 版) は始動処理中に BSDS を読み取って、システム・インストール・パラメーターを取得します。 BSDS に保管されるレコードの 1 つは DDF レコード と呼ばれるものです。そのように呼ばれるのは、VTAM に接続するとき、その中に収められている情報を DDF が使用するからです。この情報は次のものから構成されます。
以下の 2 つの方法で、DDF BSDS 情報を DB2 (MVS/ESA 版) に指定できます。
図 3. DB2 (MVS/ESA 版) インストール・パネル DSNTIPR
1 DDF STARTUP OPTION ===> AUTO NO (DDF not startable), AUTO (automatic start up), or COMMAND (start by command) 2 DB2 LOCATION NAME ===> SYDNEY The name other DB2s use to refer to this DB2 3 DB2 NETWORK LUNAME ===> LUDBD1 The name VTAM uses to refer to this DB2 4 DB2 NETWORK PASSWORD ===> PSWDBD1 Password for connecting to other DB2s 5 RLST ACCESS ERROR ===> NOLIMIT Action on non-local RLST access error NOLIMIT - Run without limit NORUN - Do not run at all 1-5000000 - Limit in CPU service units PRESS: ENTER to continue END to exit HELP for more information |
図 4 には、 BSDS を更新して、ロケーション名を SYDNEY に、LU 名を LUDBD1 に、パスワードを PSWDBD1 にする方法が示されています。
図 4. ブートストラップ・データ・セット DDF 定義の例
//SYSADMB JOB ,'DB2 2.3 JOB',CLASS=A //* //* CHANGE LOG INVENTORY: //* UPDATE BSDS WITH //* - DB2 LOCATION NAME FOR SYDNEY //* - VTAM LUNAME (LUDBD1) //* - DB2/VTAM PASSWORD //* //DSNBSDS EXEC PGM=DSNJU003 //STEPLIB DD DISP=SHR,DSN=DSN230.DSNLOAD //SYSUT1 DD DISP=OLD,DSN=DSNC230.BSDS01 //SYSUT2 DD DISP=OLD,DSN=DSNC230.BSDS02 //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * DDF LOCATION=SYDNEY,LUNAME=LUDBD1,PASSWORD=PSWDBD1 //* |
DDF が (DB2 (MVS/ESA 版) の始動に伴って自動的に、あるいは DB2 (MVS/ESA 版) の START DDF コマンドによって) 始動すると、 DDF は VTAM に接続し、LU 名とパスワードを VTAM に渡します。 VTAM は、 LU 名とパスワード (VTAM パスワードが必要な場合) を DB2 (MVS/ESA 版) システムの VTAM APPL ステートメントで定義された値と照合することによって、 DB2 (MVS/ESA 版) システムを認識します。 VTAM パスワードは、指定された LU 名を DB2 (MVS/ESA 版) が VTAM 上で使用する許可を得ているかどうかを検査するために使用されます。 VTAM パスワードはネットワークの中を伝送されることはありませんし、ネットワーク内の他のシステムを DB2 (MVS/ESA 版) に接続するために使用されることもありません。
VTAM がパスワードを必要としない場合は、ログ目録変更ユーティリティーで PASSWORD= キーワードを省略してください。このキーワードを指定しないということは、VTAM パスワードが不要であるということです。
VTAM LU 名とパスワードを DB2 (MVS/ESA 版) に定義したら、次にこれらの値を VTAM に登録する必要があります。 VTAM では、ローカル LU 名を定義するのに APPL ステートメントを使用します。 図 5 は、LU 名 LUDBD1 を VTAM に定義する方法を示しています。
図 5. DB2 (MVS/ESA 版) APPL 定義のサンプル
DB2APPLS VBUILD TYPE=APPL * *--------------------------------------------------------------------* * * * APPL DEFINITION FOR THE SYDNEY DB2 SYSTEM * * * *--------------------------------------------------------------------* * LUDBD1 APPL APPC=YES, X AUTH=(ACQ), X AUTOSES=1, X DMINWNL=10, X DMINWNR=10, X DSESLIM=20, X EAS=9999, X MODETAB=RDBMODES, X PRTCT=PSWDBD1, X SECACPT=ALREADYV, X SRBEXIT=YES, X VERIFY=NONE, X VPACING=2, X SYNCLVL=SYNCPT, X ATNLOSS=ALL X |
VTAM APPL ステートメントでは多くのキーワードを使用できます。キーワードの意味は、 DB2 管理の手引き に詳細に説明されています。ここでは本書の内容に関係のあるキーワードだけを説明します。 図 5 に関係するキーワードを以下に説明します。
任意の 2 つの分散データベース・パートナー間のすべての APPC セッションを自動的に開始する必要はありません。 AUTOSES 値が回線争奪勝者の限度 (DMINWNL) より小さい場合には、分散データベース・アプリケーションが必要とするまで、 VTAM は残りの SNA セッションの開始を遅らせます。
パートナーが DSESLIM、DMINWNL、または DMINWNR パラメーターで要求されたセッションの数をサポートできない場合には、 CNOS 処理はパートナーが受け入れ可能なこれらのパラメーターの新しい値を折衝します。
各 DB2 (MVS/ESA 版) パートナーの SNA 会話機密保護レベルは DB2 (MVS/ESA 版) 通信データベース (SYSIBM.SYSLUNAMES 表の USERSECURITY 列) から取られるため、常に SECACPT=ALREADYV と指定するのが最良です。 SECACPT=ALREADYV を指定すると、USERSECURITY の値を柔軟に選択できるようになります。
DB2 (MVS/ESA 版) では、VERIFY キーワードの選択に制限はありません。信頼性の低いネットワークの場合は VERIFY=REQUIRED をお勧めします。 VERIFY=REQUIRED を指定すると、パートナー LU 検査を実行できないパートナーを VTAM が拒否することになります。 VERIFY=OPTIONAL を選択すると、 VTAM はサポートを提供するパートナーにのみパートナー LU 検査を実行します。
DSESLIM、DMINWNL、および DMINWNR により、すべてのパートナーに当てはまる、省略時の VTAM セッション限度を確立できます。特殊なセッション限度要件があるパートナーの場合は、 SYSIBM.SYSLUMODES 表を使って省略時のセッション限度をオーバーライドできます。たとえば、OS/2 システムに適した VTAM 省略時セッション限度を指定する場合、他のパートナーに適したセッション限度を定義する行を SYSIBM.SYSLUMODES 表に作成できます。次のサンプル値を考慮してください。
DSESLIM=4,DMINWNL=0,DMINWNR=4
これらのパラメーターにより、各パートナーは、自分が回線争奪勝者であるセッションを最大 4 つまで DB2 (MVS/ESA 版) との間で作成できるようになります。 OS/2 は DB2 (MVS/ESA 版) と LU 6.2 会話を作成するので、 OS/2 を回線争奪勝者としても大幅なパフォーマンスの向上は望めません。 OS/2 は、使用可能な回線争奪勝者セッションを持っている場合、新しい LU 6.2 会話を開始する許可を求める必要はありません。
DB2 (MVS/ESA 版) アプリケーションがリモート・システムからデータを要求するとき、 DB2 (MVS/ESA 版) は通信データベース表を検索して、リモート・システムに関する情報を探します。次の情報が含まれます。
通信データベースは、DB2 (MVS/ESA 版) システム管理者が管理する、SQL 表のグループです。 DB2 (MVS/ESA 版) システム管理者は、使用される可能性のある各 DRDA パートナーを記述する行を通信データベースに挿入するのに、 SQL を使用する必要があります。 通信データベースは以下の 5 つの表から構成されています。
DB2 (MVS/ESA 版) は、この表を使って、 DB2 (MVS/ESA 版) アプリケーションが選択した各 RDB_NAME の LU 名と TPN 値を判別します。列は次のとおりです。
リモート・システムが省略時値以外の TPN 値を必要とする場合、ここでその値を指定してください。
この表は、リモート・システムのネットワーク属性を定義します。列は次のとおりです。
MODESELECT に 'Y' 以外の値が入っている場合、システム主導アクセス要求にモード名 IBMDB2LM が使用され、 DRDA 要求にモード名 IBMRDB が使用されます。
モード名に関連した VTAM サービス・クラス (COS) を指定することにより、 MODESELECT 列を使って分散データベース要求を優先順位付けすることが可能になります。
この表は、パートナー・システムごとに LU 6.2 セッション限度 (CNOS 限度) を定義するために使用されます。列は次のとおりです。
CONVLIMIT に指定された値は、 CNOS 中に DMINWNR および DMINWNL 値を CONVLIMIT/2 に設定するために使用されます。
この表により、エンド・ユーザーおよび DB2 (MVS/ESA 版) アプリケーションごとに異なるモード名を指定できるようになります。各 VTAM モード名にはサービス・クラス (COS) を関連付けることができるので、この表を使って、AUTHID、PLANNAME、および LUNAME の組み合わせに基づいて、分散データベース・アプリケーションにネットワーク伝送優先順位を割り当てることができます。列は次のとおりです。
この表は、パスワード、名前変換、および come-from 検査を指定することによって、エンド・ユーザー名を管理するために使用します。 DB2 (MVS/ESA 版) はエンド・ユーザー名を許可 ID として参照します。他の製品の大部分は、この名前をユーザー ID として参照します。
この表を使用すると、SNA ユーザー ID および DB2 (MVS/ESA 版) 許可 ID に別の名前を使用するよう、名前変換を行うことができます。名前変換処理は、リモート・システムへの要求 (アウトバウンド 要求) のため、およびリモート・システムから送られてくる要求 (インバウンド 要求) のために、行うことができます。パスワードが暗号化されていない場合、ユーザー ID とパスワードの両方をリモート・サイトに送るときに、この表はエンド・ユーザーのパスワードの情報源となります。列は次のとおりです。
VTAM は MVS システム用のコミュニケーション・マネージャーです。 VTAM は DB2 (MVS/ESA 版) から LU 6.2 verb を受け入れ、これらの verb を LU 6.2 データ・ストリームに変換して、ネットワーク経由で送信できるようにします。 VTAM が DB2 (MVS/ESA 版) 通信データベースで定義されているパートナー・アプリケーションと通信するためには、 VTAM に以下の情報を提供しなければなりません。
DB2 (MVS/ESA 版) が VTAM と通信するときには、必要な宛先を識別するための LU 名 (NETID.LUNAME ではない) だけを VTAM に渡す許可が DB2 (MVS/ESA 版) に与えられています。 DB2 (MVS/ESA 版) から渡される LU 名の値から VTAM が NETID と LU 名の両方を判別できるようにするためには、ローカル VTAM システムが認識している LU 名の中で、この LU 名が固有のものである必要があります。 LU 名が企業の SNA ネットワーク全体に渡って固有のものであるなら、 VTAM の資源定義の処理は大幅に単純化されます。ただし、これは必ずしも可能であるとは限りません。 LU 名が SNA ネットワークの中で固有のものでないなら、 VTAM の LU 名変換を使用して、固有でない LU 名のために NETID.LUNAME の正しい組み合わせを構築する必要があります。この処理については、 VTAM ネットワーク導入の手引き (MVS/ESA) の『資源名変換』で説明されています。
リモート LU 名を定義するために用いられる VTAM の定義の配置と構文は、リモート・システムが論理的および物理的にどのようにローカル VTAM システムに接続されているかに応じて異なります。
定義する VTAM モード表によって、RU サイズと歩調合わせカウントが指定されます。これらの値を正しく定義できていないと、すべての VTAM アプリケーションに悪影響を与える可能性があります。
RU サイズ、セッション限度、および歩調合わせカウントを選択した後、これらの値が既存の VTAM ネットワークに与える影響を考慮することは非常に重要です。新しい分散データベース・システムをインストールするときには、以下の項目を復習してください。
NCP MAXBFRU パラメーターを指定する場合には、 RU サイズに 29 バイトを加えた大きさが入る値を選択してください。 NCP では、MAXBFRU パラメーターによって、 PIU を保持するのに使用できる VTAM I/O バッファーの数を定義します。 IOBUF バッファー・サイズを 441 と選択する場合、 10*441 は 4096+29 より大きいため、 MAXBFRU=10 は 4K RU を正しく処理します。
リモート・システムが SQL アプリケーションに代わって分散データベース処理を実行する場合には、アプリケーション・リクエスター、アプリケーション・サーバー、およびそれらに接続しているネットワークの機密保護要件を満たさなければなりません。これらの要件は、以下のカテゴリーのいくつかに分けられます。
MVS システムでは、エンド・ユーザーに 1〜8 文字のユーザー ID が割り当てられます。このユーザー ID 値は、特定の MVS システムで固有でなければなりませんが、 SNA ネットワーク全体で固有でなくてもかまいません。たとえば、NEWYORK システムで JONES というユーザーがいて、 DALLAS システムでまた JONES というユーザーがいてもかまいません。この 2 人のユーザーが同一の人であれば、対立は起きません。しかし、DALLAS の JONES が NEWYORK の JONES とは別人の場合、 SNA ネットワーク (およびそのネットワークの分散データベース・システム) は、 NEWYORK の JONES と DALLAS の JONES とを区別できません。この状況を訂正しない場合には、 DALLAS の JONES は NEWYORK システムの JONES に与えられた特権を使用できます。
名前の対立を解消するため、DB2 (MVS/ESA 版) はエンド・ユーザー名前変換のサポートを提供します。 DB2 (MVS/ESA 版) アプリケーション・リクエスターでアプリケーションが分散データベース要求を行うとき、通信データベースでアウトバウンド名前変換が必要であると指定されていれば、 DB2 (MVS/ESA 版) は名前変換を実行します。アウトバウンド名前変換が選択されていると、 DB2 (MVS/ESA 版) は必ず各アウトバウンド分散データベース要求と一緒にパスワードを強制的に送信します。
DB2 (MVS/ESA 版) のアウトバウンド名前変換は、 SYSIBM.SYSLUNAMES 表の USERNAMES 列を 'O' または 'B' に設定すると活動化されます。 USERNAMES を 'O' に設定すると、アウトバウンド要求でエンド・ユーザー名前変換が実行されます。 USERNAMES を 'B' に設定すると、インバウンド要求とアウトバウンド要求の両方でエンド・ユーザー名前変換が実行されます。
DB2 (MVS/ESA 版) の許可は、エンド・ユーザーのユーザー ID および DB2 (MVS/ESA 版) プランまたはパッケージ所有者のユーザー ID に依存しているため、エンド・ユーザー名前変換処理は、エンド・ユーザーのユーザー ID、プラン所有者のユーザー ID、およびパッケージ所有者のユーザー ID に対して実行されます。 2 名前変換処理に際しては、SYSIBM.SYSUSERNAMES 表の中で、次のパターン (TYPE.AUTHID.LUNAME) に一致する行が、次の順番で探索されます。
一致する行が見つからないと、DB2 (MVS/ESA 版) は分散データベース要求を拒否します。行が見つかると、NEWAUTHID 列の値が許可 ID として使用されます (ブランクの NEWAUTHID 値は、元の名前を変換しないで使用することを意味します)。
前述の例を考慮してみましょう。 NEWYORK の JONES が DALLAS に分散データベース要求を出す場合、この JONES に別の名前 (NYJONES) を与えたいものとします。この例において、 JONES が使用するアプリケーションは DSNPLAN (DB2 (MVS/ESA 版) プラン所有者) の所有で、 DALLAS に送信を行うときにこのユーザー ID の変換は不要であるものとします。名前変換規則を通信データベースに指定するのに必要な SQL ステートメントを図 6 に示します。
INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', 'O'); INSERT INTO SYSIBM.SYSLOCATIONS (LOCATION, LOCTYPE, LINKNAME, LINKATTR) VALUES ('DALLAS', ' ', 'LUDALLAS', ''); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'JONES', 'LUDALLAS', 'NYJONES', 'JONESPWD'); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'DSNPLAN', 'LUDALLAS', ' ', 'PLANPWD'); |
結果として通信データベースの表がどのようになるかを図 7 に示します。
![]() |
アプリケーション・リクエスターがリモート・アプリケーションを示すエンド・ユーザー名を選択した後は、そのアプリケーション・リクエスターは必要なネットワーク機密保護情報を提供しなければなりません。 LU 6.2 は、主に 3 つのネットワーク機密保護機能を提供します。
アプリケーション・サーバーの責任でデータベース資源を管理するため、アプリケーション・サーバーは、どのネットワーク機密保護にアプリケーション・リクエスターが必要かを指示します。各アプリケーション・サーバーの会話レベル機密保護要件を SYSIBM.SYSLUNAMES 表に記録する必要があります。そのためには SYSIBM.SYSLUNAMES 表の USERNAMES を、アプリケーション・サーバーの要件を反映するように設定します。
SNA 会話機密保護オプションは以下のとおりです。
DB2 (MVS/ESA 版) ではエンド・ユーザー名前変換がアウトバウンド会話機密保護に関連付けられているので、アウトバウンド・エンド・ユーザー名変換が活動化されている場合に SECURITY=SAME を使用することはできません。
SYSIBM.SYSLUNAMES 表に指定されているオプションに応じて、 DB2 (MVS/ESA 版) は 2 つの異なる情報源からユーザーのパスワードを取得します。
図 8 では、SMITH と JONES のパスワードを定義しています。この例の LUNAME 列はブランクなので、これらのパスワードは SMITH または JONES がアクセスしようとするどのリモート・システムでも使用できます。
INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'JONES', ' ', ' ', 'JONESPWD'); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'SMITH', ' ', ' ', 'SMITHPWD'); |
DB2 (MVS/ESA 版) は SYSIBM.SYSUSERNAMES 表を探索して、リモート・システムに送信するユーザー ID (NEWAUTHID 値) を判別します。変換されたこの名前は、RACF のパスワード抽出のために使用されます。名前を変換したくない場合は、名前を変換しないで送信するための行を SYSIBM.SYSUSERNAMES の中に作成する必要があります。 図 9 は、エンド・ユーザー名 (ユーザー ID) を変換せずに要求を LUDALLAS と LUNYC に送信できるようにします。
INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', ' ', 'LUNYC', ' ', ' '); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', ' ', 'LUDALLAS', ' ', ' '); |
アプリケーション・リクエスターが分散データベースの機密保護に貢献できる 1 つの方法は、前にエンド・ユーザー名の選択で説明されたように、アウトバウンド・ユーザー名前変換です。アウトバウンド・ユーザー名前変換を使用すると、要求を出しているユーザーおよびアプリケーションの ID に従って、各アプリケーション・サーバーへのアクセスを制御できます。その他に、DB2 (MVS/ESA 版) アプリケーション・リクエスターが分散システムの機密保護に貢献できる方法には以下のものがあります。
パッケージをバインドするときは、 ENABLE/DISABLE オプションを使用して、パッケージを TSO、CICS/ESA、IMS/ESA、またはリモート DB2 (MVS/ESA 版) サブシステムから使用できるかどうかを指定してください。
MVS システムの外部機密保護サブシステムは RACF、および RACF と互換性のあるインターフェースを備えた同等の製品により提供されます。 DB2 (MVS/ESA 版) アプリケーション・リクエスターには、外部の機密保護サブシステムを直接呼び出すことはありません。ただし、ネットワーク機密保護で説明された暗号化パスワード・サポートは例外です。しかし、以下の状況ではアプリケーション・リクエスターで外部機密保護サブシステムが間接的に使用されます。
DB2 (MVS/ESA 版) は、省略時のインストール・システム・コード化文字セット ID (CCSID) が 500 の状態で出荷されています。この省略時値はおそらく、ご使用のインストール・システムでは正しくない でしょう。
DB2 (MVS/ESA 版) をインストールするときには、インストール・システムの CCSID を、ご使用のサイトの入力装置が生成して DB2 (MVS/ESA 版) に送る文字の CCSID に設定する必要があります。通常、この CCSID はご使用になる言語によって決定されます。インストール・システムの CCSID が間違っていると、文字変換の結果が誤ったものになります。国別または言語別のサポートされる CCSID のリストについては、 DB2 コネクト 使用者の手引き を参照してください。
ご使用の DB2 (MVS/ESA 版) サブシステムが、各アプリケーション・サーバーの CCSID を DB2 (MVS/ESA 版) サブシステムのインストール・システムの CCSID に変換できるかどうか確認する必要があります。変換元 CCSID と変換先の CCSID の一般的な組み合わせについては、 DB2 (MVS/ESA 版) に変換テーブルが用意されていますが、可能なすべての組み合わせに対応しているわけではありません。必要であれば、使用可能な変換テーブルと変換ルーチンのセットを追加できます。 DB2 (MVS/ESA 版) 文字変換の詳細については、 DB2 管理の手引き を参照してください。