言語環境プログラム ユーザー出口を使用した TEST ランタイム・オプションの指定

Debug Tool には、カスタマイズされたバージョンの言語環境プログラムのユーザー出口 (CEEBXITA) が用意されています。このユーザー出口は、Language Environment® 初期化ロジックで呼び出されると、TEST ランタイム・オプションを返します。 Debug Tool は、3 つの異なる環境用にユーザー出口を提供しています。このトピックについては、システム・プログラマー専用の情報を加えて「Debug Tool カスタマイズ・ガイド」でも説明しています。

このユーザー出口は、命名パターンから構成される名前でユーザー制御データ・セットから TEST ランタイム・オプションを抽出します。命名パターンには、以下のトークンを含めることができます。

&USERID
Debug Tool は、&USERID トークンを現行ユーザーのユーザー ID に置き換えます。各ユーザーは、アプリケーションのデバッグ時に、それぞれ自分の TEST ランタイム・オプションを指定できます。このトークンはオプションです。
&PGMNAME
Debug Tool は、&PGMNAME トークンをメインプログラム (ロード・モジュール) の名前に置き換えます。プログラムごとに独自の TEST ランタイム・オプションを指定することができます。このトークンはオプションです。

Debug Tool には、以下の 2 つの形式でユーザー出口が用意されています。

Debug Tool には、以下のユーザー出口が用意されています。

表 14. さまざまな環境用の言語環境プログラムユーザー出口
環境 ユーザー出口名
次のタイプの DB2® ストアード・プロシージャーは、WLM 確立のアドレス・スペースで実行されます。
  • タイプ MAIN1
  • タイプ SUB (call_sub 関数により呼び出されます4)
EQADDCXT
IMS™ TM2 および BTS3 EQADICXT
バッチおよび BTS EQADBCXT
注:
  1. EQADDCXT は、DB2 バージョン 7 以降用にサポートされています。DB2 RUNOPTS を指定した場合でも、EQADDCXT は DB2 RUNOPTS より優先されます。
  2. IMS TM では、IMS 端末にサインオンしない場合、TSOID オプションを使用して EQASET トランザクションを実行することが必要になる可能性があります。 EQASET トランザクションの実行方法については、/SIGN ON を発行しない言語環境プログラム IMS MPP のデバッグ を参照してください。
  3. BTS の場合、IO PCB のユーザー ID を使用した環境コマンド (./E) を指定する必要があります。例えば、ユーザー ID が ECSVT2 の場合、環境コマンドは ./E USERID=ECSVT2 になります。
  4. ユーザー出口をアプリケーション・プログラムではなく、言語環境プログラムのモジュール CEEPIPI の専用コピーにリンクしてください。

各ユーザー出口は、以下のいずれかの方法で使用できます。

それぞれの方法の利点と欠点について詳しくは、CEEBXITA の 2 つのリンク方法の比較を参照してください。

言語環境プログラムのユーザー出口を使用するためにプログラムを準備するには、以下の作業を行います。

  1. CEEBXITA のソース・コードの編集
  2. アプリケーション・プログラムへの CEEBXITA ユーザー出口のリンク または 言語環境プログラム ランタイム・モジュールの専用コピーへの CEEBXITA ユーザー出口のリンク
  3. TEST ランタイム・オプション・データ・セットの作成と管理

CEEBXITA のソース・コードの編集

hlq.SEQASAMP にあるサンプル・アセンブラー・ユーザー出口を編集すれば、 以下の作業のいずれかを行うことにより、命名パターンまたはメッセージ表示レベルをカスタマイズできます。

命名パターンの変更

TEST ランタイム・オプションが含まれたデータ・セットの命名パターンは、順次データ・セット名の形式になっています。オプションで、&USERID トークンを指定できます。これは Debug Tool によって現行ユーザーのユーザー ID に置換されます。また、&PGMNAME トークンを追加することもでき、これは、Debug Tool によってメインプログラム (ロード・モジュール) の名前に置き換えられます。 ただし、ユーザーがリモート・デバッガーの「DTSP プロファイル (DTSP Profile)」ビューを使用して TEST ランタイム・オプション・データ・セットを作成して管理する場合は、&PGMNAME トークンを指定しないでください。このビューでは、このトークンはサポートされていません。

