z/OS 일괄처리 및 CICS를 위해 한 번만 생성

z/OS® 일괄처리를 위해 생성하는 경우 준비된 로드 모듈이 z/OS 배치 또는 CICS®에서 실행됩니다. 런타임에 적합한 EGL 모듈이 선택되었는지 확인하기 위해 생성에서 DUALMODE 기호 매개변수를 사용해야 합니다.

다음은 기타 고려사항입니다.
  • CICS에서 코드가 실행되는 경우 트랜잭션은 DUALMODE를 사용하지 않는 EGL CICS 기본 프로그램 또는 비생성 CICS 프로그램에서 시작되어야 합니다. 이후에는 사용자의 로직에서 DUALMODE를 사용하는 EGL 피호출 프로그램 또는 라이브러리, z/OS CICS용으로 생성된 EGL 프로그램, 비생성 프로그램을 모두 호출할 수 있습니다.
  • DUALMODE를 사용하는 프로그램에서는 CICS 스토리지 보호의 사용이 허용되지만 파일 I/O는 허용되지 않습니다.
  • 생성된 프로그램이 준비되었을 때 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 
    //