Mainframe之间的文件传输

    技术2022-05-11  62

    概述

    Mainframe主机系统之间的文件传输方式很多。下面的方法适应于MVS, OS/390和Z/OS系统。 最常见的有以下几种情况: 1、两个系统在同一个Sysplex中。 2、两个系统共享磁盘。 3、两个系统相互独立。

    下面分别就每种方式的文件传输加以介绍。

    两个系统在同一个Sysplex中

    这两个系统共享同一个Catalog,所有文件都是共享的,所以不存在文件传输的问题。

    两个OS/390系统共享磁盘

    方法一

    假如两个系统是彼此独立,但是共享磁盘,而且各自有不同的磁盘卷(VOLSER)和Catalog name。

    这种情况下可以使用Import Catalog的方法来拷贝文件: 1、将目的系统的Catalog卷Online 2、IMPORT目的系统的Catalog 3、利用DSS拷贝文件 4、EXPORT目的系统的Catalog 5、将目的系统的Catalog卷Offline

    下面的例子将生产系统的IODF文件(VSAM)拷贝到测试系统。IODF文件存在于Master Catalog中。 该作业在生产系统上执行。

    方法二

    对于不需要Catalog的文件,例如Sequential, PDS等类型文件,也可以使用共享卷来拷贝。 不共享Catalog的系统可以使用一个共享卷,该卷在两个系统同时Online.

    下面的拷贝的步骤: 1、在第一个系统,将文件先拷到共享卷上。 2、在第二个系统,将文件从共享卷拷走。 3、在第一个系统,将共享卷上的文件删除。

    两个相互独立的OS/390系统

    下面主要介绍当两个系统不共享磁盘,例如两个单位的不同主机系统的情况下的文件传输。 这里是大概的步骤: 第一,将要拷的文件用DSS打包到一个文件中,有点像WinZIP。 第二,用TSO XMIT命令将该文件转换成可以传输的格式。 第三,将该文件传到另外一个OS/390系统上。 第四,用TSO RECEIVE命令将该文件还原为DSS格式。 第五,用DSS将文件还原。

    这里是作业的实例:

    首先,将要拷的文件用DSS打包到一个文件中

    用DSS的好处是同时可以拷多个不同格式的文件,而且使用压缩来节省磁盘。 下面的例子将文件打包到文件SP2487.FILE.DUMP中。

    第二,用TSO XMIT命令将该文件转换成可以传输的格式

    使用TSO的TRANSMIT命令将该DSS DUMP文件转换成XMIT格式。 1、在ISPF中,使用=6命令到TSO命令提示中。 2、使用下面命令: xmit jes2node.userid dataset('source.dataset') outdsn('xmitout.dataset')

    下面是该命令的注释:

    参数参数描述jes2node这是你当前系统的JES2 NODE Name. 通过下面的方法得到你的JES2 NODE Name: 到SDSF中,使用node命令,(例如=S;NODE),或者使用MVS命令$D NODE Status属于OWNNODE的NodeName就是你当前系统的JES2 Nodename. 例如PRODSYS1

    SDSF NODE的输出示例:

    JES2 命令'$D NODE'的输出示例:

    Display Filter View Print Options Help ------------------------------------------------------------------------------- SDSF SYSLOG 4317.101 OFD1 OFD1 04/25/2005 0W 29334 COLUMNS 1 80 COMMAND INPUT ===> /$D NODE SCROLL ===> CSR $HASP826 NODE(1) 886 $HASP826 NODE(1) NAME=PRODSYS1,STATUS=(OWNNODE), $HASP826 AUTH=(DEVICE=YES,JOB=YES,NET=NO,SYSTEM=YES), $HASP826 TRANSMIT=BOTH,RECEIVE=BOTH,HOLD=NONE, $HASP826 PENCRYPT=NO,ENDNODE=NO,REST=0,SENTREST=ACCEPT, $HASP826 COMPACT=0,LINE=0,LOGMODE=,LOGON=0, $HASP826 PASSWORD=(VERIFY=(SET),SEND=(FROM_OWNNODE)), $HASP826 PATHMGR=YES,PRIVATE=NO,SUBNET=,TRACE=YES

    ------------------------------------------------------------------------------- SDSF NODE DISPLAY SYS9 OSHAWA1 N1 LINE 1-5 (5) COMMAND INPUT ===> SCROLL ===> CSR NP NUMBER NodeName Status Authority Trans Recv Hold N1 PRODSYS1 OWNNODE (D=Y,J=Y,N=N,S=Y) BOTH BOTH NONE N2 TESTSYS1 UNCONNECTED (D=Y,J=Y,N=N,S=Y) BOTH BOTH NONE N3 N3 UNCONNECTED (D=Y,J=Y,N=N,S=Y) BOTH BOTH NONE N4 N4 UNCONNECTED (D=Y,J=Y,N=N,S=Y) BOTH BOTH NONE N5 N5 UNCONNECTED (D=Y,J=Y,N=N,S=Y) BOTH BOTH NONE userid这是你当前使用的TSO用户名,例如SP2487。 source.dataset这是你要转换的源文件名, 例如SP2487.FILE.DUMP。xmitout.dataset这是经XMIT转换以后的文件名称, 例如SP2487.FILE.XMIT。

    例子: xmit prodsys1.sp2487 dataset('sp2487.file.dump') outdsn('sp2487.file.xmit')

    注意XMIT生成的文件的属性是: RECFM=FB,LRECL=80,BLKSIZE=3120 。在另一个系统上的XMIT文件一定要有与此相同的文件属性。

    第三、将该文件传到另外一个OS/390系统上

    两个系统在同一个网络中

    当两个系统在同一个网络中时,最常用的方法是利用FTP。 下面是从源系统执行FTP命令的例子: =6到ISPF的TSO命令行,执行下面FTP命令: 这个FTP命令会把源文件的属性传给目标文件。

    两个系统在不再同一个网络中 1、用FTP将该文件从OS/390上传到你的PC上,刻一个CD或软盘。 此时注意要使用BINARY的方式下载源文件: 2、将该CD或者软盘上的文件上传到另一个OS/390上。 使用下面的FTP命令将PC上的文件传到主机上:

    ftp os390s2.company.com tso tsouser password binary quote site RECFM=FB LRECL=80 BLKSIZE=3120 quote site CYLINDERS PRIMARY=100 SECONDARY=100 put c: empdssdump.xmi 'hunter.file.xmit' quit

    第四,用TSO RECEIVE命令将该文件还原为DSS格式

    在目的系统上,使用下面的命令将XMIT文件还原为DSS 的DUMP文件: 这样,DSS文件就恢复到了目的系统上。

    第五,用DSS将文件还原

    在目的系统上,你可以使用下面的作业将DUMP文件中的所有文件恢复到目的系统上。

    很多时候由于两个系统的HLQ(Higher Level Qualifier, 第一级文件名) 定义不一致。这时需要将一些文件的HLQ改名,可以使用下面的作业: 在此例子中,作业将所有以SP2487开头的文件(或者HLQ为SP2487)的文件恢复,并将他们的HLQ改为HUNTER。

    总结 以上总结了在不同情况下,在两个Mainframe系统之间进行文件传递的方法。

     

    //************************************************** //RESTORE EXEC PGM=ADRDSSU //SYSPRINT DD SYSOUT=* //DUMPFILE DD DISP=SHR,DSN=HUNTER.FILE.DUMP //DASD DD DISP=OLD,UNIT=SYSDA,VOL=SER=TSTMCT //SYSIN DD * RESTORE DATASET(INCLUDE(SP2487.**)) - RENAMEU(HUNTER) - INDDNAME(DUMPFILE) - OUTDDNAME(DASD) - CATALOG /*

    //************************************************** //RESTORE EXEC PGM=ADRDSSU //SYSPRINT DD SYSOUT=* //DUMPFILE DD DISP=SHR,DSN=HUNTER.FILE.DUMP //DASD DD DISP=OLD,UNIT=SYSDA,VOL=SER=TSTMCT //SYSIN DD * RESTORE DATASET(INCLUDE(**)) - INDDNAME(DUMPFILE) - OUTDDNAME(DASD) - CATALOG /*

    receive indsn('hunter.file.xmit') dataset('hunter.file.dump')

    ftp os390s1.company.com tso tsouser password binary get 'sp2487.file.xmit' c: empdssdump.xmi quit

    ftp os390s2.company.com tso tsouser password put 'sp2487.file.xmit' 'hunter.file.xmit' quit

    //DELETE EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE SP2487.FILE.DUMP IF LASTCC<=8 THEN SET MAXCC=0 //* //BACKUP EXEC PGM=ADRDSSU,COND=(0,NE) //SYSPRINT DD SYSOUT=* //DUMPDS DD DISP=(NEW,CATLG), // UNIT=SYSDA,RECFM=U,LRECL=32760, // SPACE=(CYL,(100,100),RLSE), <--- CHANGE // VOL=SER=SYSWRK, <--- CHANGE // DSN=SP2487.FILE.DUMP <--- CHANGE //SYSIN DD * <--- CHANGE DUMP DATASET(INCLUDE( - SYS1.IPLPARM - SYS1.PARMLIB - SYS1.TCPPARMS - SYS1.USER.** - SP2487.ZHOUGH.JCL - SP2487.ZHOUGH.REXX - SP2487.ASM.** - )) - OUTDDNAME(DUMPDS) - TOLERATE(ENQF) - COMPRESS /*

    //********************************************************************* //* VARY THE MASTER CATALOG VOLUME OF TEST SYSTEM ONLINE //********************************************************************* //ONLINE EXEC PGM=IKJEFT01,PARM='VARY 2102,ONLINE' //SYSEXEC DD DISP=SHR,DSN=SYS1.USER.CMDPROC //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY //********************************************************************* //* IMPORT TEST SYSTEM MASTER CATALOG TO PRODUCTION SYSTEM. //********************************************************************* //IMPTMCAT EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * IMPORT CONNECT OBJECTS((SYS1.TEST.MASTCAT - VOLUMES(TSTMCT) DEVICETYPE(3390))) /* //********************************************************************* //* COPY THE PRODUCTION IODF DATASET FROM PRODUCTION TO TEST SYSTEM. //********************************************************************* //COPYIODF EXEC PGM=ADRDSSU //SYSPRINT DD SYSOUT=* //SYSIN DD * COPY DATASET(INCLUDE(SYS1.IODF00.CLUSTER)) - INDYNAM(SYSMCT) OUTDYNAM(TSTMCT) - RECAT(SYS1.TEST.MASTCAT) TOL(ENQF) REPLACE /* //********************************************************************* //* EXPORT TEST SYSTEM MASTER CATALOG FROM PRODUCTION SYSTEM. //********************************************************************* //EXPTMCAT EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * EXPORT SYS1.TEST.MASTCAT DISCONNECT /* //********************************************************************* //* VARY TARGET MASTER CATALOG VOLUME OFFLINE //********************************************************************* //OFFLINE EXEC PGM=IKJEFT01,PARM='VARY 2102,OFFLINE' //SYSEXEC DD DISP=SHR,DSN=SYS1.USER.CMDPROC //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY

    最新回复(0)