z/OS Debugger を開始する方法の選択

表 1 は、プログラムのタイプごとに z/OS® Debugger の開始方法が異なることを示しています。 このトピックでは、プログラムのタイプごとに、適用可能なそれぞれの方法が機能する環境について説明しています。 その後、ユーザーのサイトに最適な方法を選択できます。 このトピックを完了したら、使用するプログラムに最適な方法の選択も完了します。

表 1. TEST ランタイム・オプションの指定方法およびこれらの方法をサポートするサブシステム
  TSO JES バッチ UNIXシステム・サービス1 CICS® Db2® Db2 ストアード・プロシージャー (PROGRAM TYPE=MAIN) Db2 ストアード・プロシージャー (PROGRAM TYPE=SUB) IMS TM IMS バッチ IMS BTS
DFSBXITA ユーザー出口の使用               X X X
CADP トランザクションの使用       X            
DTCN トランザクションの使用       X            
Db2 カタログの使用           X3 X      
プログラム内部から、CEETEST、 __ctest()、 または PLITEST への呼び出しをコーディングします X X X X X X X X X X
CEEUOPT または CEEROPT の使用 X X X X2 X2 X2,3   X X X
TSO 内の JCL または CEEOPTS の割り振りで CEEOPTS DD ステートメントを使用します X X X   X       X X
ユーザーのプログラム開始時に EXEC ステートメントのパラメーターを使用します   X                
ユーザーのプログラム開始時に RUN ステートメントのパラメーターを使用します         X          
ユーザーのプログラム開始時に CALL ステートメントのパラメーターを使用します X                  
EQASET トランザクションを介します4               X4    
EQANMDBG プログラムを介します5 X5 X5             X5 X5
EQAD3CXT ユーザー出口ルーチンの使用   X       X X X X X
注:
  1. 変更の始まりGo プログラムは UNIX システム・サービス でのみ実行され、以下の制限があります。
    • cgo が使用中の場合、__ctest() は期待どおりに動作しない可能性があります。
    • CEEOPTS 割り振りは使用できません。
    変更の終わり
  2. CEEROPT を使用して TEST ランタイム・オプションを指定することはできません。
  3. Db2 カタログ方式は、常に CEEUOPT に優先します。
  4. この方法は、非Language Environment®のアセンブラー・プログラムでのみ使用可能です。
  5. この方法は、非言語環境プログラム のプログラムでのみ使用可能です。
  6. この方法は、call_sub 関数で呼び出される Db2 ストアード・プロシージャーでのみ使用可能です。
  7. RRTN_SW フラグを x'01' として設定した場合、EQAD3CXT は Db2 ストアード・プロシージャー (PROGRAM TYPE=SUB) もサポートします。

表 1 では、各サブシステムに対して TEST ランタイム・オプションの指定方法を複数の異なる指定方法から選択できることを示します。 以下のリストを使用すると、お客様の状況に最も適した方法を選択することができます (柔軟性と利便性順)。

TSO プログラムの場合
  • 言語環境プログラム で開始するプログラムの場合、ランタイム・オプションの指定で最も柔軟な方法として、TSO で CEEOPTS の割り振りを使用して TEST ランタイム・オプションを指定します。
  • ランタイム・オプションの数が少ない場合、または 言語環境プログラム プログラム以外のプログラムに対して EQANMDBG を呼び出す必要がある場合、CALL ステートメントのパラメーターを使用して TEST ランタイム・オプションを指定します。
  • CEETEST、__ctest()、または PLITEST への呼び出しをコーディングして TEST ランタイム・オプションを指定する場合、オプションを変更するたびにプログラムの再コンパイルが必要になります。
