EGL デバッガーを使用した、ストアード・プロシージャー・リンケージでの IMS、ZOSBATCH、および DL/I のデバッグ

リモートの IMS™ プログラムまたは ZOSBATCH プログラムを呼び出す EGL プログラムをデバッグできます。

デバッグするプログラムは、SQL データベース、DL/I データベース、またはその両方にアクセスできます。同様に、リモート IMS または ZOSBATCH 呼び出し先プログラムは、SQL データベース、DL/I データベース、またはその両方にアクセスできます。デバッガーは、ホストに対するデータベース呼び出しを行い、ホスト上に生成されたプログラムに対する呼び出しも行いますが、その他の場合は、ローカル・クライアント・システムでコードを解釈します。

この IMS と DL/I のデバッグ・サポートには、以下の制限が適用されます。
DL/I にアクセスするか、または IMS か ZOSBATCH に対するリモート呼び出しを実行するプログラムをデバッグするときは、必ず次のようにする必要があります。

ホスト環境の構成

デバッグの場合、いくつかの前提条件がホスト上で必要です。
  • 以下のアプリケーションが使用されていることを確認してください。
    • TCPIP
    • DB2® v.7 以降
    • IMS v.7 以降
      • Open Database Access (ODBA)
    • Resource Recovery Services (RRS)
    • Workload Manager (WLM)
  • EGL DL/I デバッガーは、ODBA を使用して IMS の DL/I データベース機能と通信することに注意してください。RRS/MVS (Resource Recovery Services) は必須です。OS/390® リリース 3 は、ODBA インターフェースをサポートできる最小のレベルです。
ホスト・システムで以下のアクションを実行します。ステップ 1 から 5 までは、1 回だけ実行します。最終ステップを完了してから、ワークステーション上でデバッグ・セッションを開始します。
  1. AIBTDLI ロード・モジュールおよび CBLTDLI ロード・モジュールの EGL バージョン (ELADL1) を作成します。このステップは、デバッグ・セッションが DL/I データベースにアクセスするプログラムに対するリモート呼び出しを実行する場合にのみ必要です。これらのモジュールのこの EGL バージョンにより、呼び出し先プログラムがワークステーション上のデバッガー・セッションと同じ作業単位で実行されるようになります。詳しくは、このトピックの『AIBTDLI および CBLTDLI の EGL バージョンの作成』を参照してください。
  2. DRA (Database Resource Adapter) Startup Table (ELADRA) を作成します。 詳しくは、このトピックの『DRA 始動テーブル』を参照してください。
  3. WLM (ワークロード・マネージャー) (ELADBWLM) を作成します。詳しくは、『ストアード・プロシージャー・リンケージのための DB2 の構成』にある『ワークロード・マネージャー』を参照してください。
  4. DB2 ストアード・プロシージャー (EZESP1CR および EZESP1GR) を作成します。詳しくは、『ストアード・プロシージャー・リンケージのための DB2 の構成』にある『DB2 ストアード・プロシージャー定義』を参照してください。
  5. PSB 情報を指定します。詳しくは、このトピックで後述する『ローカル・ワークスペースの構成』を参照してください。
  6. EGL DL/I デバッグ・サーバーを始動します。詳しくは 、「z/OS ホストでの DL/I デバッグ・サーバーの始動」を参照してください。
    • プロキシー始動 JCL (ELADBGPX) の詳細については、「z/OS ホストでの DL/I デバッグ・サーバーの始動」で『プロシージャー』を参照してください。
    • デバッグ・サーバー始動 JCL (ELADBGRN) の詳細については、「z/OS ホストでの DL/I デバッグ・サーバーの始動」で『デバッグ・サーバーを始動するための JCL』を参照してください。

Rational® COBOL Runtime for zSeries には、サンプル・ファイルが用意されています。メンバー名は、上記の括弧内に示されています。すべての JCL および SQL サンプルは、COBOL ランタイム内の、ELA.V6R0M1.SELAJCL または ELA.V6R0M1.SELASAMP のいずれかにあります。

AIBTDLI および CBLTDLI の EGL バージョンの作成

以下の特性をすべて持つプログラムを呼び出すプログラムをデバッグする場合、制限が適用されます。
  • IMS または ZOSBATCH で実行する
  • ホスト上にある
  • DL/I データベースにアクセスする

