Preview
The public domain MVS 3.8J OS exists in many packaged variations! That is, a specific installation can be a turnkey system such as TK3, TK3UPD, or TK4-, not to mention customized do-it-yourself (DIY) systems.
Each of the above stated systems have specific freeware / shareware / home-grown utilities or products!
Suffice it to say, not all systems are the same!
The purpose of this post is the share my experiences with loading XMI files from the host OS to the guest OS (MVS 3.8J) with the use of two transfer methods.
Although, an FTP product is supplied with TK3 and TK4- systems, I did not attempt to PUT an XMI file on MVS.
Thanks,
LarryB
3270 Emulator
Using Tom Brennan’s Vista TN3270 emulator, transferring an external file to the guest OS is as simple as identifying the source and target files along with DCB attributes for new dataset.
The emulator transfer function is dependent on IND$FILE, an MVS software component. A public-version of this software can be obtained at CBTTAPE.ORG (file 607 from Mike Rayborn) if not available on your installation.
Position to the TSO COMMAND Processor option or TSO READY prompt:
--------------------------- TSO COMMAND PROCESSOR ----------------- v1.0.00 - ENTER TSO COMMAND, CLIST, OR REXX EXEC BELOW: ===> Place cursor on choice and press enter to Retrieve n Execute Command => TIME => WHO => => => => => => => => Controls: ExecI Y ClrCMD Y UpdtSA Y RBlank Y DelChr /
On the 3270 emulator menu bar, select the following navigation –
Transfer –> Send to Host (actions may be named differently on different 3270 emulators)
Click Options to declare DCB attributes:
That’s it!
When transfer completes, the XMI file is on the MVS platform and ready to be processed by RECV370/XMIT370 or TSO RECEIVE/TRANSMIT.
JES2 Reader
Assuming the XMI SEQ file has an LRECL=80, an MVS JES2 reader may be used as the transport mechanism (if available) as descripted below.
For this example, assume a JES2 reader device is located at address x20C and named RDR3.
Stop the JES2 reader using the MVS console command:
$PRDR3
Make note of the current DEVINIT statement for this device for reset purposes later in this section.
Attach the host XMI SEQ file to the JES2 reader device using the Hercules DEVINIT command:
DEVINIT 20C M:\MVS38J\TEMP\DISTLIB_TSOAPPLS.XMI EBCDIC
At this point, RECV370 can be used to load XMI content via reader device 20C.
Alternatively, TSO RECEIVE can be used to load XMI content after copying the host XMI SEQ file via reader device 20C.
After the XMI content is loaded, return the JES2 reader to its original state.
Reset RDR3 using the Hercules DEVINIT command:
DEVINIT 20C M:/MVS38J/JCL/DUMMY EOF
Start JES2 reader with the following command:
$SRDR3
Done!
The XMI file is on the MVS platform and ready to be processed by RECV370/XMIT370 or TSO RECEIVE/TRANSMIT.
The below sample JCL uses RECV370 to automate the above described method:
//RECV370A JOB (SYS),'RECV XMI',REGION=0M, // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // COND=(0,NE),NOTIFY=LARRY03 //* //*--------------------------------------- //* ISSUE CONSOLE COMMAND: PAUSE JES2 READER //*--------------------------------------- //OSCMD1 EXEC PGM=BSPOSCMD,PARM='$PRDR3' //* //*--------------------------------------- //* DEVINIT HERC READER WITH XMI FILE //*--------------------------------------- //HERCMD1 EXEC PGM=BSPHRCMD //SYSIN DD * DEVINIT 20C M:\MVS38J\TEMP\DISTLIB_TSOAPPLS.XMI EBCDIC //*DEVINIT 20C M:\MVS38J\TEMP\DISTLIB_TSOAPPLS.XMI EBCDIC //SYSPRINT DD SYSOUT=* //* //*--------------------------------------- //* RECEIVE XMIT TO SEQ //*--------------------------------------- //RECV370 EXEC PGM=RECV370 //STEPLIB DD DSN=SYS2.LINKLIB,DISP=SHR //RECVLOG DD SYSOUT=* //XMITIN DD UNIT=20C, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80) //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=LARRY03.TEST.XMIT.D02, // VOL=SER=PUB007, // UNIT=SYSDA, // SPACE=(TRK,(60,10),RLSE), // DISP=(,CATLG,DELETE) //SYSIN DD DUMMY //SYSUDUMP DD SYSOUT=* //* //*--------------------------------------- //* DEVINIT HERC READER WITH RESET COMMAND //*--------------------------------------- //HERCMD2 EXEC PGM=BSPHRCMD //SYSIN DD * DEVINIT 20C M:/MVS38J/JCL/DUMMY EOF //*DEVINIT 20C M:/MVS38J/JCL/DUMMY EOF //SYSPRINT DD SYSOUT=* //* //*--------------------------------------- //* ISSUE CONSOLE COMMAND: START JES2 READER //*--------------------------------------- //OSCMD2 EXEC PGM=BSPOSCMD,PARM='$SRDR3' //* //
The below sample JCL uses TSO RECEIVE to automate the above described method:
//RECVTSOA JOB (SYS),'TSORECV XMI',REGION=0M, // CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // COND=(0,NE),NOTIFY=LARRY03 //* //*--------------------------------------- //* ISSUE CONSOLE COMMAND: PAUSE JES2 READER //*--------------------------------------- //OSCMD1 EXEC PGM=BSPOSCMD,PARM='$PRDR3' //* //*--------------------------------------- //* DEVINIT HERC READER WITH XMI FILE //*--------------------------------------- //HERCMD1 EXEC PGM=BSPHRCMD //SYSIN DD * DEVINIT 20C M:\MVS38J\TEMP\DISTLIB_TSOAPPLS.XMI EBCDIC //*DEVINIT 20C M:\MVS38J\TEMP\DISTLIB_TSOAPPLS.XMI EBCDIC //SYSPRINT DD SYSOUT=* //* //*--------------------------------------- //* COPY XMIT TO MVS //*--------------------------------------- //COPYXMI EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=20C, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80) //SYSUT2 DD DSN=LARRY03.TSOAPPLS.XMI, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200), // VOL=SER=PUB007, // UNIT=SYSDA, // SPACE=(TRK,(60,10),RLSE), // DISP=(,CATLG,DELETE) //SYSIN DD DUMMY //* //*--------------------------------------- //* DEVINIT HERC READER WITH RESET COMMAND //*--------------------------------------- //HERCMD2 EXEC PGM=BSPHRCMD //SYSIN DD * DEVINIT 20C M:/MVS38J/JCL/DUMMY EOF //*DEVINIT 20C M:/MVS38J/JCL/DUMMY EOF //SYSPRINT DD SYSOUT=* //* //*--------------------------------------- //* ISSUE CONSOLE COMMAND: START JES2 READER //*--------------------------------------- //OSCMD2 EXEC PGM=BSPOSCMD,PARM='$SRDR3' //* //*--------------------------------------- //* TSO RECEIVE XMIT TO SEQ //*--------------------------------------- //RECVTSO EXEC PGM=IKJEFT01 //SYSPROC DD DISP=SHR,DSN=SYS2.CMDPROC //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * RECEIVE IN('LARRY03.TSOAPPLS.XMI') - DA('LARRY03.TEST.XMIT.D02') NOPROMPT /* //* //
The following utility programs are required to use the above JOB sample. MVS 3.8J TK4- includes both utilities.
– BSPOSCMD to issue MVS console commands
– BSPHRCMD to issue Hercules console commands
– RECV370 to receive XMI content
– RECEIVE to receive XMI content
– IEBGENER to copy sequential file
Closing
Hopefully this post provides additional tools for your MVS 3.8J tool-kit!
If you utilize a different method and would like to share, please contact me using the CONTACT US link at top of this post. I will be happy to update this post with your method including credit to the author.
If you have any questions, corrections and/or additions to this post to better explain the topic, use the CONTACT US link at top of this post.
Enjoy!