Installing VSCOPY for MVT 21.8f

The version of the IEBCOPY utility included with MVT 21.8 is rather limited ... its sole functionality is the ability to copy partitioned datasets from one DASD volume to another.  Granted you can use it to select/exclude members and it will allow you to expand a partitioned dataset (both member space and directory space), but that is the limit of its flexibility.

However, later versions of IEBCOPY also allowed you to copy a partitioned dataset to a sequential dataset (either tape or disk), effectively unloading the partitioned dataset for the purpose of backing up the dataset or transporting it to another computer.  You could then copy such an unloaded sequential dataset back to a partitioned dataset to reconstruct the contents of the original partitioned dataset.

For those in the Hercules' community running MVT, this can bite you if you have an unloaded dataset from another source and need to reconstruct the partitioned dataset from which it was created.  Fortunately, there is a solution already at hand.  

File 137 on the CBT Overflow tape (https://www.cbttape.org) contains a modified MVS version of IEBCOPY that will run under MVT.  File 137 contains a jobstream consisting of the object code to create the utility program plus a required channel end appendage and the JCL statements to link-edit the object code into load modules.

You may utilize the CBT tape copy to do the installation, but the JCL in the jobstream is not exactly compatible with MVT either, and you will have to do some manipulating to achieve success.  Or, you can follow my procedure here, using my extracted copy of the object statements.

First, you will need to download vscopy.tgz [MD5: 269FE7B8C71DD9E5C54793182C7D6369], which contains two files:  vsclink.jcl and vscopy.het.  Uncompress this archive into your os360mvt subdirectory with either tar (under Linux) or WinZip (under Windows/??).

The file vsclink.jcl contains the JCL to link-edit and install the VSCOPY utility:

//TEC31660 JOB 'INSTALL VSCOPY',CLASS=A,MSGLEVEL=(1,1)          
//STEP1   EXEC PGM=IEWL,PARM='LIST,LET,XREF',REGION=256K
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=SYSDA,SPACE=(TRK,(15,5))
//SYSLIN   DD  DSN=VSCOPY.OBJ,DISP=OLD,UNIT=TAPE,VOL=SER=VSCOPY
//SYSLMOD  DD  DSN=&&GOSET(VSCOPY),UNIT=SYSDA,DISP=(NEW,PASS,DELETE),
//             SPACE=(TRK,(10,10,1)),DCB=SYS1.LINKLIB
//STEP2   EXEC PGM=IEBCOPY,REGION=256K
//SYSPRINT DD  SYSOUT=A
//IN       DD  DSN=*.STEP1.SYSLMOD,DISP=(OLD,PASS)
//OUT1     DD  DSN=SYS1.LINKLIB,UNIT=3330,VOL=SER=MVTRES,DISP=OLD
//OUT2     DD  DSN=SYS1.SVCLIB,UNIT=3330,VOL=SER=MVTRES,DISP=OLD
//SYSUT3   DD  UNIT=SYSDA,SPACE=(80,(60,45)),DISP=(NEW,DELETE)
//SYSIN    DD  *
  COPY INDD=IN,OUTDD=OUT1
  SELECT MEMBER=((VSCOPY,,R))
  COPY INDD=IN,OUTDD=OUT2
  SELECT MEMBER=((IGG019C9,,R))
/*
//

The file vscopy.het is a compressed AWS tape file which you will need to assign to a tape drive in your Hercules/MVT system using the devinit Hercules' command.

Submit the vsclink.jcl to link-edit and install VSCOPY onto your system.  The output of the job on your system should be similar to VSCOPY.SYSOUT.  

The first step of the job link-edits both the utility program and the channel appendage into a temporary dataset.  The second step of the job uses the conventional MVT version of IEBCOPY to move the utility program into SYS1.LINKLIB and the channel appendage into SYS1.SVCLIB.  VSCOPY is used for the name of the utility to avoid over-writing the original version of IEBCOPY.  There is no reason that they may not co-exist in you SYS1.LINKLIB.

Once the jobstream has run, you may delete vscopy.tgz, vscopy.het, and vsclink.jcl from your os360mvt subdirectory.  

To utilize the utility, you use the same control statements as the regular IEBCOPY, except that you should execute VSCOPY and either the input or output dataset may be a physical sequential dataset (residing either on tape or disk).  You may use the utility to reload partitioned datasets that were unloaded from other systems.  You may also use VSCOPY to create unloaded backups of your own partitioned datasets:

//VSCOPY   JOB 'BACKUP PDS',CLASS=A,MSGLEVEL=(1,1)
//******************************************************************
//* BACKUP PDS (JAY.FMTOBJ) TO TAPE (BKP.FMTOBJ)                   *
//******************************************************************
//UNLOAD   EXEC PGM=VSCOPY,REGION=1024K
//SYSPRINT DD  SYSOUT=A
//IN       DD  DSN=JAY.FMTOBJ,DISP=SHR
//OUT      DD  DSN=BKP.FMTOBJ,DISP=(NEW,KEEP),
//             VOL=SER=JAY003,UNIT=TAPE
//SYSUT3   DD  UNIT=SYSDA,SPACE=(80,(60,45)),DISP=(NEW,DELETE)
//SYSIN    DD  *
//

Return to Site Home Page 

This page was last updated on June 10, 2016.