この場合、EGL デバッガーでは、EGL バージョンの AIBTDLI ロード・モジュールと CBLTDLI ロード・モジュールを使用し、IMS で提供されるロード・モジュールは使用しない必要があります。Rational COBOL Runtime for zSeries は、これらのロード・モジュールを作成するためのサンプル JCL を ELA.V6R0M1.SELAJCL(ELADL1) で提供しています。JCL を編集し、ご使用のシステム要件に合わせて変更してください。JCL 内のコメントが、必要な変更を説明しています。ジョブの実行後、結果として生成される AIBTDLI ロード・モジュールと CBLTDLI ロード・モジュールを含む PDS を、ワークロード・マネージャー JCL の STEPLIB に必ず追加してください。

DRA 始動テーブルの作成

Rational COBOL Runtime for zSeries は、DRA 始動テーブルを作成するためのサンプル JCL を ELA.V6R0M1.SELASAMP(ELADRA) で提供しています。次の表に、ジョブを実行する前に行う必要がある変更をリストします。ジョブの実行後、結果として生成される DRA 始動テーブルを含む PDS を、DLI デバッグ・プロキシーの STEPLIB に必ず追加してください。詳しくは 、「z/OS ホストでの DL/I デバッグ・サーバーの始動」を参照してください。

表 1. ELADRA.JCL の変更
変更前 変更後
  ジョブ・カードを追加
SYSLIB システム構成と一致するように変更する。
#dbctlid #dbctlid を、データベースの DB 制御 ID で置き換える。 この値は、imsID ビルド記述子オプションにも指定されます。
この値は、IMS の開始に使用する JCL からの値です。IMS JCL パラメーターは、次のようになります。
IMSID   XXXX  IMS SUBSYSTEM IDENTIFIER
この例で、XXXX は DB 制御 ID を表します。
IMS.SDFSRESL システムの PDS SDFSRESL。
MAXTHRD=99 99 を、同時デバッグ・セッションの最大数で置き換える (最小値は 3)。
CNBA=0 (FPBUF+FPBOF)*MAXTHREAD *
FPBUF=0 FPBUF は、FP の使用のため各スレッドに割り振られるバッファーの数。 *
FPBOF=0 FPBOF は、FP の使用のために各スレッドに割り振られるバッファーおよびオーバーフロー・バッファーの数。 *
TIMEOUT=60 TIMEOUT 始動パラメーターを可能な限り長く設定する。 できれば、最も長く稼働する UOR より長くします。
AGN=IVP IMS セキュリティーの構成について詳しくは、「IMS 7 管理の手引き : システム」を参照してください。
//SYSLMOD DD DSN=ELA.V6ROM1.SELADBGL ELA.V6ROM1.SELADBGL を、DRA スタートアップを常駐させたい PDS と置き換える。
NAME DFSIVP10(R) 上記から、DFSIVP10 を #dbctlid を後ろに付けた DFS と置き換える。
* これらのフィールドの設定の詳細については、IMS 管理ガイドを参照してください。

次のリストに、サンプル JCL を示します。

//ASM EXEC PGM=IEV90,
//       PARM='DECK,NOOBJECT,LIST,XREF(SHORT),ALIGN',
//       REGION=4096K
//SYSLIB DD DSN=IMS.OPTIONS,DISP=SHR
//       DD DSN=IMS.SDFSMAC,DISP=SHR
//       DD DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,400))
//SYSUT2 DD UNIT=SYSDA,SPACE=(1700,(400,400))
//SYSUT3 DD UNIT=SYSDA,SPACE=(1700,(400,400))
//SYSPUNCH DD DSN=&&OBJMOD;,
//       DISP=(,PASS),UNIT=SYSDA,
//       DCB=(RECFM=FB,LRECL=80,BLKSIZE=400),
//       SPACE=(400,(100,100))
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
PZP      TITLE 'DATABASE RESOURCE ADAPTER STARTUP PARAMETER TABLE'
DFSIVP10 CSECT
**********************************************************************
*        MODULE NAME: DFSIVP10                                       *
*        DESCRIPTIVE NAME: DATABASE RESOURCE ADAPTER (DRA)           *
*                  STARTUP PARAMETER TABLE.                          *
*        FUNCTION: TO PROVIDE THE VARIOUS DEFINITIONAL PARAMETERS    *
*                  FOR THE COORDINATOR CONTROL REGION. THIS          *
*                  MODULE MAY BE ASSEMBLED BY A USER SPECIFYING      *
*                  THEIR PARTICULAR NAMES, ETC. AND LINKEDITED       *
*                  INTO THE USER RESLIB AS DFSPZPXX.  WHERE XX       *
*                  IS EITHER 00 FOR THE DEFAULT, OR ANY OTHER ALPHA- *
*                  NUMERIC CHARACTERS.                               *
**********************************************************************
         EJECT
         DFSPRP DSECT=NO,                                              X
               DBCTLIB=#dbctlid,                                       X
               DDNAME=,                                                X
               DSNAME=IMS.SDFSRESL,                                    X
               MAXTHRD=99,                                             X
               MINTHRD=2,                                              X
               TIMER=60,                                               X
               USERID=,                                                X
               CNBA=10,                                                X
               FPBUF=5,                                                X
               FPBOF=3,                                                X
               TIMEOUT=60,                                             X
               SOD=A,                                                  X
               AGN=IVP
         END
