Einmalige Generierung für z/OS Batch und CICS
Bei der Generierung für z/OS Batch können Sie sicherstellen, dass das vorbereitete Lademodul in z/OS Batch oder CICS ausgeführt wird. Die Generierung erfordert die Verwendung des symbolischen Parameters DUALMODE, um sicherzustellen, dass die entsprechenden EGL-Module zur Laufzeit ausgewählt werden.
Weitere Hinweise:
- Bei Ausführung des Codes unter CICS muss die Transaktion mit einem EGL-CICS-Hauptprogramm (das nicht DUALMODE verwendet) oder mit einem nicht generierten CICS-Programm beginnen. Anschließend kann die Logik eine der folgenden Arten von Code aufrufen: von EGL aufgerufene Programme oder Bibliotheken, die DUALMODE verwenden, für z/OS CICS generierte EGL-Programme oder nicht generierte Programme.
- Die Verwendung des CICS-Speicherschutzes ist in Programmen, die DUALMODE verwenden, zulässig, die Verwendung der Datei-E/A jedoch nicht.
- SQL-E/A wird unterstützt, sofern bei der Vorbereitung des generierten Programms eine zusätzliche Linkbearbeitung für das CICS-Lademodul erfolgt. Die Linkbearbeitung ersetzt das Batch-DB2-Schnittstellenmodul DSNELI durch das erforderliche CICS DB2-Schnittstellenmodul DSNCLI.
Wenn Sie auf DB2 zugreifen und das DB2-Schnittstellenmodul ersetzen müssen, können Sie einen Linkbearbeitungsabschnitt erstellen und diesen über den Builddeskriptor referenzieren, den Sie für die z/OS Batch-Generierung verwenden. Der Linkbearbeitungsabschnitt kann wie folgt aussehen (wobei
der Text für jede Zeile in Spalte 2 beginnt):
ENTRY %EZEALIAS%
REPLACE DSNELI
INCLUDE INPUT(%EZEALIAS%)
INCLUDE SYSLIB(DSNCLI)
NAME %EZEALIAS%(R)
Das Hinzufügen und Referenzieren dieses Linkbearbeitungsabschnitts resultiert in der Ausführung eines Schritts für erneute Verlinkung, der sich in den Build-Scripts FDABCL und FDAPCL für z/OS Batch befindet. Die Build-Scripts müssen jedoch wie folgt geändert werden:
- Rufen Sie das Build-Script FDABCL auf, das Programme vorbereitet, die nicht auf DB2 zugreifen, und ersetzen Sie den gesamten Schritt für erneute Verlinkung (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 ENDIFDiese Änderung verhindert, dass Nicht-DB2-Programme erneut verlinkt werden.
- Rufen Sie das Build-Script FDAPCL auf, das Programme vorbereitet, die auf DB2 zugreifen. Referenzieren Sie in diesem Script die CICS-Zielladebibliothek und die Eingabedatei. Beispiel:
//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 //