ユーザー ID の先頭文字は名前修飾子には無効な場合があります。 &USERID トークンの前に文字を連結して、それをユーザー ID の接頭部文字にすることができます。例えば、トークンの前に文字 "P" を付けて、P&USERID とすることができます。P は、&USERID が現行ユーザー ID で置き換えられた後に有効になる名前修飾子です。 IMS の場合、&USERID トークンは次のいずれかの値と置き換えられることがあります。

デフォルトの命名パターンは &USERID.DBGTOOL.EQAUOPTS です。これは、hlq.SEQAMOD で提供されるロード・モジュール内のパターンです。

下表に、名前パターンと、それに対応した、Debug Tool がトークンを値で置き換えた後のデータ・セット名の例を示します。

表 15. データ・セット命名パターン、トークンの値、および結果のデータ・セット名
命名パターン ユーザー ID プログラム名 ユーザー ID が置き換えられた後の名前
&USERID.DBGTOOL.EQAUOPTS JOHNDOE JOHNDOE.DBGTOOL.EQAUOPTS
P&USERID.EQAUOPTS 123456 P123456.EQAUOPTS
DT.&USERID.TSTOPT TESTID DT.TESTID.TSTOPT
DT.&USERID.&PGMNAME.TSTOPT TESTID IVP1 DT.TESTID.IVP1.TSTOPT

TEST ランタイム・オプションを持つデータ・セットの命名パターンをカスタマイズするには、サンプル・ユーザー出口にある DSNT DC ステートメントの値を変更します。例えば、次のようになります。

* Modify the value in DSNT DC field below.
*
* Note: &USERID below has one additional '&', which is an escape
*       character.
*
DSNT_LN         DC  A(DSNT_SIZE)  Length field of naming pattern
DSNT            DC  C'&&USERID.DBGTOOL.EQAUOPTS'
DSNT_SIZE       EQU *-DSNT        Size of data set naming pattern
*

メッセージ表示レベルの変更

CEEBXITA のメッセージ表示レベルを変更できます。 WTO メッセージ表示レベルを設定する値を以下に示します。

X'00'
いかなるメッセージも表示しない。
X'01'
エラー・メッセージと警告メッセージを表示する。
X'02'
エラー・メッセージ、警告メッセージ、および診断メッセージを表示する。

デフォルト値 (hlq.SEQAMOD のロード・モジュールに入っている) は X'00' です。

メッセージ表示レベルをカスタマイズするには、サンプル・ユーザー出口にある MSGS_SW DC ステートメントの値を変更します。例えば、次のようになります。

* The following switch is to control WTO message display level.
*
*   x'00' - no messages
*   x'01' - error and warning messages
*   x'02' - error, warning, and diagnostic messages
*
MSGS_SW         DC  X'00'         message level
*

CEEBXITA の 2 つのリンク方法の比較

以下の方法で CEEBXITA ユーザー出口をリンクできます。

このユーザー出口をアプリケーション・プログラムへリンクし、同時に、アプリケーションの実行のロード・モジュール検索パス内にある 言語環境プログラム ランタイム・ロード・モジュールの専用コピーにもリンクした場合は、アプリケーション・ロード・モジュール内のユーザー出口のコピーが使用されます。

アプリケーション・プログラムへの CEEBXITA ユーザー出口のリンク

CEEBXITA ユーザー出口をアプリケーション・プログラムにリンクすることを選択した場合は、次のサンプル JCL を使用してください。これは、ユーザー出口をプログラム TESTPGM とリンクします。ユーザー出口をカスタマイズして専用ライブラリーに配置した場合、最初の SYSLIB DD ステートメントのデータ名 (hlq.SEQAMOD) を、変更したユーザー出口ロード・モジュールが含まれるデータ・セット名で置換します。

//SAMPLELK JOB ,                                                    
// MSGCLASS=H,TIME=(,30),MSGLEVEL=(2,0),NOTIFY=&SYSUID,REGION=0M    
//*                                                                 
//LKED    EXEC PGM=HEWL,REGION=4M,                                  
//             PARM='CALL,XREF,LIST,LET,MAP,RENT'                   
//SYSLMOD  DD DISP=SHR,DSN=USERID.OUTPUT.LOAD                       
//SYSPRINT DD DISP=OLD,DSN=USERID.OUTPUT.LINKLIST(TESTPGM)          
//SYSUT1   DD  UNIT=SYSDA,SPACE=(1024,(200,20))                     
//*                                                                 
//SYSLIB   DD DISP=SHR,DSN=hlq.SEQAMOD                             
//         DD DISP=SHR,DSN=CEE.SCEELKED                             
//*                                                                 
//OBJECT   DD DISP=SHR,DSN=USERID.INPUT.OBJECT                      
//SYSLIN   DD *                                                     
     INCLUDE OBJECT(TESTPGM)                                        
     INCLUDE SYSLIB(EQADICXT)                                       
     NAME TESTPGM(R)                                               