//LNKEDT EXEC PGM=IEWL,
//       PARM='LIST,XREF,LET,NCAL'
//SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,50))
//SYSPRINT DD SYSOUT=*
//SYSLMOD  DD DSN=ELA.V6R0M1.SELADBGL,DISP=SHR
//SYSLIN   DD DISP=(OLD,DELETE),DSN=&&OBJMOD;
//         DD DDNAME=SYSIN
//SYSIN    DD *
   NAME  DFSIVP10(R)

ローカル・ワークスペースの構成

以下のアクションをローカル・ワークスペースで実行して、リモート・デバッグを使用可能にします。
  • 「ウィンドウ」 > 「設定」 > 「EGL」 > 「デバッグ」と進み、「systemType を DEBUG に設定」オプションをクリアします。こ れにより、EGL はビルド記述子オプションのシステム・タイプを使用するようになります。
  • クライアント・システムが JDBC を備えている必要があります。実際に必要な .jar ファイルは、実行している JDBC のバージョンによって異なります。
  • ホストに対して正常に機能するデフォルトの JDBC DB2 接続があることを確認してください。 EGL デバッガーは、この接続を使用して DL/I にアクセスします。
  • デバッグされたコードと呼び出し先プログラムの両方で DB2 データベースにアクセスする場合、デフォルトの JDBC 接続は NOAUTOCOMMIT に設定されている必要があります。
  • imsID ビルド記述子オプションを、IMS サブシステム の CHAR(4) 名に設定します。
  • 「ウィンドウ」 > 「設定」 > 「EGL」 > 「デバッグ」の下に、IMS DLI の設定ページがあることを確認します。ない場合、「ウィンドウ」 > 「設定」 > 「一般」 > 「機能」 と進み、 「拡張」をクリックします。「拡張」ウィンドウで、「EGL デベロッパー」を展開し、「EGL DLI」チェック・ボックスを選択する。「設定」ウィンドウを閉じてから再オープンし、IMS DLI のデバッグのページを表示します。
  • IMS DLI のデバッグの設定ページ (前のステップを参照) で、以下の情報を入力します。
    StoredProcedure
    ホスト上のストアード・プロシージャー。これは完全修飾名にすることができます。これがブランクである場合、デフォルト値 EZESP1 であると想定されます。 ビルド記述子の sqlSchema プロパティーの値が、この値の前に付加されます。ZOS DB2 の SQL リファレンスで説明されているように、ストアード・プロシージャー名は「procedure-name」の規則に従っている必要があります。
    HostPort
    デバッガー・サーバーが listen しているポートの番号。
    ConversionTable
    ホストの言語を定義します。これは、呼び出しリンケージ変換で使用されるテーブルと同じです。
    ProxyIdleTimeout
    デバッガー・サーバーがプロキシーのアボートを命令する前に、プロキシーがアイドル状態 (DL/I アクティビティーなし) となる時間。これは、処理にかかる時間を考慮して十分長い値にする必要がありますが、 接続が繰り返しドロップする場合には、選択可能なすべての処理を使い果たさない程度に 短くする必要があります。
    PSB Name
    PSB 名を指定するために、以下のいずれかのオプションを選択します。
    ビルド記述子オプション imsPSB を確認する (Review the build descriptor option imsPSB)
    ビルド記述子オプション imsPSB に非ブランク値があると、PSB 名のその他のソースより優先されます。
    PSB 名を求めてユーザーにプロンプトを出す
    各デバッグ・セッションが開始するときに、DL/I データへのアクセスに 使用される PSB 名を入力するようにプロンプトが出されます。ODBA インターフェース では、PCB を指定する必要があり、また、IMS のプログラムか、 または CICS の dliLib.psbData のいずれかで定義された PSB の PCB に一致する必要があります。
    DLILib.psbData からの PSB 名を使用
    CICS のデフォルト。プログラムは、トランザクションのコミット/ロールバックの決定について、DL/I プロパティーをそのまま使用しますが、PSB 名は、dliLib の psbData レコードから作成されます。
    PSB 名にプログラム名を使用
    IMS のデフォルト。これは、alias プロパティーの値 (使用される場合) か、プログラム名のいずれかです。 この値は、大文字に変換されます。

フィードバック