LIBRMVS - Restore VSE LIBR Back-Up Tape in MVS

                   

The LIBRMVS utility program is used in OS/390 or z/OS to restore libraries and members from a LIBR back-up tape created in DOS/VS, DOS/VSE, VSE/SP, VSE/ESA or z/VSE, and load their content into MVS sequential or partitioned data sets.

LIBRMVS was initially designed for VSE sites which migrate to MVS and have source code or JCL archived on LIBR back-up tapes. LIBRMVS can be used during the course of a VSE/MVS conversion to facilitate the transfer of VSE application source to the MVS conversion environment. After the end of the migration, when access to the VSE system is no longer available, LIBRMVS can be used to restore VSE libraries from archive tapes.

LIBRMVS restores each VSE sub-library into a container-type, pre-allocated partitioned data set. Each VSE sub-library becomes an IEBUPDTE input stream and is stored into a member of the container PDS. The content of each member created in the container PDS can then be loaded into a PDS using IEBUPDTE or an equivalent utility such as PDSUTIL or PDSLOAD.

A SYSIN data set is required to associate the name of each sub-library to the ddname of the corresponding container PDS. If SYSIN is empty, LIBRMVS scans the tape and lists the sub-libraries it contains. An asterisk in position 1 of a SYSIN records indicates a comment line.

Container PDSes are reset to empty when OPTCD=R is specified on the corresponding ddname. When OPTCD=L is specified, the members in a container PDS are written in ISPF PACK format. Both options can be combined by specifying OPTCD=RL.

Note: PHASE-type members are currently not restored by LIBRMVS; this feature may be added at a later date, if needed.

Sample JCL (RESTORE)

Restore the PROD.LIB and TEST.LIB sub-libraries from a LIBR back-up tape into two container PDSes, then load PROCs from PROD.LIB into a third PDS.

 //LIBRTAPE JOB (ACCT#),'Load LIBR Tape',
 // NOTIFY=&SYSUID,
 // CLASS=A,MSGCLASS=X
 //JOBLIB   DD DSN=<LIBRMVS load library>,DISP=SHR
 //*
 //*     Load LIBR Back-up Tape into Partitioned Data Sets
 //*
 //LIBR EXEC PGM=LIBRMVS,PARM=V612346
 //SYSPRINT DD SYSOUT=*	statistics
 //HEADERS  DD SYSOUT=*	sub-lib headers
 //MEMBERS  DD SYSOUT=*	member list
 //*
 //TAPEIN   DD DSN=VSE.LIBR.BACKUP,UNIT=TAPE,VOL=SER=612346,LABEL=4
 //*
 //DDPROD   DD DSN=VSELIBR.CONTAINER.PROD.LIB,DISP=(,CATLG),
 // UNIT=SYSDA,SPACE=(TRK,(2500,,40))
 //DDTEST   DD DSN=VSELIBR.CONTAINER.TEST.LIB,DISP=(,CATLG),
 // UNIT=SYSDA,SPACE=(TRK,(2500,,40))
 //SYSIN    DD *
 PROD.LIB,DDPROD
 TEST.LIB,DDTEST
 //*
 //*     Load PROD.LIB PROC members into VSELIBR.PROD.PROCLIB
 //*
 //LOADPROC EXEC PGM=IEBUPDTE,PARM=NEW
 //SYSPRINT DD SYSOUT=*
 //*
 //SYSIN    DD DSN=VSELIBR.CONTAINR.PROD.LIB(PROC),DISP=SHR
 //*
 //SYSUT2   DD DSN=VSELIBR.PROD.PROCLIB,DISP=(,CATLG),
 // RECFM=FB,LRECL=80,DSORG=PO,
 // UNIT=SYSDA,SPACE=(TRK,(500,,240))
 //