The following procedure describes the method to reload backup files that are on a tape that ASM2 has scratched but that has not been reused.
You may be able to use IEBGENER and BLP processing to copy a file from the tape. To find the file on the tape, multiply the file number by 3 then subtract 1. For example, to restore file number 17:
(17 * 3) - 1 = 50
However, if the file was compressed by ASM2, then no standard data movers can be used. Only ASM2 data movers can be used. The following is the procedure to reload the datasets from the BACKUP copy of the IPC.
//STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEF CL ( - NAME(ASM.ASM242.ASM2IPC) - UNIQUE FREESPACE(0 0) - CISZ(4096) KEY(80 8) - RECORDSIZE(512 4089) - SHAREOPTIONS(3 3)) - DATA ( - NAME(ASM.ASM242.ASM2IPC.DATA) - CYLINDERS(70 5) - VOLUME(TSO76A)) - INDEX ( - NAME(ASM.ASM242.ASM2IPC.INDEX) - CYLINDERS(25 5) - VOLUME(TSO76A) - CISZ(4096)) //DEFINE EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=(*) //SYSIN DD * DEFINE CLUSTER ( - NAME(ASM.ASM242.ASM2JNL) - CISZ(4096) - RECORDSIZE(256 4089) - REUSE - SHAREOPTIONS(3 3) - NONINDEXED - ) - DATA ( - NAME(ASM.ASM242.ASM2JNL.INDEX) - CYLINDERS(25 5) - VOLUME(TSO76A) - )Be sure to make the appropriate changes to fit your environment.
//$$$$$$@ EXEC PGM=M2PCBRU //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //ISPMLIB DD DISP=SHR,DSN=your.CAIISPM //ASM2IPC DD DISP=SHR,DSN=the new .ASM2IPC //ASM2JNL DD DISP=SHR,DSN=the new .ASM2JNL //SYSIN DD * ANALYZE CATID(ASM2)
//STEP1 EXEC PGM=IDCAMS //SYSUT1 DD DISP=SHR,DSN=backup copy of IPC .ASM2IPC //SYSUT2 DD DISP=SHR,DSN=your new .ASM2IPC //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO IFILE(SYSUT1) OFILE(SYSUT2) NOREPLACE ELIMIT(9999)
// jobcard //ASM2CMDU PROC IDX='prefix ', // CLASS='*', // WKUNIT='SYSDA', // PRTBLK=2660 //************************************************************ //* * //* CA-ASM2 BATCH COMMAND PROCEDURE FOR RELEASE 4.2 * //* * //* NOTE THAT ANY CA-ASM2 COMMAND MAY BE ENTERED * //* IN THIS PROCEDURE. * //* This is an instream proc sample * //************************************************************ //ASM2CMDU EXEC PGM=$ASMBMON,REGION=4096K //*$OPTIONZ DD DUMMY //SYSPRINT DD SYSOUT=(&CLASS), // DCB=(RECFM=FBA,LRECL=133,BLKSIZE=&PRTBLK) //SYSUDUMP DD SYSOUT=(&CLASS) // DCB=(RECFM=FBA,LRECL=133,BLKSIZE=&PRTBLK) //SYSUDUMP DD SYSOUT=(&CLASS) //ABNLDUMP DD DUMMY //ASM00000 DD SYSOUT=(&CLASS), // DCB=(RECFM=FA,LRECL=121,BLKSIZE=121) //AMSOUT DD SYSOUT=(&CLASS) //$RAORD DD DSN=&TEMPRA,UNIT=&WKUNIT, // SPACE=(TRK,(1,1)),DISP=(,DELETE,DELETE), // DCB=(RECFM=FB,LRECL=260,BLKSIZE=260) //$RBORD DD DSN=&TEMPRB,UNIT=&WKUNIT, // SPACE=(TRK,(1,1)),DISP=(,DELETE,DELETE), // DCB=(RECFM=FB,LRECL=260,BLKSIZE=260) //$RXQUEUE DD DISP=SHR,DSN=your .ARCH.$RAQUEUE //ARCHBKLG DD DISP=SHR,DSN=your .ARCH.$ARQUEUE //ASM2IPC DD DISP=SHR,DSN=your new .ASM2IPC //ASM2JNL DD DISP=SHR,DSN=your new .ASM2JNL //ISPMLIB DD DISP=SHR,DSN=your .CAIISPM //$INPUT DD UNIT=&WKUNIT, // SPACE=(TRK,(1,1)),DCB=(RECFM=F,BLKSIZE=80) // PEND //STEP01 EXEC ASM2CMDU //SYSIN DD * $RA DSNAME('dsname ')
$SOFTWAR DC BL1'10101001' | V set this digit to 0, a 1 equals on, a 0 equals off