EGL デバッガーを使用した、ストアード・プロシージャー・リンケージでの IMS、ZOSBATCH、および DL/I のデバッグ
リモートの IMS™ プログラムまたは ZOSBATCH プログラムを呼び出す EGL プログラムをデバッグできます。
デバッグするプログラムは、SQL データベース、DL/I データベース、またはその両方にアクセスできます。同様に、リモート IMS または ZOSBATCH 呼び出し先プログラムは、SQL データベース、DL/I データベース、またはその両方にアクセスできます。デバッガーは、ホストに対するデータベース呼び出しを行い、ホスト上に生成されたプログラムに対する呼び出しも行いますが、その他の場合は、ローカル・クライアント・システムでコードを解釈します。
- リモート呼び出し先プログラムは、IMSVS 環境、IMSBMP 環境、または ZOSBATCH 環境用に生成された EGL プログラムである必要があります。これらの環境で実行する非 EGL プログラムもサポートされます。CICS® 上の DL/I にアクセスするリモート・プログラムの呼び出しは、サポートされません。
- DL/I データベース PCB のみがサポートされます。呼び出し側プログラムおよび呼び出し先プログラムは、I/O PCB、TP PCB、または GSAM PCB にアクセスできません。ワークステーションでデバッグするプログラムでは、デバッグを目的として生成時に I/O、TP、または GSAM PCB にシリアル・レコードを関連付ける場合は、代わりに fileType が seqws であるリソース関連を使用してワークステーション上の順次ファイルにアクセスします。
- データベース PCB のみを呼び出し先プログラムに渡すことができます。呼び出し先プログラムにその他のタイプの PCB や dliLib.psbData を渡すことはできません。
- テキスト UI プログラムに対するリモート呼び出しはサポートされません。
- リモート・プログラムへの転送、およびトランザクションへの転送はサポートされません。
- DL/I 呼び出し CHKP、GSCD、PCB、TERM、および XRST はサポートされません。
- IMS PSB 内のすべてのデータベース PCB に名前を付け、名前が EGL PSB 内の対応する pcbName プロパティーに一致する必要があります。
- remoteComType を STOREDPROCEDURE に設定してリンケージ・オプション・パーツを構成します。これにより、ホストに対する呼び出しがストアード・プロシージャーを使用して送信され、トランザクションに参加し、DL/I で指定された PSB にアクセスできるようになります。
- ビルド記述子オプション linkage が作成したリンケージ・オプション・パーツを指すようにデバッグ・ビルド記述子を構成します。
- ホスト環境を構成します。
- ローカル・ワークスペースを構成します。
- ホスト上で EGL DL/I デバッグ・サーバーを始動します。ホスト環境およびローカル・ワークスペースの構成については、このセクションに記載されています。デバッグ・サーバーの開始について詳しくは 、「z/OS® ホストでの DL/I デバッグ・サーバーの始動」を参照してください。
ホスト環境の構成
- 以下のアプリケーションが使用されていることを確認してください。
- 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 インターフェースをサポートできる最小のレベルです。
- AIBTDLI ロード・モジュールおよび CBLTDLI ロード・モジュールの EGL バージョン (ELADL1) を作成します。このステップは、デバッグ・セッションが DL/I データベースにアクセスするプログラムに対するリモート呼び出しを実行する場合にのみ必要です。これらのモジュールのこの EGL バージョンにより、呼び出し先プログラムがワークステーション上のデバッガー・セッションと同じ作業単位で実行されるようになります。詳しくは、このトピックの『AIBTDLI および CBLTDLI の EGL バージョンの作成』を参照してください。
- DRA (Database Resource Adapter) Startup Table (ELADRA) を作成します。 詳しくは、このトピックの『DRA 始動テーブル』を参照してください。
- WLM (ワークロード・マネージャー) (ELADBWLM) を作成します。詳しくは、『ストアード・プロシージャー・リンケージのための DB2 の構成』にある『ワークロード・マネージャー』を参照してください。
- DB2 ストアード・プロシージャー (EZESP1CR および EZESP1GR) を作成します。詳しくは、『ストアード・プロシージャー・リンケージのための DB2 の構成』にある『DB2 ストアード・プロシージャー定義』を参照してください。
- PSB 情報を指定します。詳しくは、このトピックで後述する『ローカル・ワークスペースの構成』を参照してください。
- 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 デバッグ・サーバーの始動」を参照してください。
| 変更前 | 変更後 |
|---|---|
| ジョブ・カードを追加 | |
| SYSLIB | システム構成と一致するように変更する。 |
| #dbctlid | #dbctlid を、データベースの DB 制御 ID で置き換える。
この値は、imsID ビルド記述子オプションにも指定されます。
この値は、IMS の開始に使用する JCL からの値です。IMS JCL パラメーターは、次のようになります。
この例で、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)
ローカル・ワークスペースの構成
- と進み、「systemType を DEBUG に設定」オプションをクリアします。こ れにより、EGL はビルド記述子オプションのシステム・タイプを使用するようになります。
- クライアント・システムが JDBC を備えている必要があります。実際に必要な .jar ファイルは、実行している JDBC のバージョンによって異なります。
- ホストに対して正常に機能するデフォルトの JDBC DB2 接続があることを確認してください。 EGL デバッガーは、この接続を使用して DL/I にアクセスします。
- デバッグされたコードと呼び出し先プログラムの両方で DB2 データベースにアクセスする場合、デフォルトの JDBC 接続は NOAUTOCOMMIT に設定されている必要があります。
- imsID ビルド記述子オプションを、IMS サブシステム の CHAR(4) 名に設定します。
- の下に、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 プロパティーの値 (使用される場合) か、プログラム名のいずれかです。 この値は、大文字に変換されます。