Space announcement We are no longer updating this space, and you cannot comment on this space. The IMAGE COPY PLUS component is now documented in BMC AMI Backup and Recovery for IMS.

Using GENJCL


Using GENJCL with the BMC Image Copy utility is identical to using GENJCL with the IBM utilities except when recovering from a compressed image copy data set.

In this case, you need to use the Subsystem Data Set Interface. The following example shows how one of our customers generates a one-step asynchronous database recovery for a database data set group, where the input image copy is compressed.

One-step asynchronous recovery of a data set group is the required JCL. Skeleton JCL in IMS.JOBS(SET2) through Skeleton JCL in IMS.JOBS(SET5) are the supporting skeletons. JCL generated in IMS.JCLOUT(SET6) is the JCL generated by the GENJCL job.

Database recovery using the Subsystem Data Set Interface shows an example of using the Subsystem Data Set Interface with DBRC GENJCL for a database recovery.

One-step asynchronous recovery of a data set group

//IBMUSERA JOB (9999),'SET1',MSGLEVEL=1,MSGCLASS=A
//*
//GENJCL   EXEC PGM=DSPURX00,REGION=2M
//STEPLIB  DD   DSN=IMS.MDALIB,     <==DFSMDA LIBRARY
//              DISP=SHR         
//         DD   DSN=IMS.RESLIB,DISP=SHR
//JCLPDS   DD   DSN=IMS.JOBS,DISP=SHR
//JCLOUT   DD   DSN=IMS.JCLOUT(SET6),DISP=SHR
//IMS      DD   DSN=IMS.DBDLIB,DISP=SHR
//SYSPRINT DD   SYSOUT=X
//SYSUDUMP DD   SYSOUT=X
//SYSIN    DD   *
 GENJCL.USER  GROUP(GRP1) MEMBER(SET2) -
              JOB(JOBCARD) ONEJOB
 GENJCL.USER              MEMBER(SET3) NOJOB
 GENJCL.USER  GROUP(GRP1) MEMBER(SET4) NOJOB
 GENJCL.RECOV GROUP(GRP1) MEMBER(SET5) NOJOB
 /*

Skeleton JCL in IMS.JOBS(SET2)

//*
//REDEF%GRPINDX   EXEC PGM=IDCAMS
//SYSPRINT DD  SYSOUT=X
//SYSIN    DD  DSN=IMS.AMS(%DDNAME), <==IDCAMS SYSIN
//             DISP=SHR

Skeleton JCL in IMS.JOBS(SET3)

//*
//         EXEC PGM=ICPUMAIN
//STEPLIB  DD   DSN=product.LOAD,DISP=SHR
//         DD   DSN=IMS.MDALIB,     <==DFSMDA LIBRARY
//              DISP=SHR         
//         DD   DSN=IMS.RESLIB,DISP=SHR
//DFSRESLB DD   DSN=IMS.RESLIB,DISP=SHR
//IMS      DD   DSN=IMS.DBDLIB,DISP=SHR
//SYSPRINT DD   SYSOUT=X
//DFSULOG  DD   DUMMY
//PLUSLIST DD   SYSOUT=X
//PLUSOUT  DD   SYSOUT=X
//SYSUDUMP DD   SYSOUT=Y
//ICPSYSIN DD   *
  GLBL DBRC(Y) USERID(IBMUSER) PDX(BMC.PDX) -
       STATS(Y) ICALLOC(N) DBALLOC(N)

Skeleton JCL in IMS.JOBS(SET4)

REC DBD(%DBNAME) DDN(%DDNAME) ACCUM(CA%GRPINDX) -
    DUMP(IC%GRPINDX)

Skeleton JCL in IMS.JOBS(SET5)

//%DBDDN DD   DSN=%DBDSN,DISP=SHR
//IC%GRPINDX DD   DSN=%ICDSN,DISP=SHR
%DELETE (%CADSN EQ '')
//CA%GRPINDX DD   DSN=%CADSN,DISP=SHR
%ENDDEL
%DELETE (%CADSN NE '')
//CA%GRPINDX DD   DUMMY
%ENDDEL

JCL generated in IMS.JCLOUT(SET6)

//IBMUSERB JOB (9999),'JOBCARD',MSGCLASS=A
//*
//REDEF1   EXEC PGM=IDCAMS
//SYSPRINT DD   SYSOUT=X
//SYSIN    DD   DSN=IMS.AMS(PARTS),   <==IDCAMS SYSIN
//              DISP=SHR             
//*
//REDEF2   EXEC PGM=IDCAMS
//SYSPRINT DD   SYSOUT=X
//SYSIN    DD   DSN=IMS.AMS(PORDX),   <==IDCAMS SYSIN
//              DISP=SHR             
//*
//         EXEC PGM=ICPUMAIN
//STEPLIB  DD   DSN=product.LOAD,DISP=SHR
//         DD   DSN=IMS.MDALIB,       <==DFSMDA LIBRARY
//              DISP=SHR         
//         DD   DSN=IMS.RESLIB,DISP=SHR
//DFSRESLB DD   DSN=IMS.RESLIB,DISP=SHR
//IMS      DD   DSN=IMS.DBDLIB,DISP=SHR
//SYSPRINT DD   SYSOUT=X
//DFSULOG  DD   DUMMY
//PLUSLIST DD   SYSOUT=X
//PLUSOUT  DD   SYSOUT=X
//SYSUDUMP DD   SYSOUT=Y
//ICPSYSIN DD   *
  GLBL DBRC(Y) USERID(IBMUSER) PDX(BMC.PDX) -
       STATS(Y) ICALLOC(N) DBALLOC(N)
  REC DBD(PARTS) DDN(PARTS) ACCUM(CA1) DUMP(IC1)
  REC DBD(PORDX) DDN(PORDX) ACCUM(CA2) DUMP(IC2)
//PARTS DD   DSN=IMS.GRP1.PARTS,DISP=SHR
//IC1 DD   DSN=IMS.PARTS.PARTS.IC.G0001V00, -
           DISP=SHR
//CA1 DD   DUMMY
//PORDX DD   DSN=IMS.GRP1.PORDX,DISP=SHR
//IC2 DD   DSN=IMS.PORDX.PORDX.IC.G0001V00, -
           DISP=SHR
//CA2 DD   DUMMY

Database recovery using the Subsystem Data Set Interface

//RCV%STPNO EXEC PGM=DFSRRC00,PARM='UDR,DFSURDB0,%DBNAME',REGION=1300K
//*
//*     THIS JCL ORIGINATES FROM THE USER'S 'JCLPDS' LIBRARY.
//*     KEYWORDS ARE REPLACED BY THE GENJCL FUNCTION OF
//*     THE IMS DATA BASE RECOVERY Control FEATURE.
//*
//*              JCL FOR RECOVERY.
//*
//STEPLIB   DD DSN=IMS.RESLIB,DISP=SHR
//          DD DSN=product.LOAD,DISP=SHR           <== ADDED
//DFSRESLB  DD DSN=IMS.RESLIB,DISP=SHR           <== ADDED
//SYSPRINT  DD SYSOUT=A
%DELETE  (%RCNDSN1 EQ '')
//RECON1    DD DSN=%RCNDSN1,DISP=SHR
%ENDDEL
%DELETE  (%RCNDSN2 EQ '')
//RECON2    DD DSN=%RCNDSN2,DISP=SHR
%ENDDEL
%DELETE  (%RCNDSN3 EQ '')
//RECON3    DD DSN=%RCNDSN3,DISP=SHR
%ENDDEL
//IMS       DD DSN=IMS.DBDLIB,DISP=SHR
//%DBDDN    DD DSN=%DBDSN,
%DELETE  (%DBDSAM EQ 'VSAM')
//             UNIT=SYSDA,
//             VOL=SER=VOLSER,
//             SPACE=(CYL,(20,2)),
//             DISP=(NEW,KEEP),
//             DCB=BUFNO=10
%ENDDEL
%DELETE  (%DBDSAM NE 'VSAM')
//             DISP=OLD
%ENDDEL
%DELETE  (%ICDSN EQ '')
//DD1       DD DSN=%ICDSN,UNIT=%ICUNIT,          <== ADDED
//             VOL=(PRIVATE,,,,SER=(%ICVOLS)),   <== ADDED
//             LABEL=(%ICFSEQ,SL),               <== ADDED
//             DISP=(OLD,KEEP),DCB=BUFNO=10      <== ADDED
//DFSUDUMP  DD DSN=*.DD1,UNIT=AFF=DD1,           <== CHANGED
//             SUBSYS=(DBUZ,ICPEX,DD1),          <== ADDED
//             VOL=(PRIVATE,,,,SER=(%ICVOLS)),   <== REQUIRED
//             LABEL=(%ICFSEQ,SL),               <== REQUIRED
//             DISP=(OLD,KEEP)                   <== CHANGED
%ENDDEL
%DELETE  (%ICDSN NE '')
//DFSUDUMP  DD DUMMY
%ENDDEL

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*