データセット(IBMメインフレーム)

IBM メインフレーム・オペレーティング・システム上に存在するコンピュータ・ファイルの種類

IBM System/360シリーズおよびその後継機種のIBM メインフレームコンピュータにおいてデータセット(IBM推奨)または データセットとは、レコード構成を持つコンピュータファイルです。この用語の使用は、例えばDOS/360OS/360から始まり、現在のVSEz/OSを含む後継機種でも現在も使用されています。これらのシステムのドキュメントでは、歴史的にファイルよりもこの用語が好まれてきました

データセットは通常、直接アクセス記憶装置(DASD)または磁気テープ[1]に保存されますが、パンチカードリーダー、カードパンチ、ラインプリンタ、ページプリンタなどのユニットレコード装置は、データセット(ファイル)の入出力(I/O)を提供できます。[2]

データセットは構造化されていないバイトストリームではなく、データセット編成、レコード形式、およびその他のパラメータによって決定される様々な論理レコード[3]およびブロック構造で構成されます。これらのパラメータは、データセットの割り当て(作成)時に、たとえばジョブ制御言語ステートメントを使用して指定されます。実行中のプログラム内では、それらはデータ制御ブロック(DCB)またはアクセス制御ブロック(ACB)に格納されます。これらは、アクセス方式を使用してデータセットにアクセスするために使用されるデータ構造です。 DSORGRECFM DD

データセット内のレコードは、固定長、可変長、または「未定義」長のいずれかです。[4]

データセット編成

OS/360の場合、DCBのDSORGパラメータはデータセットの構成方法を指定します。[5]

CQ
メッセージ制御プログラム(MCP)内のキュー型通信アクセス方式(QTAM)
CX
通信回線グループ
DA
基本直接アクセス方式(BDAM)
GS
グラフィックス・アクセス方式(GAM)用のグラフィックス装置
IS
索引順次アクセス方式(ISAM)
MQ
アプリケーション内のQTAMメッセージキュー
PO
区分編成
PS
物理順次

とりわけ、テープ上のデータセットは のみですDSORG=PS。構成の選択は、データへのアクセス方法、特に更新方法によって異なります。

プログラマーは、プログラムでデータセットの読み取りと書き込みにさまざまなアクセス方法( QSAMVSAMなど)を利用します。アクセス方法は、指定されたデータセットの構成によって異なります。

レコード形式(RECFM)

構成に関係なく、各レコードの物理構造は基本的に同じで、データセット全体で均一です。これはDCBRECFMパラメータで指定されます。RECFM=Fは、レコードが固定長であることを意味しますLRECL。固定長は、パラメータで指定されます。RECFM=Vは可変長レコードを指定します。Vレコードは、メディアに保存されるときに、レコードのバイト単位の整数長とフラグビットを含むレコード記述ワード(RDW)が先頭に付きます。およびを使用するとRECFM=FB、複数の論理レコードがテープまたはDASD上の単一の物理ブロックRECFM=VBにグループ化されます。FBとVBはそれぞれ固定ブロック可変ブロックです。(未定義)も可変長ですが、レコードの長さは制御フィールドではなくブロックの長さによって決まります RECFM=U

パラメータBLKSIZEはブロックの最大長を指定します。RECFM=FBS[6]も指定できます。これは固定ブロック標準を意味し、最後のブロックを除くすべてのブロックがフルBLKSIZEレングスである必要があります。RECFM=VBSまたは可変ブロック・スパンは、論理レコードが2つ以上のブロックにまたがることができることを意味し、RDW内のフラグは、レコードセグメントが次のブロックに継続されているか、前のブロックから継続されているかを示します。

このメカニズムにより、レコードを区切るために「区切り文字」バイト値を使用する必要がなくなります。したがって、誤ったレコード終了状態を導入することなく、データは2進整数、浮動小数点、文字など、あらゆる型にすることができます。データセットは、構造化されていないバイトストリームであるファイルとは対照的に、レコードの集合を抽象化したものです。

パーティション・データセット

