NETDATA は、主にIBMメインフレームシステムでのデータ転送と保存に使用されるファイル形式ですが、他のシステムでも実装が可能です。
説明
NETDATA ファイルは、アンロードされたファイル データとメタデータを含む80 バイトのカード イメージファイルであり、受信側システムで元のファイルを再構成できるようにします。完全な NETDATA ファイルは、いくつかの制御レコード、それに続くデータ レコード、そして最後にトレーラー レコードで構成されます。すべてのレコードの形式は同じです。
- ファイルの論理セグメントの長さを含む1バイトの長さフィールド。セグメントの最大長は255バイトです。長さとフラグにより、セグメントには最大253バイトのデータを含めることができます。[1]
- このセグメントを説明する1 バイトのフラグフィールド:
- X'80' - これはレコードの最初のセグメントです
- X'40' - これはレコードの最後のセグメントです。レコードに必要なセグメントが 1 つだけの場合、フラグには X'C0' が含まれます。
- X'20' - このセグメントは制御レコードの一部です
- X'10' - このセグメントには次のレコードのレコード番号が含まれます
- X'0F' - 予約済み
制御レコード
制御レコードには、長さとフラグに続く 2 バイト目から 7 バイト目に6 文字のEBCDIC識別子があります。これらには、テキスト ユニットと呼ばれるいくつかの自己定義フィールドが含まれます。各テキスト ユニットは、このテキスト ユニットを識別する 2 バイトのテキスト ユニット キー、このキーに続く 2 バイトのビッグ エンディアンバイナリ数の長さとデータのペア (通常は 1 つ)、テキスト ユニット データの長さを識別する 2 バイトの長さフィールド、および指定された長さのテキスト ユニットで構成されます。実装では、受信システムに関連しないテキスト ユニット情報はすべて無視されることが想定されています。
ヘッダー制御レコード
ヘッダー レコードは、NETDATA ファイルの最初のレコードである必要があります。識別子は「INMR01」です。送信元を識別する情報 (ノード (ホスト)、タイムスタンプ、ユーザー ID、制御レコード セグメントの長さ、ターゲット (受信側) ノードとユーザー ID) が含まれます。オプションで、受信確認の要求、データ形式のバージョン番号、送信中のファイル数、および「ユーザー パラメータ文字列」が含まれる場合があります。CMS では、送信ごとに 1 つのファイルのみが許可されますが、TSO/E およびその他のシステムでは、複数のファイルが許可される場合があります。
ファイル ユーティリティ制御レコード
このレコードは、ファイルのデータがどのように再構成されるかを説明します。その識別子は "INMR02" です。バイト 8 ~ 11 には、このレコードが適用されるファイルのビッグ エンディアン バイナリ番号が含まれます。転送に複数のファイルがある場合、1 から始まる番号が付けられます。このレコードの残りの部分は、ファイルの形式と、このファイルを再構築するために実行する必要がある 1 つ以上の手順 ("ユーティリティ プログラム") を説明します。テキスト ユニットは、ファイルの構成 (INMDSORG: 順次、パーティションなど)、固定または最大レコード長 (INMLRECL)、レコード形式 (INMRECFM: 固定、可変など)、ファイルのおおよそのサイズ (IBMSIZE)、およびユーティリティ プログラム名 (INMUTILN) を識別します。また、ファイルのブロック サイズ、作成日、ディレクトリ ブロックの数、名前、有効期限、ファイル モード番号、最終変更日、最終参照日、メンバー名リスト (パーティション データセットの場合)、メモ ファイル、およびユーザー パラメータ文字列が含まれる場合もあります。
データ制御レコード
データ制御レコードはデータの直前にあり、ユーティリティ制御レコードと同様にその形式を記述します。その識別子は「INMR03」です。このレコードは CMS では無視されますが、TSO/E では使用されます。このレコードには、ファイルの構成 (INMDSORG)、レコード長 (INMLRECL)、レコード形式 (INMRECFM)、およびファイル サイズ (IBMSIZE) が含まれます。
ユーザー コントロール レコード
ユーザー コントロール レコードは、データ ストリームの任意のポイントに出現できます。その識別子は「INMR04」です。存在する場合、CMS では無視されますが、他のシステムでは使用できます。ユーザー パラメータ文字列 (INMUSERP) のみが含まれます。
トレーラー制御レコード
このレコードはファイルの終わりを示します。識別子は「INMR06」です。このレコードには他のデータは定義されていません。
確認制御レコード
このレコードの ID は "INMR07" です。受信側システムで送信の受信を確認するために使用されます。テキスト ユニットのファイル名 (INMDSNM) またはメモ ファイル (INMTERM) のいずれかと、オプションで送信元のタイム スタンプ (INMFTIME) が含まれます。
ノートファイル(「PROFSノート」と呼ばれることもある)は「通常は手紙で行われる短いコミュニケーションです。」[2]
データレコード
データ レコード (フラグ値で識別) は、データ制御レコード (存在する場合) の後に続き、トレーラー制御レコードの前にあります。レコードのサイズは INMLRECL まで任意です。レコードは最大 253 バイトの複数のセグメントとして送信され、送信時に 80 バイトのレコードに分割され、受信側で再構成されます。各レコードのフラグ バイトの設定は、ファイルの先頭、末尾、または完全なレコードを示します。レコードのバイトには任意のビット パターンを含めることができます。文字値は予約されていません。
参考文献
- ^ IBM Corporation. 「x/VM: CMS マクロおよび関数リファレンス」。IBM Knowledge Center。2019年9 月 5 日閲覧。
- ^ IBM Corporation. 「z/VM:CMS コマンドおよびユーティリティ リファレンス」。IBM。2019年9月 6 日閲覧。
外部リンク
- Netdatax - Linux 用の NETDATA コマンド
