OLLX6100 - Restore VOLLIE Back-Up Tape in MVS


OLLX6100 is an MVS utility program which processes VOLLIE back-up tapes created in VSE. Using OLLX6100, an OS/390 or z/OS installation can restore libraries and members from a VOLLIE back-up tape and load them into partitioned data sets (PDS or PDSE).

OLLX6100 was initially designed for VSE sites which migrate to MVS and have source code or JCL archived on VOLLIE back-up tapes, which they may have to restore after the end of their migration, when they no longer have access to a VSE system. OLLX6100 can also be used during the course of a VSE/MVS conversion to facilitate the transfer of VSE application source to the MVS conversion environment.

OLLX6100 restores VOLLIE libraries into a container-type, pre-allocated partitioned data set. Each VOLLIE library becomes an IEBUPDTE input stream and is stored into a separate member of the container PDS, called a library-member. The contents of each library-member can then be loaded into individual partitioned data sets using IEBUPDTE, or a functionally-equivalent utility such as PDSLOAD, PDSUTIL or Startool.

The name of each library-member in the container PDS is the 3-character OPIDENT of the corresponding library's owner, such as JOE or BOB. When the OPIDENT starts with a numeric digit, the member name is preceded with a # sign; for example, the member name for OPIDENT 050 is #050. When the OPIDENT contains special characters, the member name consists of a # sign followed with the hexadecimal representation of the OPIDENT; for example, the member names for OPIDENTs &&& and %%% are #505050 and #6C6C6C, respectively.

Running OLLX6100

The OLLX6100 Utility runs as a batch job step in the MVS environment. The PARM field is optional and may contain a 7-char identifier which is stored in the User-ID field of the directory entry of each library-member in the container PDS. This may be used, for example, to show the tape serial number in the directory entries, as shown in the example below.

DD Statements

OLLX6100 uses the following DD statements:

  1. the TAPEIN DD is used to read the VOLLIE back-up tape.
  2. the SYSUT2 DD is used to write a PDS member for each OPIDENT present on the back-up tape.
  3. SYSPRINT is used to write messages.
  4. the MEMBERS DD is used to write a list of all the members found in every library.

Output PDS

VOLLIE writes all of the members belonging to an OPIDENT into a library-member of the output SYSUT2 PDS as an IEBUPDTE input stream. The name of the library-member is equal to the corresponding OPIDENT, except when OPIDENT=&&& or OPIDENT=%%%, in which case the member names are #505050 and #6C6C6C. Specifying OPTCD=R on the SYSUT2 DD resets the output PDS to empty before writing library-members into it. Specifying OPTCD=L writes the library-members in ISPF PACK format. Both options can be combined by specifying OPTCD=RL.

Each library-member's directory entries contains ISPF statistics. The creation and the last-modified dates are set to the date of the oldest and most recent members, respectively. The current lines (Size) is the total number of records in the library-member. The Init field is the number of packed records when OPTCD=L was specified on the SYSUT2 DD. Mod is the number of members, i.e. the number of ./ ADD cards it contains. The User ID is the User ID passed in the PARM field of the EXEC statement, if specified; otherwise, it is the name of the job's owner.


Member   VV.MM  Created   Last-Mod   HH.MM.SS  Size  Init  Mod UID
#505050  00.00 2001/02/09 2003/05/27 10.41.00  904   369    71 V612346
BOB      00.00 1988/03/08 2003/05/27 10.46.00 18953 7664  1167 V612346
JOE      00.00 1988/03/08 2003/05/27 10.45.00 65535 41368  391 V612346
SUE      00.00 1987/12/02 2003/05/27 10.41.00 65535 65535 2260 V612346 

Inside library-members, IEBUPDTE ./ ADD cards for individual VOLLIE members contain ISPF statistics in PDSLOAD format (a public-domain utility). If IEBUPDTE is used to load a SYSUT2 member into a PDS, then statistics are ignored. If PDSLOAD, PDSUTIL or STARTOOL is used, then ISPF statistics are stored in each individual member's directory entry.

Sample JCL

Restore the VOLLIE back-up tape into a container PDS, then load VOLLIE members for OPIDENT &&& into a user PDS.

  //OLLX6100 JOB (ACCT#),'Load VOLLIE Tape',
  //JOBLIB   DD DSN=<OLLX6100 load library>,DISP=SHR
  //         DD DSN=<PDSLOAD load library>,DISP=SHR
  //*     Load VOLLIE Back-up Tape into a container PDS
  //OLLX6100 EXEC PGM=OLLX6100,PARM=V612346
  // UNIT=3490,VOL=SER=612346
  // UNIT=SYSDA,SPACE=(TRK,(2500,,40))
  //*     Load Library &&& into the VOLLIE.#505050 PDS
  // UNIT=SYSDA,SPACE=(TRK,(500,,240)) 

Sample Output (SYSPRINT)

 PRISM-CS - CREATE PDS FROM VOLLIE BACKUP TAPE       Monday 16 July 2012  (03.177)  18:30

  18:30:34.24 PARM SPECIFIED FOR THIS RUN: V612346

  18:30:34.74 BACKUP TAPE CREATED ON 2003-05-19 AT 20.09



	   #505050     71      1409  1995-06-26  2001-12-04
	     BOB      257     11386  1995-03-13  2002-05-17
	     JOE        4       180  1999-05-24  2001-02-27
	     SUE      286     47986  1995-08-22  1999-06-24
	    TOTAL     618     60961  1995-03-13  2002-05-17  

Sample Output (MEMBERS)

       1      1 &&& MODIFY                                   00.G              96
      2      1 BOB A        THIS IS A COPY OF ASISYSP       ...±             884
      3      2 JOE APITEST  990033 COPY OF APIWCUW          ..c¢            1238
      4      2 JOE ASISYSP  THIS IS A COPY OF ASISYSP       ..c¢             866
      5      3 SUE XYZNOTES                                 ...±             311