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
//*
//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)
DUMP(IC%GRPINDX)
Skeleton JCL in IMS.JOBS(SET5)
//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)
//*
//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
//*
//* 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
Related topic