区分データセット(PDS[ 7 ]は、複数のメンバーを 含むデータセットであり、各メンバーは他のタイプのファイルシステムのディレクトリと同様に、個別のサブデータセットを保持します。このタイプのデータセットは、ロードモジュール(旧形式のバインドされた実行可能プログラム)、ソースプログラムライブラリ(特にアセンブラマクロ定義)、ISPF画面定義、およびジョブ制御言語を保持するためによく使用されます。PDSは、 ZipファイルまたはCOM構造化ストレージに似ています

区分データセットは単一のボリュームにのみ割り当てることができ、最大サイズは65,535トラックです。

PDSには、メンバーに加えてディレクトリも含まれています。各メンバーには、ディレクトリ構造を介して間接的にアクセスできます。メンバーが見つかると、そのメンバーに格納されているデータは、PS(シーケンシャル)データセットと同じ方法で処理されます

メンバーが削除されると、そのメンバーが占めていたスペースは他のデータの格納に使用できなくなります。同様に、メンバーが書き換えられると、PDSの後ろの新しい場所に格納され、中央に無駄な「デッド」スペースが残ります。「デッド」スペースを回復する唯一の方法は、ファイル圧縮を実行することです。[8] IEBCOPYユーティリティ[9]を使用して行われる圧縮は、 すべてのメンバーをデータスペースの先頭に移動し、後ろに使用可能な空きスペースを残します。(現代の用語では、この種の操作はデフラグメンテーションまたはガベージコレクションと呼ばれる場合があります。今日では、データ圧縮は異なる、より複雑な概念を指します。)PDSファイルは、ディレクトリ構造を使用して個々のメンバーにアクセスするために、磁気テープではなくDASD上にのみ配置できます。区分データセットは、複数のジョブ制御言語ファイル、ユーティリティ制御文、および実行可能モジュール を格納するために最もよく使用されます

この方式の改良版として、MVS/XAおよびMVS/ESAシステム用のDFSMSdfpで導入された拡張区分データセット(PDSEまたはPDS/E、場合によっては単にライブラリー)があります。PDS/Eライブラリーは、プログラムオブジェクトまたは他のタイプのメンバーを格納できますが、両方を格納できません。BPAMは、プログラムオブジェクトを含むPDS/Eを処理できません

PDS/E構造はPDSに似ており、同じ種類のデータを格納するために使用されます。ただし、PDS/Eファイルはより優れたディレクトリ構造を備えており、PDS/Eの定義時にディレクトリブロックの事前割り当てを必要としません(したがって、十分な数が指定されていない場合でもディレクトリブロックが不足することはありません)。また、PDS/Eはメンバーを自動的に格納するため、「デッド」スペースを再利用するための圧縮操作は必要ありません。[8] PDS/Eファイルは、ディレクトリ構造を使用して個々のメンバーにアクセスするために、DASD上にのみ配置できます。

世代別データグループ

世代別データグループ[10]GDG[11]は、IBMメインフレーム( OS/360およびその後継機、またはDOS/360およびその後継機を実行)に格納されている、歴史的に関連するデータ[13]の連続世代である非VSAMデータセット[12]のグループです。[14]

GDGは通常、カタログ化されます。[13]

GDGコレクションの個々のメンバーは「世代データセット」と呼ばれます。[13] [15]後者は絶対番号、ACCTG.OURGDG(1234)または相対番号((-1)前の世代、(0)現在の世代、(+1)次の世代)で識別されます。[16]

GDGは、データセットの世代を何世代保持し、どの世代で削除するかを指定します。新しい世代が作成されるたびに、システムは1つ以上の古い世代を削除するかどうかを確認します。

GDGの目的は、コマンド言語JCLを使用してアーカイブを自動化することです。データセット名は汎用的です。DSNが表示される場合、GDGデータセットは履歴番号とともに表示されます。

(0)は最新バージョンです

(-1)、(-2)、…は前の世代です

(+1)は新しい世代です(DDを参照)

GDGのもう1つの用途は、現在利用可能な世代数を知らなくても、JCLスクリプト内ですべての世代を同時に指定できることです。これを行うには、データセットを指定する際に、JCL内の括弧と世代番号を省略する必要があります。

GDG JCLと機能

世代データグループは、 IEHPROGMユーティリティBLDGステートメント[17] 、またはさまざまなパラメータを設定できる新しいIDCAMSユーティリティ[19]のステートメント[18]を使用して定義されます。 DEFINE GENERATIONGROUP

  • LIMIT(10)世代数の制限は10に制限されます
  • SCRATCH FOR (91)各メンバーは、制限された世代まで、少なくとも91日間保持されます。

IDCAMSは、GDGを削除(およびオプションでカタログ解除)することもできます。[20]

それぞれ少なくとも35日経過した5つの安全スコープの標準GDGの作成:

//ステップ1 EXEC PGM = IDCAMS // SYSPRINT DD SYSOUT = * // SYSIN DD * DEFINE GDG (NAME('DB2.FULLCOPY.DSNDB04.TSTEST') LIMIT(5) SCRATCH FOR(35)) /*  




標準GDGを削除します。

//ステップ3 EXEC PGM = IDCAMS // SYSPRINT DD SYSOUT = * // SYSIN DD * DELETE DB2.FULLCOPY.DSNDB04.TSTEST GDG FORCE /*  




参考文献

  1. ^ 「カタログとは?」。IBM磁気テープ上のデータ・セットのカタログ作成...
  2. ^ 「IBM Knowledge Center - IBM製品資料のホーム」。publib.boulder.ibm.com
  3. ^ データ・セットとは?」。IBMデータ・セット…1つ以上のレコードを含むファイル
  4. ^ 「データセット・レコード・フォーマット」。IBM 特定のデータセット内のレコードは、固定長または可変長のいずれかです。
  5. ^ 「セクションIV:DDステートメント - DCBパラメーター」(PDF)。IBM System/3S0オペレーティング・システム:ジョブ制御言語リファレンス - OSリリース21.7 (PDF) 。IBMシステム・リファレンス・ライブラリー。IBM。138  139ページ。GC28-6704-4。
  6. ^ 「例:レコード・フォーマットVBS」。IBM 可変長、ブロック化、スパン(VBS)
  7. ^ 「PDSの構造」、z/OS DFSMSデータ・セットの使用法 バージョン2 リリース3 (PDF)、2018年10月2日、SC23-6855-30
  8. ^ ab Stephens, David(2008年10月)。What On Earth is a Mainframe?(メインフレームとは何か?)Lulu.com。52ページ。ISBN 978-1-4092-2535-52018年5月11日閲覧
  9. ^ 「区分データ・セットの圧縮」、z/OS DFSMSdfpユーティリティー バージョン2 リリース3 (PDF)、IBM Corporation、2017年7月17日、SC23-6864-30。区分データ・セットには、削除されたメンバーまたは更新されたメンバーの古いバージョンがかつて存在していた未使用領域(ガスと呼ばれることもあります)が含まれます。この未使用スペースは、区分データ・セットが新しいデータ・セットにコピーされたとき、またはインプレース圧縮操作が正常に完了した後にのみ再利用されます。PDSEでは意味がなく、要求されても無視されます
  10. ^ 「世代別データグループ(GDG)入門と例」。世代別データグループ(GDG)を作成および処理します。
  11. ^ 「JCLチュートリアルリファレンス - 世代別データグループ」。世代別データグループ(GDG)
  12. ^ 「世代別データ・グループとは?」。IBM.com…非VSAM…
  13. ^abc 「世代別データ・セット」。IBM 連続的、歴史的に関連する、
  14. ^ 「VSE/VSAMコマンド」(PDF)。オリジナル(PDF)から2022年1月31日にアーカイブ。 2021年10月11日閲覧
  15. ^ 「世代別データ・セットとは…の1つです。 」
  16. ^ 「GDGとは?」
  17. ^ 「BLDG(Build Generation Index)ステートメント」(PDF)。OSユーティリティ(PDF)。IBMシステム・リファレンス・ライブラリー(第16版)。IBM 1973年4月。269ページ。GC28-6586-15 。 2022年5月19日閲覧
  18. ^ 「世代別データグループの定義」(PDF)。OS/VSアクセス方式サービス(PDF)。システム(第2版)。IBM 1974年5月。107  110ページ。GC26-3836-1。 2022年5月19日閲覧
  19. ^ 「IBM 世代別データグループ(GDG)の作成と使用方法」。IBM 2012年3月2日。GDGを作成…IDCAMSが実行します。
  20. ^ 「IDCAMS – JCLを使用したGDGベースの作成と削除」。
  • 新しいメインフレーム入門:z/OSの基礎。Wayback Machineに2019年4月25日にアーカイブ。第5章「データセットの操作」、2011年3月29日。ISBN   0738435341
「https://en.wikipedia.org/w/index.php?title=Data_set_(IBM_mainframe)&oldid=1306498892#Data_set_organization」より取得