|© 1998-2017 GSF Software LLC|
DRDMVS is an MVS utility program which processes back-up tapes created in VSE by the DrD (DoctorD or DCRABS) utility. Using DRDMVS, an OS/390 or z/OS installation can restore SAM, DAM or VSAM files from a DrD back-up tape, or list the files it contains. DoctorD is a product of B I Moyle.
DRDMVS was initially designed for VSE sites which convert to MVS and have a significant number of archive tapes in DrD format, which they may have to restore after the end of their migration, when they no longer have access to a VSE system. DRDMVS can also be used during the course of a VSE/MVS conversion to facilitate the transfer of VSE application data to MVS.
DRDMVS restores SAM, DAM and VSAM files into pre-allocated data sets. VSAM data sets must be empty, or have been DEFINEd with the REUSE option. VSAM files can be restored into non-VSAM data sets, as needed. Non-VSAM data sets must be allocated with the correct RECFM, LRECL and BLKSIZE attributes, or with RECFM=U,BLKSIZE=32760 in which case DRDMVS restores physical blocks and sets the BLKSIZE to the size of the largest block written. If the data set is allocated with RECFM=U,BLKSIZE=32760, DRDMVS checks all the data blocks for RECFM=VB records; if the file appears to be a valid RECFM=VB data set, the RECFM and LRECL attributes are set accordingly.
When VSAM clusters that were compressed with VSAMLITE in VSE are restored by DRDMVS, the data they contain is still in compressed format. If the VSAMLITE product is not available in the MVS environment, compressed data records can be decompressed using the VSAMLITE utility, an optional component of the DRDMVS package.
DRDMVS only supports DrD back-up tapes created with the following commands: SAVE=LOGICAL, SAVE=VSAM and SAVE=DATA. Processing of tapes created with other commands produces unpredictable results and is not supported.
DRDMVS support SAM, DAM, ESDS, KSDS and RRDS files. ISAM files, files which contain spanned records and VSAM-managed SAM files defined with RECFM(NOCIFMT) are not supported.
DRDMVS runs as a batch job step in the MVS environment. Its processing is controlled by a PARM and SYSIN control statements.
The PARM field can contain three parameters separated by commas: PARM=(function,ddname,erropt)
DRDMVS uses the following DD statements:
//SYSIN DD * * Restore 12/99 payroll master PROD.PAYROLL.9912, MVSPROD.PAYROLL.DEC99 * Restore 12/99 payroll ledger 'PROD PAYLEDGER 9912', MVSPROD.PAYROLL.LEDGER.DEC99
List the files contained on a DrD back-up tape, write corresponding DEFINE commands to the VSAMDEF DD statement.
//LIST EXEC PGM=DRDMVS,PARM=LIST //STEPLIB DD DSN=SYS2.DRDMVS.LOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //VSAMDEF DD SYSOUT=* VSAM DEFINE Commands //* //TAPEIN DD VOL=SER=999999,UNIT=CART,DSN='CT99.SET.1'
Restore/Rename two files from a DrD back-up tape, stop processing if any error is encountered.
//* //* Restore two files from a Dr D Backup tape //* //RESTORE EXEC PGM=DRDMVS,PARM=(RESTORE,DRDTAPE,STOP) //STEPLIB DD DSN=SYS2.DRDMVS.LOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //* //DRDTAPE DD VOL=SER=999999,UNIT=CART,DSN='CT99.SET.1' //* //SYSIN DD * CSCH.DP.COMPUTER.SCHD.SYSTEM.C, MVSPROD.BIGESDS 'DEST.D/B.PROD', MVSPROD.BIGQSAM
DRD01I PARM SPECIFIED FOR THIS RUN: 'parm' DRD02I FILE NUMBER nnn WILL BE PRINTED. DRD03I <Tape Allocation> DRD04I <SYSIN Allocation> DRD05E ** ERROR: INVALID CARD FORMAT DRD06E ** DYNAMIC ALLOCATION ERROR, RC=rc, REASON=nnnn DRD07E ** dsname COULD NOT BE OPENED, VSAM ERROR error DRD08E ** NON-EMPTY DATA SET COULD NOT BE RESET, VSAM OPEN ERROR error DRD11E RESTORE FAILED, RECORDS READ: nnn, RECORDS WRITTEN: nnn DRD12I OPTION "STOP" SPECIFIED, TERMINATING EXECUTION. DRD13I RESTORE SUCCESSFUL, RECORDS WRITTEN: nnn DRD14I BLKSIZE SET TO nnnnn DRD15I DCB ATTRIBUTES SET TO RECFM=VB,LRECL=nnnnn,BLKSIZE=nnnnn DRD18I nnn FILES WILL BE RESTORED FROM DDNAME(tape_ddn). DRD19E ** PREVIOUS ERRORS ENCOUNTERED, TERMINATING RUN WITH RC(rc) DRD21I NOW RESTORING FILE NO nnn OUT OF nnn NAME(dsname) TYPE(E|K|R|N) DRD22I DCB ATTRIBUTES USED TO RESTORE: RECFM(xxx) LRECL(nnnnn) BLKSIZE(nnnnn) DRD28E BLOCK LENGTH nnnnn NOT A MULTIPLE OF LRECL DRD29E BLOCK LENGTH nnnnn DIFFERENT FROM BDW nnnnn DRD92W FILE(nnn) NAME(dsname) NOT FOUND ON TAPE. DRD94E ERROR: RECORD NO nnnnnnn NOT A FILE HEADER; FIRST nnnn BYTES FOLLOW. DRD95E ERROR: RECORD NO nnnnnnn NOT A TAPEMARK RECORD; FIRST nnnn BYTES FOLLOW. DRD96E ERROR: RECORD NO nnnnnnn NOT A JDR.D EOF RECORD; FIRST nnnn BYTES FOLLOW. DRD98I END OF PROCESSING; SUCCESSFUL RESTORES: nnn, FAILED RESTORES: nnn, STEP RETURN-CODE: rc DRD99I EOJ Statistics
After restoring a VSAM KSDS which was compressed with the VSAMLITE product in VSE, the records it contains must be decompressed with the VSAMLITE utility which is installed in the DRDMVS load library.
VSAMLITE's JCL requirements are minimal, as it requires no PARM or control statements. VSAMLITE OPENs the compressed VSAM KSDS using the SYSUT1 DDname and writes messages to SYSPRINT.
Warning: Because VSAMLITE decompresses each record in-place, which may cause numerous CI and CA splits, it may be useful to REORG the KSDS after it has been decompressed by the VSAMLITE utility.
Decompress records in the MVSPROD.BIGKSDS data set.
//VSAMLITE EXEC PGM=VSAMLITE //STEPLIB DD DSN=SYS2.DRDMVS.LOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //* //SYSUT1 DD DSN=MVSPROD.BIGKSDS,DISP=OLD