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 ENDIF                                     

    Diese Ä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 
    //