EGL デバッガーを使用して VSE DL/I アプリケーションをデバッグする

z/VSE® 上の DL/I データベースにアクセスする EGL プログラムをデバッグできます。

EGL デバッガーは VSE Connector Client を使用して、z/VSE 上の CICS® の下で DL/I データベースにアクセスします。ほとんどの DL/I 操作がサポートされていますが、制限がいくつかあります。
  • DL/I データベース PCB のみがサポートされます。デバッガーは I/O PCB、TP PCB、GSAM PCB にはアクセスできません。
  • DL/I 呼び出しのうち GSCD と XRST はサポートされません。
  • IMS™ PSB 内のすべてのデータベース PCB に名前を付ける必要があります。その名前は、EGL PSB において対応する pcbName プロパティーに一致しなければなりません。あるいは、ご使用のプログラムで CBLTDLI インターフェースが利用されている場合、EGL PSB 内の PCB は、VSE PSB 内の PCB と同じ位置に存在しなければなりません。

ホスト環境の構成

デバッグの場合、いくつかの前提条件がホスト上で必要です。
  • AIBTDLI インターフェースがインストールされていなければなりません。
  • DL/I VSE 1.11 以降がインストールされていなければなりません。
  • DL/I 用の APAR PQ39683 が適用されていなければなりません。
  • CICS/DLI システムにおいて、すべての PSB が DL/I オンライン中核 DLZNUCxx で定義されていなければならず、 アクティブな MPS システムが必要です (CICS ログで 「DLZ093I MPS STARTED WITH APPLID=MYCICS」という行を検索してください)。 このオンライン中核には、プログラム DLZBPC00 用のエントリーと任意の PSB (リモート・アクセスに必要となるもの) が含まれていなければなりません。
    例えば、次のようになります。
    DLZACT TYPE=PROGRAM,PGMNAME=DLZBPC00,PSBNAME=(myPSB1,myPSB2...)
  • DL/I タスク終了出口 DLZBSEOT は SVA に常駐していなければなりません。
  • 上記の要件が満たされない場合は、DLI プラグインが使用不可であるという例外が示されます。
注意:
要件が満たされない場合は、次の例外が表示されます。
DLI Plugin is disabled.

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

以下のアクションをローカル・ワークスペースで実行して、リモート・デバッグを使用可能にします。
  • 「ウィンドウ (Window)」 > 「設定」 > 「EGL」 > 「デバッグ」ページで「systemType を DEBUG に設定」オプションを クリアします。 こ れにより、EGL はビルド記述子オプションのシステム・タイプを使用するようになります。
  • VSE 用のリモート DL/I を使用するには、デバッグに使用される EGL ビルド記述子を以下のように設定する必要があります。
    destHost
    VSE ホスト名または IP アドレス。
    destUserID
    VSE ホストに接続するためのユーザー ID。
    destPassword
    VSE ホストに接続するためのパスワード。
    destPort
    VSE Connector Server が listen するポートの番号。 このオプションが指定されていない場合は、ポート 2893 が使用されます。
    imsID
    リモート DL/I アクセスに使用される CICS 領域の APPLID (この CICS 領域にはアクティブな MPS システムが必要です)。
    imsPSB
    デバッグに使用されるホスト PSB の名前。 これは、EGL デバッガー設定における PSB オプションを オーバーライドします。
    system
    VSEBATCH または VSECICS。
    debugTrace
    デバッガーでエラーが発生する場合は、これを yes に設定します。 トレースは Rational® Business Developer コンソールに出力されます。
    ビルド記述子
  • EGL デバッグ設定を以下のように設定します。

    「ウィンドウ (Window)」 > 「設定」 > 「EGL」 > 「デバッグ」ページで、VSEConnector.jarcci.jar「クラスパスの順序 (Class path oder)」セクションに含まれていることを確認します。

  • 「ウィンドウ (Window)」 > 「設定」 > 「EGL」 > 「デバッグ」 > 「IMS DLI のデバッグ」ページで 以下の情報を入力します。
    ConversionTable
    ホストの言語を定義します。
    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 プロパティーの値 (使用される場合) か、プログラム名のいずれかです。 この値は、大文字に変換されます。

EGL デバッガーは、ご使用の EGL プログラムに以下のいずれかを必要とします。

  • callInterface = DLICallInterfaceKind.CBLTDLI の場合、PCB の数とそれぞれの位置に関して、EGL PSB では PCB の順序が VSE PSB における順序と同じになっていなければなりません。
  • callInterface = DLICallInterfaceKind.AIBTDLI (callInterface オプションが指定されない場合のデフォルト) の 場合、EGL PSB 内の PCB には、VSE PSB における PCB と同じ名前が必要です。