z/OS バッチおよび CICS 用に 1 回生成
z/OS® バッチ用に生成する場合、準備済みロード・モジュールが z/OS バッチまたは CICS® で実行されるようにすることができます。生成では、実行時に適切な EGL モジュールが選択されるように、DUALMODE シンボリック・パラメーターを使用する必要があります。
以下に、その他の考慮事項を示します。
- コードを CICS で実行している場合、トランザクションは、DUALMODE を使用しない EGL CICS メインプログラム、または非生成 CICS プログラムによって開始される必要があります。その後、DUALMODE を使用する EGL 呼び出し先プログラムまたは EGL ライブラリー、z/OS CICS 用に生成された EGL プログラム、または非生成プログラムのいずれかの種類のコードを、ユーザーのロジックで呼び出すことができます。
- DUALMODE を使用するプログラムでは CICS ストレージ保護の使用が許可されますが、ファイル入出力は許可されません。
- 生成されたプログラムの準備時に、CICS ロード・モジュールのために追加のリンク・エディットを行う場合は、SQL I/O がサポートされます。リンク・エディットによって、DSNELI という名前のバッチ DB2® インターフェース・モジュールが、DSNCLI という名前の必須の CICS DB2 インターフェース・モジュールで置き換えられます。
DB2 にアクセスしていて、DB2 インターフェース・モジュールを置き換える必要がある場合、リンク・エディット・パーツを作成し、z/OS バッチ生成に使用するビルド記述子からそのパーツを参照することができます。リンク・エディット・パーツは、開始位置が列 2 である各行にテキストがあり、次のようになります。
ENTRY %EZEALIAS%
REPLACE DSNELI
INCLUDE INPUT(%EZEALIAS%)
INCLUDE SYSLIB(DSNCLI)
NAME %EZEALIAS%(R)
そのリンク・エディット・パーツを追加して参照すると、z/OS バッチ用の FDABCL および FDAPCL ビルド・スクリプトにある再リンク・ステップが実行されます。ただし、次のようにビルド・スクリプトを変更する必要があります。
- DB2 にアクセスしないプログラムを準備する FDABCL ビルド・スクリプトに移動して、既存の再リンク (L2) ステップをすべて置き換えます。
//X IF &HASLKG..EQ.YES //L2 EXEC PGM=IEFBR14 //EZELKG DD CCUEXT=LKG,DISP=(NEW,DELETE), // UNIT=SYSDA,SPACE=(TRK,(10,10)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200) //X ENDIFこの変更により、非 DB2 プログラムに対して再リンクが行われなくなります。
- DB2 にアクセスするプログラムを準備する FDAPCL ビルド・スクリプトに移動します。このスクリプトで、次に示されているように、ターゲット CICS ロード・ライブラリーと INPUT ファイルを参照します。
//X IF &HASLKG..EQ.YES //L2 EXEC PGM=IEWL,REGION=&RGN, // PARM='RENT,REUS,LIST,XREF,MAP,AMODE(&AMODE),RMODE(&RMODE)' //SELALMD DD DISP=SHR,DSN=&ELA..SELALMD // DD DISP=SHR,DSN=&ELA..SELAMOD2 //SYSLIB DD DISP=SHR,DSN=&DFHLOAD // DD DISP=SHR,DSN=&DSNLOAD //SYSLIN DD CCUEXT=LKG,DISP=(NEW,DELETE), // UNIT=SYSDA,SPACE=(TRK,(10,10)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200) //* //* SYSLMOD CHANGED TO SPECIFY TARGET CICS LOAD LIBRARY //* //SYSLMOD DD DISP=SHR,DSN=&CGHLQ..ZOSCICS.LOAD //SYSPRINT DD CCUEXT=&CCUEXTL,DISP=(NEW,DELETE), // UNIT=VIO,SPACE=(TRK,(30,10)), // DCB=(RECFM=FB,LRECL=121,BLKSIZE=1210) //SYSUT1 DD SPACE=(1024,(&WSPC,&WSPC)),UNIT=VIO //*PROVIDE ANY CUSTOM DD STATEMENTS HERE //* //* INPUT REFERENCES OUTPUT FILE FROM PREVIOUS LINK STEP //* //INPUT DD DISP=SHR,DSN=&CGHLQ..&SYSTEM..LOAD //X ENDIF //