Rebuilding indexes
This example shows the recommended JCL for rebuilding indexes by using the Index Rebuild function.
Refer to Recovering-indexes for more information about this interface.
//*-----------------------------------------------------
//* RECOVER DATABASE USING SECONDARY INDEX UTILITY
//*-----------------------------------------------------
//RECOVER EXEC PGM=RVPUMAIN,REGION=4096K
//STEPLIB DD DISP=SHR,DSN=BMC.xxx.LOAD
// DD DISP=SHR,DSN=IMS.RESLIB
//DFSRESLB DD DISP=SHR,DSN=IMS.RESLIB
//IMS DD DISP=SHR,DSN=IMS.DBDLIB
//AMSPDS DD DISP=SHR,DSN=BMC.AMSPDS
//SORTWK01 DD UNIT=3380,SPACE=(CYL,(1,1))
//SORTWK02 DD UNIT=3380,SPACE=(CYL,(1,1))
//SORTWK03 DD UNIT=3380,SPACE=(CYL,(1,1))
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//RVPSYSIN DD *
GLBL DBRC(Y) DBALLOC(Y) DSALLOC(Y) ICALLOC(Y) -
ICPREF(userpref)
GROUP DUMP(*) ACCUM(*) LOG(*) IC(*)
REC DBD(PRIMDBD) IDCAMS(*) BLDINDEX(Y) ... <==SIU
...other RECOVERY PLUS control statements
//* RECOVER DATABASE USING SECONDARY INDEX UTILITY
//*-----------------------------------------------------
//RECOVER EXEC PGM=RVPUMAIN,REGION=4096K
//STEPLIB DD DISP=SHR,DSN=BMC.xxx.LOAD
// DD DISP=SHR,DSN=IMS.RESLIB
//DFSRESLB DD DISP=SHR,DSN=IMS.RESLIB
//IMS DD DISP=SHR,DSN=IMS.DBDLIB
//AMSPDS DD DISP=SHR,DSN=BMC.AMSPDS
//SORTWK01 DD UNIT=3380,SPACE=(CYL,(1,1))
//SORTWK02 DD UNIT=3380,SPACE=(CYL,(1,1))
//SORTWK03 DD UNIT=3380,SPACE=(CYL,(1,1))
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//RVPSYSIN DD *
GLBL DBRC(Y) DBALLOC(Y) DSALLOC(Y) ICALLOC(Y) -
ICPREF(userpref)
GROUP DUMP(*) ACCUM(*) LOG(*) IC(*)
REC DBD(PRIMDBD) IDCAMS(*) BLDINDEX(Y) ... <==SIU
...other RECOVERY PLUS control statements
The following JCL shows how to recover secondary indexes that do not have a real input image copy; they have a virtual image copy. When the input image copy data set name matches the value specified with the SIUDSN keyword, the Recovery utility invokes the Index Rebuild function (if it is available) to rebuild secondary indexes.
//*-----------------------------------------------------
//* RECOVER A SECONDARY INDEX ONLY
//*-----------------------------------------------------
//RECOVER EXEC PGM=RVPUMAIN,REGION=4096K
//STEPLIB DD DISP=SHR,DSN=BMC.xxx.LOAD
// DD DISP=SHR,DSN=IMS.RESLIB
//DFSRESLB DD DISP=SHR,DSN=IMS.RESLIB
//IMS DD DISP=SHR,DSN=IMS.DBDLIB
//AMSPDS DD DISP=SHR,DSN=BMC.AMSPDS
//SORTWK01 DD UNIT=3380,SPACE=(CYL,(1,1))
//SORTWK02 DD UNIT=3380,SPACE=(CYL,(1,1))
//SORTWK03 DD UNIT=3380,SPACE=(CYL,(1,1))
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//RVPSYSIN DD *
GLBL DBRC(Y) DBALLOC(Y) DSALLOC(Y) -
SIUDSN('YOUR.SIUDUMMY.DSN')
GROUP DUMP(*) LOG(*) ACCUM(*)
REC DBD(DBPAA) DDN(DDPAA) /*PRIMARY DB */
REC DBD(DBPBB) DDN(DDPBB) /*PRIMARY DB */
REC DBD(DBSCC) DDN(DDSCC) /*SECONDARY INDEX DB
*/ REC ...
//* RECOVER A SECONDARY INDEX ONLY
//*-----------------------------------------------------
//RECOVER EXEC PGM=RVPUMAIN,REGION=4096K
//STEPLIB DD DISP=SHR,DSN=BMC.xxx.LOAD
// DD DISP=SHR,DSN=IMS.RESLIB
//DFSRESLB DD DISP=SHR,DSN=IMS.RESLIB
//IMS DD DISP=SHR,DSN=IMS.DBDLIB
//AMSPDS DD DISP=SHR,DSN=BMC.AMSPDS
//SORTWK01 DD UNIT=3380,SPACE=(CYL,(1,1))
//SORTWK02 DD UNIT=3380,SPACE=(CYL,(1,1))
//SORTWK03 DD UNIT=3380,SPACE=(CYL,(1,1))
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//RVPSYSIN DD *
GLBL DBRC(Y) DBALLOC(Y) DSALLOC(Y) -
SIUDSN('YOUR.SIUDUMMY.DSN')
GROUP DUMP(*) LOG(*) ACCUM(*)
REC DBD(DBPAA) DDN(DDPAA) /*PRIMARY DB */
REC DBD(DBPBB) DDN(DDPBB) /*PRIMARY DB */
REC DBD(DBSCC) DDN(DDSCC) /*SECONDARY INDEX DB
*/ REC ...
Related topic
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*