The Data Transfer component of Prism-CS™ automates the transfer of disk and tape application data from the VSE to the MVS, OS/390 or z/OS environments, using information collected during the JCL translation process, as well as from the VSE Catalogs (VSAM, Dynam, Epic, System Manager, etc) and the VSE VTOCs. The Data Transfer process can be easily customised by the conversion team.
Prism-CS utility programs automatically identify which files need to be transferred, and generate both VSE and MVS JCL streams to carry out the actual transfer of data. Transfer of disk and tape data sets is supported. Data on disk can consist of VSAM, SD or DA files, or data bases.
Typically, VSE disk files are transferred to MVS via tape, using IDCAMS REPRO to stack multiple files onto a set of tape volumes. Prism-CS simplifies the transfer procedure and increases its reliability by automatically generating the job streams required to back up data files in VSE and restore them in MVS. Depending on local conditions, various utility programs may be used to back up VSE data files to tape (or shared DASD) and restore them into MVS data sets:
When available, shared DASD volumes can be used instead of tapes to speed the transfer up. As an alternative to intermediate disk and tape volumes, the Data Transfer component of Prism-CS can generate JCL streams to allocate MVS data sets and transfer the data using FTP. FTP jobs can run in VSE to "push" the data to MVS, or run in MVS to "pull" the data from VSE.
When the data transfer window is very narrow and the hardware configuration is appropriate, large disk files and even certain non-IBM data bases can be transferred "in-place" with the assistance of specific Prism-CS utilities in order to eliminate the delay inherent to tape transfer procedures. This delicate technique has proven irreplaceable in situations where an installation that functions 24x7 can only afford a few hours of down-time to perform the final switch-over.
The format of VSE tape files is, for the most part, compatible with MVS. However, in a typical environment, an MVS job can not read VSE tapes directly because the data set name is different and volume information can't be found in the catalog. To be able to read a VSE tape, the MVS JCL must be temporarily modified to specify the VSE label used when the tape was created, volume information must be added, and sometimes DCB attributes must also be specified.
With the assistance of specific Prism-CS utilities, however, tapes files created in VSE can be catalogued and used as input to MVS jobs, transparently, without requiring any manual modification to the JCL.
Certain VSE tape files whose format is not compatible with MVS access methods can be copied to MVS disk or tape data sets using the COPY function of the Prism-CS XFERD3M utility.
When the content of a VSE tape library must be loaded into a "silo", a "robot" or an MVS Tape Manager, Prism-CS can be used to automatically generate JCL utility streams to copy the VSE tape data sets to the new environment.
Data bases are normally transferred from VSE to MVS using the corresponding unload and reload utility programs and intermediate tape storage. However, the format of some non-IBM data bases is compatible between VSE and MVS; these data bases can be transferred "in-place" to eliminate the delay inherent to tape transfer procedures. "In-place" transfer, which requires DASD to be shared between VSE and MVS, can be combined with the DASD sub-system's Snapshot or Flashcopy capabilities when they are available.
Run Time Library
The VSE and MVS sample job streams below were automatically generated by the Prism-CS Data Transfer Utilities. These jobs represent the data transfer technique most-often used in recent conversion projects based on Prism-CS. Note that the two jobs below only transfer six files which makes them a very small example. In recent projects, data transfer jobs processed hundreds or thousands of files.
Both job streams were entirely generated by a COBOL sample exit routine which is only 600 lines long and can be easily tailored to comply with local requirements. This exit routine includes additional flexibility to use shared DASD instead of tape as intermediate storage, as well for segmenting the data transfer job-streams into multiple "batches" based on user-selected criteria, such as file size, catalog, on-line usage, etc.
The XFERD3 utility programs (XFERD3V in VSE and XFERD3M in MVS) offer enhancements for performance and error recovery. In 2006, a large conversion project in Asia used XFERD3 to transfer 7500 mostly VSAM-managed VSE files to z/OS in about five hours using a handful of 3490E and 3590 tape volumes.
VSE disk files records can be compressed by VSAM, VSE or a vendor product. XFERD3V always reads records in uncompressed format which allows them to be properly restored into MVS data sets.
The sample VSE JCL below consists of a single-step job which unloads six selected data files from disk to 3490E tape using the Prism-CS XFERD3V utility. The corresponding MVS JCL allocates MVS DASD data sets and reloads the data from tape to DASD.
* $$ JOB JNM=DEFAULT,CLASS=A,DEST=VSEPROD /* // JOB DEFAULT Files=00006 Tracks=00003531 /* // LIBDEF PHASE,SEARCH=XFERD3V.CIL // UPSI 001 TAPE,NOCOMPRESS,SPANNED // ASSGN SYS005,3490E // TLBL TAPEOUT,'XFERD3V.DEFAULT',30 /* // DLBL PRMASN,'BI040.PRM.ASN.INT.FILE',,SD 000150 (see note, below) // EXTENT ,PS0244 // DLBL EOMDATE,'EOM.DATE.FILE',,SD 000200 // EXTENT ,POOL01 // DLBL FTPIN1,'FCDSTTR1.FILE',,SD 000400 // EXTENT ,PS0244 // DLBL FPRAMAT,'FPRA.MATURITY.FILE',,VSAM,CAT=PV0245 000001 // DLBL GLCKREG,'GL.CK.REGIS',,VSAM,CAT=PV0241 001100 // DLBL SISUBM,'SUBMIT.MASTER.FILE',,VSAM,CAT=PV0352 001680 /* // EXEC XFERD3V,SIZE=AUTO PRMASN,SAM,FB,00266,07980 000150 00000150 EOMDATE,SAM,FB,00022,00220 000200 00000350 FTPIN1,SAM,VB,00090,09000 000400 00000750 FPRAMAT,KSDS 000001 00000751 GLCKREG,KSDS 001100 00001851 SISUBM,KSDS 001680 00003531 /* // MTC RUN,SYS005 /& * $$ EOJ
Note: The number in positions 73-78 of each DLBL statement is the size (in tracks) of the corresponding file.
The MVS JCL, which is generated at the same time as the VSE JCL above, is made up of six job steps:
//DEFAULT JOB (ACCT#),'XFERD3M.DEFAULT ', //*RESTART=DEFINECL, DEFINE VSAM CLUSTERS //*RESTART=ALLOCATE, ALLOCATE NON-VSAM DATA SETS //*RESTART=RESTORE, RESTORE DATA SETS //*RESTART=AIXPATH, DEFAIX/DEFPATH //*RESTART=BLDIDX, BLDINDEX // NOTIFY=&SYSUID,REGION=6M, // CLASS=A,MSGCLASS=X,COND=(4,LT) //* //* DEFAULT Files=00006 Tracks=00003531 //* //CLEANUP EXEC PGM=IEFBR14 step 1 //PRMASN DD DSN=MVS.BI040.PRM.ASN.INT.FILE,DISP=(MOD,DELETE), // SPACE=(1,0) //EOMDATE DD DSN=MVS.EOM.DATE.FILE,DISP=(MOD,DELETE),SPACE=(1,0) //FTPIN1 DD DSN=MVS.FCDSTTR1.FILE,DISP=(MOD,DELETE),SPACE=(1,0) //FPRAMAT DD DSN=MVS.FPRA.MATURITY.FILE,DISP=(MOD,DELETE),SPACE=(1,0) //GLCKREG DD DSN=MVS.GL.CK.REGIS,DISP=(MOD,DELETE),SPACE=(1,0) //SISUBM DD DSN=MVS.SUBMIT.MASTER.FILE,DISP=(MOD,DELETE),SPACE=(1,0) //* //DEFINECL EXEC PGM=IDCAMS step 2 //SYSPRINT DD SYSOUT=* DEF CL(NAME(MVS.FPRA.MATURITY.FILE) SPEED VOL(PV0245) RECORDS(50 10) - CISZ(1024) KEYS(36 0) SHR(2) RECSZ(80 80)) IF MAXCC > 4 THEN CANCEL ; DEF CL(NAME(MVS.GL.CK.REGIS) SPEED VOL(PV0241) RECORDS(100000 5000) - RECSZ(550 550) FSPC(14 19) KEYS(9 30) SHR(2)) DATA(CISZ(4096)) IF MAXCC > 4 THEN CANCEL ; DEF CL(NAME(MVS.SUBMIT.MASTER.FILE) SPEED VOL(PV0352) - RECORDS(210000 10000) FSPC(10 15) BUFSP(12000) SHR(4 3) KEYS(7 0) - RECSZ(400 400)) DATA(CISZ(4096)) IF MAXCC > 4 THEN CANCEL ; /* //ALLOCATE EXEC PGM=IEFBR14 step 3 //* //PRMASN DD DSN=MVS.BI040.PRM.ASN.INT.FILE,DISP=(,CATLG), // RECFM=FB,LRECL=00266,DSORG=PS, // SPACE=(TRK,(0150,0015)) //* //EOMDATE DD DSN=MVS.EOM.DATE.FILE,DISP=(,CATLG), // RECFM=FB,LRECL=00022,DSORG=PS, // SPACE=(TRK,(0200,0020)) //* //FTPIN1 DD DSN=MVS.FCDSTTR1.FILE,DISP=(,CATLG), // RECFM=VB,LRECL=00090,DSORG=PS, // SPACE=(TRK,(0400,0040)) //* //RESTORE EXEC PGM=XFERD3M step 4 //STEPLIB DD DSN=PRISMCS.LOCAL.EXITLIB,DISP=SHR // DD DSN=GSFSOFT.PRISM-CS.LOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //TAPEIN DD DSN=XFERD3V.DEFAULT, // UNIT=TAPE,VOL=SER=(123456) //* //PRMASN DD DSN=MVS.BI040.PRM.ASN.INT.FILE,DISP=OLD //EOMDATE DD DSN=MVS.EOM.DATE.FILE,DISP=OLD //FTPIN1 DD DSN=MVS.FCDSTTR1.FILE,DISP=OLD //FPRAMAT DD DSN=MVS.FPRA.MATURITY.FILE,DISP=OLD //GLCKREG DD DSN=MVS.GL.CK.REGIS,DISP=OLD //SISUBM DD DSN=MVS.SUBMIT.MASTER.FILE,DISP=OLD //* //AIXPATH EXEC PGM=IDCAMS step 5 //SYSPRINT DD SYSOUT=* DEL MVS.GL.CK.REGIS.ALTNDX AIX SET MAXCC=0 DEF AIX(NAME(MVS.GL.CK.REGIS.ALTNDX) SPEED REL(MVS.GL.CK.REGIS) - KEYS(39 0) RECSZ(53 53) RECORDS(100000 5000) UNQK CISZ(4096) - VOL(PV0241) SHR(2)) DEF PATH(NAME(MVS.GL.CK.REGIS.PATH) PENT(MVS.GL.CK.REGIS.ALTNDX)) IF MAXCC > 4 THEN CANCEL ; DEL MVS.GL.CK.REGIS.ALTNDX2 AIX SET MAXCC=0 DEF AIX(NAME(MVS.GL.CK.REGIS.ALTNDX2) SPEED REL(MVS.GL.CK.REGIS) - KEYS(20 51) RECSZ(34 34) RECORDS(100000 5000) UNQK UPG CISZ(4096) - VOL(PV0241) SHR(2)) DEF PATH(NAME(MVS.GL.CK.REGIS.PATH2) PENT(MVS.GL.CK.REGIS.ALTNDX2)) IF MAXCC > 4 THEN CANCEL ; DEL MVS.SUBMIT.MASTER.POLNO.AIX AIX SET MAXCC=0 DEF AIX(NAME(MVS.SUBMIT.MASTER.POLNO.AIX) SPEED - REL(MVS.SUBMIT.MASTER.FILE) KEYS(9 310) VOL(PV0352) - RECORDS(210000 10000) RECSZ(50 50) SHR(4 3)) DEF PATH(NAME(MVS.SUBMIT.MASTER.POLNO.AIX.PATH) - PENT(MVS.SUBMIT.MASTER.POLNO.AIX)) IF MAXCC > 4 THEN CANCEL ; /* //* //BLDIDX EXEC PGM=IDCAMS step 6 //SYSPRINT DD SYSOUT=* //GLCKREG DD DSN=MVS.GL.CK.REGIS,DISP=OLD,AMP='BUFSP=500000' //GLCKREG1 DD DSN=MVS.GL.CK.REGIS.ALTNDX,DISP=OLD,AMP='BUFSP=500000' //GLCKREG2 DD DSN=MVS.GL.CK.REGIS.ALTNDX2,DISP=OLD,AMP='BUFSP=500000' //SISUBM DD DSN=MVS.SUBMIT.MASTER.FILE,DISP=OLD,AMP='BUFSP=500000' //SISUBM01 DD DSN=MVS.SUBMIT.MASTER.POLNO.AIX,DISP=OLD, // AMP='BUFSP=500000' BLDINDEX INFILE(GLCKREG ) OUTFILE(GLCKREG1 GLCKREG2) ; IF MAXCC > 0 THEN CANCEL ; BLDINDEX INFILE(SISUBM ) OUTFILE(SISUBM01) ; IF MAXCC > 0 THEN CANCEL ; /* //
Search key-words: MVS OS/390 os390 z/OS zOS disk tape transfer data-base SAM DAM VSAM convert labels vse z/vse zvse blp nl ltm over-ride override fast cut-over rapid cutover quick switchover