/*   

言語環境プログラム ランタイム・モジュールの専用コピーへの CEEBXITA ユーザー出口のリンク

言語環境プログラムのランタイム・ロード・モジュールの専用コピーをカスタマイズすることを選択した場合は、確実にそれらのロード・モジュールの専用コピーが、使用するランタイム環境内の CEE.SCEERUN のシステム・コピーより前に配置されるようにしなければなりません。

次の表に、各環境に必要な 言語環境プログラム ランタイム・ロード・モジュールとユーザー出口を示します。

表 16. さまざまな環境に必要となる 言語環境プログラム ランタイム・ロード・モジュールとユーザー出口
環境 ユーザー出口名 CEE ロード・モジュール
次のタイプの DB2 ストアード・プロシージャーは、WLM 確立のアドレス・スペースで実行されます。
  • タイプ MAIN
  • タイプ SUB (call_sub 関数により呼び出されます1)
EQADDCXT CEEPIPI
IMS TM および BTS EQADICXT CEEBINIT
バッチ EQADBCXT CEEBINIT
注:
  1. この場合、言語環境プログラム バージョン 1.10 からバージョン 1.12 では APAR PM15192 用の PTF をインストールする必要があります。

サンプル hlq.SEQASAMP(EQAWLCEE) を編集して実行し、これらの更新された言語環境プログラム・ランタイム・ロード・モジュールを作成します。通常、これは Debug Tool をインストールするシステム・プログラマーが行います。 サンプルは以下のロード・モジュール・データ・セットを作成します。

それらのモジュール (CEEPIPI または CEEBINIT) に影響を及ぼす保守を言語環境プログラムに適用する場合、または新しいレベルの言語環境プログラムに移行する場合は、サンプルを再実行してそれらのモジュールの専用コピーを再ビルドする必要があります。

呼び出し方法 E を使用する場合、Debug Tool Utilities の ISPF パネルのオプション 8 「バッチ・デバッグ用 JCL (JCL for Batch Debugging)」では hlq.BATCH.SCEERUN が使用されます。

TEST ランタイム・オプション・データ・セットの作成と管理

TEST ランタイム・オプション・データ・セットは、言語環境プログラム・ランタイム・オプションが含まれている MVS™ データ・セットです。Debug Tool 言語環境プログラムのユーザー出口 (EQADDCXT、EQADICXT、および EQADBCXT) は、「Debug Tool カスタマイズ・ガイド」の『命名パターンの変更』に記載されている命名パターンに基づいてこのデータ・セットの名前を構成しています。

このデータ・セットは、次のいずれかの方法で作成できます。

端末インターフェース・マネージャー (TIM) を使用した TEST ランタイム・オプション・データ・セットの作成と管理

始める前に、端末インターフェース・マネージャー (TIM) へのログインに使用するユーザー ID に、TEST ランタイム・オプション・データ・セットの読み取りと書き込みを行う権限があることを確認してください。

端末インターフェース・マネージャーを使用して TEST ランタイム・オプション・データ・セットを作成するには、以下の手順を実行します。

  1. 端末インターフェース・マネージャーにログオンします。
  2. DEBUG TOOL 端末インターフェース・マネージャー (DEBUG TOOL TERMINAL INTERFACE MANAGER)」パネルで、 PF10 を押します。
  3. * TEST ランタイム・オプション・データ・セットの指定 (Specify TEST Run-time Option Data Set) *」パネルで、「データ・セット名 (Data Set Name)」フィールドに、システム管理者が指定した命名パターンに従ったデータ・セットの名前を入力します。データ・セットがカタログされていない場合は、ボリューム通し番号を入力します。
  4. Enter を押します。端末インターフェース・マネージャーがデータ・セットを検出できない場合は、「* TEST ランタイム・オプション・データ・セットの割り振り (Allocate TEST Run-time Option Data Set) *」パネルが表示されます。データ・セットに割り振りパラメーターを指定し、Enter を押します。端末インターフェース・マネージャーによりデータ・セットが作成されます。
  5. * TEST ランタイム・オプション・データ・セットの編集 (Edit TEST Run-time Option Data Set) *」パネルで、以下の変更を行います。
    プログラム名 (Program name(s))
    デバッグする最大 8 個のプログラムの名前を指定します。特定の名前 (EMPLAPP など)、ワイルドカード文字 (*) を指定した名前、またはワイルドカード文字のみ (すべての言語環境プログラムのプログラムのデバッグ) を指定できます。
    テスト・オプション (Test Option)
    TEST または NOTEST のどちらのランタイム・オプションを使用するかを指定します。
    テスト・レベル (Test Level)
    使用する TEST レベル ALL、ERROR、または NONE を指定します。
    コマンド・ファイル (Commands File)
    コマンド・ファイルを使用する場合は、「Debug Tool リファレンスおよびメッセージ」の『TEST ランタイム・オプションの構文』トピックの『commands_file_designator』セクションに記載されている形式でコマンド・ファイルの名前を指定します。
    プロンプト・レベル (Prompt Level)
    PROMPT または NOPROMPT のどちらを使用するかを指定します。
    設定ファイル (Preferences File)
    設定ファイルを使用する場合は、「Debug Tool リファレンスおよびメッセージ」の『TEST ランタイム・オプションの構文』トピックの『preferences_file_designator』セクションに記載されている形式で設定ファイルの名前を指定します。
    EQAOPTS ファイル (EQAOPTS File)
    Debug Tool で実行時に EQAOPTS コマンドを実行したい場合は、EQAOPTS ファイルの名前を完全修飾データ・セット名として指定します。
    その他のランタイム・オプション (Other run-time options)
    その他の言語環境プログラム・ランタイム・オプションを入力します。
  6. 端末インターフェース・マネージャーで、使用するセッション・タイプ (デバッグ・モードおよび表示情報) を指定する TEST ランタイム・オプションの一部が「現在のデバッグ表示情報 (Current debug display information)」フィールドに表示されます。 セッション・タイプを変更するには、次のステップを実行してください。
    1. PF9 を押します。
    2. セッション・タイプの変更 (Change session type)」パネルで、次のいずれかのオプションを選択します。
      Debug Tool 端末インターフェース・マネージャーを使用したフルスクリーン・モード (Full-screen mode using the Debug Tool Terminal Interface Manager)
      端末インターフェース・マネージャーにログオンして、プログラムをデバッグするために使用するユーザー ID を「ユーザー ID (User ID)」フィールドに入力します。
      リモート・デバッグ・モード (Remote debug mode)
      リモート・デバッガーのデーモンの「アドレス (Address)」フィールドに IP アドレスを入力し、「ポート (Port)」フィールドにポート番号を入力します。
    3. (オプション) Enter を押します。端末インターフェース・マネージャーにより変更が受け入れられ、パネルが最新表示されます。
    4. PF4 を押します。端末インターフェース・マネージャーに「* TEST ランタイム・オプション・データ・セットの編集 (Edit TEST Run-time Option Data Set) *」パネルが表示され、「現在のデバッグ・セッション・タイプのストリング (Current debug session type string):」に次のいずれかのストリングが表示されます。
      • VTAM%userid (Debug Tool 端末インターフェース・マネージャーを使用したフルスクリーン・モード (Full-screen mode using the Debug Tool Terminal Interface Manager) を選択した場合。
      • TCPIP&IP_address%port (リモート・デバッグ・モード (Remote debug mode) を選択した場合。
  7. PF4 を押して TEST ランタイム・オプション・データ・セットへの変更を保存し、端末インターフェース・マネージャーのメイン画面に戻ります。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

Debug Tool Utilities を使用した TEST ランタイム・オプション・データ・セットの作成と管理

Debug Tool Utilities を使用して TEST ランタイム・オプション・データ・セットを作成するには、以下の手順を実行します。

  1. Debug Tool Utilities を開始し、オプション 6、「Debug Tool ユーザー出口データ・セット (Debug Tool User Exit Data Set)」を選択します。
  2. 新規または既存のデータ・セットの名前を入力します。名前が命名パターンと一致していることを確認してください。命名パターンが分からない場合は、システム管理者にお問い合わせください。以下の規則に留意してください。
  3. 残りのフィールドに、使用する TEST ランタイム・オプションとデバッグする最大 8 個の追加プログラムの名前を入力します。