データセットをファイル転送可能な形式に変換する(TRANSMITとIEHMOVE)
固定長レコードのデータセットであればそのままファイル転送することができますが、可変長/不定長レコードの場合は相手側転送ソフトがメインフレームのレコード形式に対応していないと正しく転送できません。
TSOのTRANSMIT/RECEIVEコマンドを使うと、順次または区分データセットであればレコード形式に関係なく、データセットをRECFM=FB,BLKSIZE=3120,LRECL=80の形式に変換し、元の形式に復元することができます。TRANSMITで変換してから転送し、転送先でRECEIVEで復元すればあらゆるデータセットを転送することができます。VSAMデータセットも一旦REPROで順次データセットにアンロードすればTRANSMITに掛けることができます。
FTPなどでの転送の場合、TRANSMITコマンドはデータの変換に過ぎませんが、NJEで接続されたz/OS同士、VSEやVMなどのIBMシステムであれば同時に転送が行われます。
※転送処理自体はNJEによって行われる。NJEで接続されていなければ、FTPや3270エミュレーターのファイル転送などを利用することになる。
TSO/TRANSMITコマンド
TSO/TRANSMITコマンド実行JCLサンプル?
// JOB Statement //********************************************************************* //* Sample JCL - TSO BATCH SESSION //* ============================== //********************************************************************* //TRANSMIT EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSUT2 DD DISP=(,CATLG),DSN=TEMP.XMITFILE, // UNIT=SYSDA,VOL=SER=WRKVOL,SPACE=(CYL,(10,10),RLSE) //SYSTSIN DD * TRANSMIT ZOS.XMITUSER NOLOG + DATASET('MY.JCL') OUTDD(SYSUT2) //* //XMIT EXEC PGM=IKJEFT01 //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=USR1.JCL //SYSUT2 DD DISP=SHR,DSN=USR1.XMIT(USR1JCL) //SYSTSIN DD * XMIT OS390.XMITUSER NOLOG + DDNAME(SYSUT1) OUTDD(SYSUT2) // //
データセットを転送可能形式に変換します。
TRANSMITコマンドはXMITと略せます。DATASETパラメーターで変換する入力データセットを、OUTDDパラメーターで変換されたデータを格納する出力データセットを定義したDD名を指定します。
2番目の例は入出力共にDD文で指定するものです。変換されたデータは既存の区分データセットにメンバーとして登録します。出力先区分データセットはあらかじめRECFM=FB,BLKSIZE=3120,LRECL=80で作成してあります。
TSO/TRANSMITコマンド実行JCLサンプル?
// JOB Statement //********************************************************************* //* Sample JCL - TSO BATCH SESSION //* ============================== //********************************************************************* //RECEIVE EXEC PGM=IKJEFT01 //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=TEMP.XMITFILE //SYSTSIN DD * RECEIVE INDD(SYSUT1) LOGDS('NULLFILE') NONAMES RESTORE DSNAME('MY.JCL') VOL(TMPVOL) //* //RECEIVE EXEC PGM=IKJEFT01 //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=USR1.XMIT(USR1JCL) //SYSTSIN DD * RECEIVE INDD(SYSUT1) LOGDS('NULLFILE') NONAMES RESTORE DSNAME('USR1.JCL') VOL(TMPVOL) + CYL SPACE(20 10) DIR(100) // //
データセットを転送可能形式から元の形式に復元します。
RECEIVEとRESTOREコマンドを組み合わせます。INDDパラメーターで復元するXMITデータセットを定義したDD名を、DSNAMEとVOLパラメーターで復元されたデータを格納する出力先データセット名とVOLUME名を指定します。出力先データセットのRECFM,BLKSIZE,LRECLはXMITファイル内に登録されている元のデータセット情報に基づき設定されます。スペース量はデータの大きさに合わせて必要なサイズが設定されます。
2番目の例はスペース量を追加設定したものです。パラメーターで指定すればそちらが優先されます。
IEHMOVEユーティリティー
IEHMOVEユーティリティーUNLOAD機能実行JCLサンプル
// JOB Statement //********************************************************************* //* Sample JCL - IEHMOVE //* ==================== //********************************************************************* //UNLOAD EXEC PGM=IEHMOVE|JSGMOVE|JSFMOVE //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=OLD,UNIT=SYSDA,VOL=SER=WRKVOL //FROM DD DISP=OLD,UNIT=SYSDA,VOL=SER=VOL001 //TO DD DISP=OLD,UNIT=SYSDA,VOL=SER=VOL002 //SYSIN DD * COPY PDS=MY.JCL,FROM=SYSDA=VOL001,TO=SYSDA=VOL002, X RENAME=MY.JCL.UNLOAD,UNLOAD,CATLG //* //RESTORE EXEC PGM=IEHMOVE|JSGMOVE|JSFMOVE //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=OLD,UNIT=SYSDA,VOL=SER=WRKVOL //FROM DD DISP=OLD,UNIT=SYSDA,VOL=SER=VOL002 //TO DD DISP=OLD,UNIT=SYSDA,VOL=SER=VOL001 //SYSIN DD * COPY PDS=MY.JCL.UNLOAD,RENAME=MY.JCL2, X FROM=SYSDA=VOL002,TO=SYSDA=VOL001,CATLG // //
XMIT/RECEIVEが使用できないMSPとVOS3では代替としてIEHMOVEユーティリティを利用できます。アンロードされたデータセットはRECFM=FB,BLKSIZE=800,LRECL=80の形式に変換されます。