「メインフレーム・コンピューター」で遊ぼうこんな時代に今さらメインフレーム・コンピューターに取り組むハメになったみんなが助けあうサイトです。RSSWordPress.orgコスパのいい社内システムの作り方メインフレームを扱っていると、軽い開発やメンテナンスにリソースを割けない、しかし、BPCも考えねば。解決策のひとつがクラウドにおくFileMakerです。コンソーシアム」設立のお知らせブロードリッジ、IBMと提携しハイブリッド・クラウド戦略を加速。TRANSMITコマンドTRANSMITはTSOコマンドです。XMITはTRANSMITの短縮形です。XMITはデータセットを、転送可能な形式に変換して、他のシステムに転送するために使用されます。transmitと言う名前ですが、このコマンドそのものに転送の機能は無く、JESのNJEを使っています(転送データをSYSOUTとしてスプールに書き出すので、それがNJEによって転送される)。そのためコマンドで直接転送するためには、転送先システムがJESのNJEで接続されている必要があります。転送させずに、データセットを単に転送可能な形式に変換するだけの処理も可能です。NJE接続されていない他のMVSシステム、WindowsやUnixなどの全く別のコンピュータ・システムに送る場合にもXMITコマンドを利用できます。別のシステムへしても、データセットはXMIT固有の形式に変換されるため、IBM以外のシステムでは直接扱うことはできません。それでもPC上にバックアップコピーを取ったり、CDやDVDに書き出したり、メーカーやベンダーに調査用資料としてデータを渡したり、などいろいろと応用できます。ブロッキングなど特有な形式を持ち、unixやwindowsなどのように、バイト・ストリームで構成されたファイル構造ではないため、ftpのように単にデータそのものの転送だけでは、受け取り側は元の形に戻せません。そこでレコードのデータそのものだけでなく、元のデータセット・レコードの形式、長さ、などの属性情報、区分データセットの場合は、ディレクトリ情報なども格納して、xmitファイルを構成します。xmitファイルは、z/OS上では、RECFM=FB,BLKSIZE=3120,LRECL=80、のレコード形式のデータセットに格納されます。xmitファイルを格納するデータセットは順次データセット、区分データセットのメンバー、いずれでもかまいません。xmitされる元のMVSデータセットは、順次データセット、または区分データセットです。特定のレコード形式やレコード長に、制限されることもありません。TRANSMITで変換したxmitファイルは、同じくTSOのRECEIVEコマンドで、元の形式のデータセットに復元することができます。RECFM=F|FBの固定長レコードのデータセットは、ftpなどでも転送可能ですが、可変長レコードや不定長レコードのデータセットは、そのまま転送しても、元のMVSデータセットとしては利用できません。不定長レコードの場合は長さがバラバラでもかまわない形式ですが、ロードモジュールに関しては、データレコードだけでなく、ディレクトリ情報も必要になるため、それがなければただのバイナリー・データと化してしまいます。多様な種類のMVSデータセットを簡単に転送可能にするために、TRANSMITコマンドによって、確実に転送可能な固定長レコード形式に変換しているわけです。複数のデータセットをまとめることはできないので、LHAやZipのようなアーカイバーとは違いますが、無圧縮の1ファイル専用アーカイバー[転送機能付き]、とも言えます。XMIT/RECEIVEの使い方XMITはTSOコマンドですが、いくつものデータセットを変換したり、容量の大きなデータセットを変換するには、バッチジョブによるTSOセッションで使用することもできます。XMITの後続ステップでFTPクライアントを実行すれば、変換されたデータセットを同じジョブで転送することもできます。バッチ処理によるTRANSMIT/RECEIVEコマンドの使い方のサンプルはこちらのページで紹介しています。変換可能なデータセットは順次または区分データセットですが、VSAMやDB2などのデータベースの場合は、IDCAMSユーティリティーやデータベース・システムのユーティリティー・プログラムによって順次データセットにアンロードすれば、XMITでの変換が可能になります。変換されたxmitファイルは、必ずバイナリー転送をする必要があります。TRANSMITコマンドには、データセットの変換だけでなく、メッセージの送信や付加、暗号化など、いくつもの機能があります。それらについてはTSOのコマンド解説書に詳細が載っています。MSPとVOS3では互換コマンド、ユーティリティーはありませんが、IEHMOVE互換のJSGMOVE、JSFMOVEを利用できます。IEHMOVEは順次データセットまたは区分データセットを、RECFM=FB,BLKSIZE=800,LRECL=80の形式の順次データセットにアンロードする機能を持っています。xmitファイル同様にftpや端末エミュレーターなどでの転送が可能になります。UTILITY以降の部分)、他のメーカーのシステムでアンロードしようとしても、互換のないアンロード・データセットと見なされる場合があります。MVS(z/OS)で作成したアンロード・データセットは、MSP/VOS3側で復元できますが、逆はできません。MSP/VOS3で作成したアンロード・データセットはMVSではサポートされません。MSPとVOS3の間も同じです。これは昔、MSPやVOS3はIBMのMVS互換を意識して、随所にそれをサポートしていた部分の名残があるからです。識別文字列は単なる文字なので、ヘッダーレコードの文字を無理矢理書き換えて、読み込ませたらOKだった、と言う話を聞いたことがあります。ついでですが、IEBCOPYのアンロード・データセットは3つのOS間、相互で互換があります。これは実際に仕事でよく使っていました。IEBCOPYのアンロード・データセットはVS形式なのでそのままでは転送できません。今のようにTCP/IPで簡単にネットワーク通信ができなかった頃は、磁気テープにアンロード・データセットを格納したので、アンロード・データセットが固定長になる必要はなく、IEHMOVEより簡単で使いやすかったIEBCOPYを多用していたのです。TRANSMIT/RECEIVE、IEHMOVE(JSGMOVE/JSFMOVE)の詳細は、TSOコマンド解説書、DFSMSdfpユーティリティーー、MSP/VOS3のデータセット・ユーティリティーーのマニュアルに記載されています。XMIT/RECEIVEのカスタマイズXMIT/RECEIVEは出口ルーチンによって、きめ細かなカスタマイズも可能ですが、基本的なものはパラメーターでできるようになっています。SYS1.PARMLIBのIKJTSOnnメンバーのTRANSRECで、センター毎のデフォルト属性を設定できます。OUTLIMパラメーターは要確認項目です。これは転送(変換)できる最大レコード数に影響します。大きなサイズのデータセットをXMITする場合、必要に応じてOUTLIMパラメーターを値を増やします。xmitファイルの内部形式xmitファイルの内部形式は公開されています。カスタマイズ」の章に詳しく解説されています。Manager(XMITファイルビュワー)」を作ることもできます。00:42一部記述が正確では無いと思われます。>このコマンドには転送の機能は無く、>転送可能な形式に変換するという機能のコマンドです。SetをNJEで結ばれた他のNodeのユーザーに送る事です。他のNodeとはMVS(z/OS)だけでなくVMも含まれます。ユーザーというのはMVSの場合はTSOのユーザーであり、VMの場合はVM上の仮想計算機のユーザー(基本的にはCMSユーザー)です。Setだけでなくメッセージも送る事が出来ます。確かに変換されたデータの「転送」そのものはMVSのJESのNJE機能や、VMのRSCS仮想計算機が自動的行いますので、NJEが導入されていなければ自動的な転送は行われません。送り先が自分自身のNodeのユーザーであれば当然「転送」そのものは行われません。Cardのデータとして他のNode(自分自身のNodeでもかまわない)のユーザーIDに送るよう書き込みます。formatで書き出されます。Cardとして書き出されるので、LRECLが80バイトになっています。>他のシステムへの転送と言っても、>XMIT固有の形式に変換されるため、>z/OS以外のシステムでは直接扱うことはできません。formatでこれはMVS(z/OS)固有ではありません。formatをTSOのXMIT/RECEIVEコマンドと同様に扱いますのでMVS以外VMでも扱えます。VM/CMSのマニュアルにもその形式の記述がなされています。さまご指摘ありがとうございました。それに基づき記事の一部を修正いたしました。