JES バッチ・プログラムの場合
  • 言語環境プログラム で開始するプログラムの場合、ランタイム・オプションの指定で最も柔軟な方法として、JCL で CEEOPTS DD ステートメントを使用して TEST ランタイム・オプションを指定します。
  • ランタイム・オプションの数が少ない場合、または 言語環境プログラム 以外のプログラムに対して EQANMDBG を呼び出す必要がある場合は、EXEC ステートメント・オプションのパラメーターを使用して、TEST ランタイム・オプションを指定します。
  • CEETEST、__ctest()、または PLITEST への呼び出しをコーディングして TEST ランタイム・オプションを指定する場合、オプションを変更するたびにプログラムの再コンパイルが必要になります。
UNIX システム・サービス・プログラムの場合
  • TEST ランタイム・オプションは、_CEE_RUNOPTS 環境変数を設定することによって指定します。
  • CEETEST、__ctest()、または PLITEST への呼び出しをコーディングして TEST ランタイム・オプションを指定する場合、オプションを変更するたびにプログラムの再コンパイルが必要になります。
CICS プログラムの場合
  • TEST ランタイム・オプションが入っているプロファイルを作成および保管するには、DTCN トランザクションまたは CADP トランザクションのいずれかを使用して TEST ランタイム・オプションを指定します。
  • CEETEST、__ctest()、または PLITEST への呼び出しをコーディングして TEST ランタイム・オプションを指定する場合、オプションを変更するたびにプログラムの再コンパイルが必要になります。
Db2 プログラムの場合
  • ランタイム・オプションの指定で最も柔軟な方法として、JCL で CEEOPTS DD ステートメントを使用するか、TSO で CEEOPTS の割り振りを使用して TEST ランタイム・オプションを指定します。
  • ランタイム・オプションの数が少ない場合、RUN ステートメント・オプションのパラメーターを使用して TEST ランタイム・オプションを指定します。
  • CEETEST、__ctest()、または PLITEST への呼び出しをコーディングして TEST ランタイム・オプションを指定する場合、オプションを変更するたびにプログラムの再コンパイルが必要になります。
PROGRAM TYPE が MAIN の Db2 ストアード・プロシージャーの場合
  • 言語環境プログラム EQAD3CXT ユーザー出口ルーチンを使用して TEST ランタイム・オプションを指定します。 ユーザーは、独自のサブオプション・セットを使用してストアード・プロシージャーを実行できます。 別のユーザーは、別のサブオプション・セットを使用してストアード・プロシージャーを実行またはデバッグできます。 したがって、同時に複数のユーザーがそのストアード・プロシージャーを実行またはデバッグできます。
  • サイトでこの出口ルーチンが使用不可の場合は、Db2 カタログを使用して TEST ランタイム・オプションを指定します。 しかし、ユーザーは、特定の 1 つのサブオプション・セットを指定するよう制限されます。つまり、ストアード・プロシージャーを実行またはデバッグするすべてのユーザーは、同じサブオプション・セットを使用します。

両方のメソッドを実装した場合は、言語環境プログラム 出口ルーチンが Db2 カタログに優先します。

PROGRAM TYPE が SUB の Db2 ストアード・プロシージャーの場合
  • call_sub 関数で呼び出されるプログラムの場合、言語環境プログラム EQAD3CXT 出口ルーチンを使用して TEST ランタイム・オプションを指定します。 ユーザーは独自のサブオプション・セットを使用して DB2 ストアード・プロシージャーを実行またはデバッグでき、別のユーザーは別のサブオプション・セットを使用して DB2 ストアード・プロシージャーを実行またはデバッグできます。
  • サイトでこの出口ルーチンが使用不可の場合は、Db2 カタログを使用して TEST ランタイム・オプションを指定します。 ユーザーは、 1 つのサブオプション・セットを指定するよう制限されます。つまり、ストアード・プロシージャーを実行またはデバッグするすべてのユーザーは、同じサブオプション・セットを使用します。

両方 のメソッドを実装した場合は、言語環境プログラム 出口ルーチンが Db2 カタログに優先します。

