Debug Tool には、カスタマイズされたバージョンのLanguage Environment®のユーザー出口 (CEEBXITA) が用意されています。このユーザー出口は、言語環境プログラム初期化ロジックによって呼び出されると、TEST ランタイム・オプションを戻します。 Debug Tool は、3 つの異なる環境用にユーザー出口を提供しています。このトピックについては、システム・プログラマー専用の情報を加えて「Debug Tool カスタマイズ・ガイド」でも説明しています。
このユーザー出口は、命名パターンから構成される名前でユーザー制御データ・セットから TEST ランタイム・オプションを抽出します。命名パターンには、以下のトークンを含めることができます。
Debug Tool には、以下の 2 つの形式でユーザー出口が用意されています。
Debug Tool には、以下のユーザー出口が用意されています。
| 環境 | ユーザー出口名 |
|---|---|
| WLM で確立されたアドレス・スペース内で実行される、タイプ MAIN の DB2® ストアード・プロシージャー1 | EQADDCXT |
| IMS™ TM および BTS2 | EQADICXT |
| バッチおよび BTS | EQADBCXT |
各ユーザー出口は、以下のいずれかの方法で使用できます。
それぞれの方法の利点と欠点について詳しくは、CEEBXITA の 2 つのリンク方法の比較を参照してください。
言語環境プログラムのユーザー出口を使用するためにプログラムを準備するには、以下の作業を行います。
hlq.SEQASAMP にあるサンプル・アセンブラー・ユーザー出口を編集すれば、 以下の作業のいずれかを行うことにより、命名パターンまたはメッセージ表示レベルをカスタマイズできます。
| ユーザー出口名 | USERMOD 名 |
|---|---|
| EQADDCXT | EQAUMODC |
| EQADICXT | EQAUMODD |
| EQADBCXT | EQAUMODB |
TEST ランタイム・オプションを持つデータ・セットの命名パターンは、順次データ・セット名の形式になっています。オプションで、&USERID トークンを指定できます。これは Debug Tool によって現行ユーザーのユーザー ID に置換されます。また、&PGMNAME トークンを追加することもでき、これは、Debug Tool によってメインプログラム (ロード・モジュール) の名前に置き換えられます。
ユーザー ID の先頭文字は名前修飾子には無効な場合があります。 ユーザー ID の接頭部文字として機能する文字を &USERID トークンの前に連結できます。例えば、トークンの前に文字 "P" を付けて、P&USERID とすることができます。P は、&USERID が現行ユーザー ID で置き換えられた後に有効になる名前修飾子です。
デフォルトの命名パターンは &USERID.DBGTOOL.EQAUOPTS です。 これは、hlq.SEQAMOD で提供されるロード・モジュール内のパターンです。
次の表に、命名パターンと Debug Tool がトークンを値に置き換えた後の対応するデータ・セット名の例を示します。
| 命名パターン | ユーザー 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 メッセージ表示レベルを設定する値を以下に示します。
デフォルト値 (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 ユーザー出口をリンクできます。
このユーザー出口をアプリケーション・プログラムへリンクし、同時に、アプリケーションの実行のロード・モジュール検索パス内にある 言語環境プログラム ランタイム・ロード・モジュールの専用コピーにもリンクした場合は、アプリケーション・ロード・モジュール内のユーザー出口のコピーが使用されます。
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)
/*
言語環境プログラムのランタイム・ロード・モジュールの専用コピーをカスタマイズすることを選択した場合は、確実にそれらのロード・モジュールの専用コピーが、使用するランタイム環境内の CEE.SCEERUN のシステム・コピーより前に配置されるようにしなければなりません。
次の表に、各環境に必要な 言語環境プログラム ランタイム・ロード・モジュールとユーザー出口を示します。
| 環境 | ユーザー出口名 | CEE ロード・モジュール |
|---|---|---|
| WLM で確立されたアドレス・スペース内で実行される、タイプ MAIN の DB2 ストアード・プロシージャー | EQADDCXT | CEEPIPI |
| IMS TM および BTS | EQADICXT | CEEBINIT |
| バッチ | EQADBCXT | CEEBINIT |
サンプル hlq.SEQASAMP(EQAWLCEE) を編集して実行し、これらの更新された言語環境プログラム・ランタイム・ロード・モジュールを作成します。通常、これは Debug Tool をインストールするシステム・プログラマーが行います。 サンプルは以下のロード・モジュール・データ・セットを作成します。
それらのモジュール (CEEPIPI または CEEBINIT) に影響を及ぼす保守を言語環境プログラムに適用する場合、または新しいレベルの言語環境プログラムに移行する場合は、サンプルを再実行してそれらのモジュールの専用コピーを再ビルドする必要があります。
呼び出し方法 E を使用する場合、Debug Tool Utilities の ISPF パネルのオプション 8 「バッチ・デバッグ用 JCL (JCL for Batch Debugging)」では hlq.BATCH.SCEERUN が使用されます。
TEST ランタイム・オプション・データ・セットには、プログラム名リストの値、TEST ランタイム・オプション・ストリング、 およびその他の 言語環境プログラム ランタイム・オプション・ストリングが含まれています。 このデータ・セットを作成および管理するには、Debug Tool Utilities の ISPF パネルのオプション 6「Debug Tool User Exit Data Set」を使用します。 呼び出し方法の E または A を使用する場合は、オプション 8 「バッチ・デバッグ用 JCL (JCL for Batch Debugging)」でもこのデータ・セットが使用されます。