その他の方法で呼び出されるプログラムの場合、Db2 カタログを使用して TEST ランタイム・オプションを指定します。 ユーザーは、 1 つのサブオプション・セットを指定するよう制限されます。つまり、ストアード・プロシージャーを実行またはデバッグするすべてのユーザーは、同じサブオプション・セットを使用します。

IMS TM プログラムの場合
  • 言語環境プログラム EQAD3CXT ユーザー出口ルーチンを使用して TEST ランタイム・オプションを指定します。
  • 使用するプログラムが非言語環境プログラム である場合 、EQASET トランザクションを実行してデバッグ設定をセットアップします。
  • サイトで EQAD3CXT ユーザー出口ルーチンが使用不可の場合は、DFSBXITA ユーザー出口ルーチンを使用して TEST ランタイム・オプションを指定します。
  • サイトで EQAD3CXT または DFSBXITA ユーザー出口ルーチンが使用不可の場合は、CEEUOPT または CEEROPT を使用して TEST ランタイム・オプションを指定します。
  • 前述のオプションがすべてサイトで使用不可の場合は、CEETEST、__ctest()、または PLITEST への呼び出しをコーディングして TEST ランタイム・オプションを指定します。 ただし、オプションを変更するたびにプログラムの再コンパイルが必要になります。
IMS バッチ・プログラムの場合
  • 言語環境プログラム で開始するプログラムの場合、最も柔軟な方法として、JCL で CEEOPTS の割り振りを使用して TEST ランタイム・オプションを指定します。
  • EQAD3CXT ユーザー出口ルーチンを使用して TEST ランタイム・オプションを指定します。
  • 使用するプログラムが非言語環境プログラム である 場合、EQANMDBG プログラムを使用してデバッグ・セッションを開始します。
  • サイトで EQAD3CXT ユーザー出口ルーチンが使用不可の場合は、DFSBXITA ユーザー出口ルーチンを使用して TEST ランタイム・オプションを指定します。ただし、TRANSACTION ではなく PROGRAM を指定しなければなりません。
  • サイトで EQAD3CXT または DFSBXITA ユーザー出口ルーチンが使用不可の場合は、CEEUOPT または CEEROPT を使用して TEST ランタイム・オプションを指定します。
  • 前述のオプションがすべてサイトで使用不可の場合は、CEETEST、__ctest()、または PLITEST への呼び出しをコーディングして TEST ランタイム・オプションを指定します。 ただし、オプションを変更するたびにプログラムの再コンパイルが必要になります。
IMS BTS プログラムの場合
  • 言語環境プログラム で開始するプログラムの場合、最も柔軟な方法として、JCL で CEEOPTS の割り振りを使用して TEST ランタイム・オプションを指定します。
  • EQAD3CXT ユーザー出口ルーチンを使用して TEST ランタイム・オプションを指定します。
  • 使用するプログラムが 非 Language Environment プログラムである場合、EQANIAFE アプリケーション・フロントエンド・プログラムを使用してデバッグ・セッションを開始します。 詳しくは、非言語環境 IMS BTS プログラムのデバッグを参照してください。
  • サイトで EQAD3CXT ユーザー出口ルーチンが使用不可の場合は、DFSBXITA ユーザー出口ルーチンを使用して TEST ランタイム・オプションを指定します。
  • サイトで EQAD3CXT または DFSBXITA ユーザー出口ルーチンが使用不可の場合は、CEEUOPT または CEEROPT を使用して TEST ランタイム・オプションを指定します。
  • 前述のオプションがすべてサイトで使用不可の場合は、CEETEST、__ctest()、または PLITEST への呼び出しをコーディングして TEST ランタイム・オプションを指定します。 ただし、オプションを変更するたびにプログラムの再コンパイルが必要になります。

z/OS Debugger の開始に使用する方法を特定した後、デバッグ・セッションの計画を参照して、次に完了する必要のある作業を決定してください。