運用エンジニアのためのMVS入門

第8回 データセット編成(データセットの種類)

概要

メインフレームはあなたの企業を始め、多くの企業の基幹システムを支えています。とりわけ金融、製造、公共など、日本の基幹産業で今日も働いています。新しいニュースは少ないものの、まさに業務を確実に処理するための大きな存在です。世の中にはあまり知られていませんが、オープン系をいまだに超えている技術、ノウハウが生きている分野です。黙って国を支えているITといっても過言ではないと思います。
そんなシステムを品質よく、安定して運用するためには、業務運用マニュアルや先輩・上司からの言い伝えだけでなく、確かな知識が必要です。
ここではメインフレームの代表的OSであるMVS(z/OS)の基本的なしくみについて、運用部門に携わる新人エンジニアに必要なものを解説します。

MVSのデータセットにはレコードの配列方法によって複数の種類があり、編成(DSORG:Dataset Organization)と呼ばれます。
データセットのアクセスには、アクセスメソッド(AM:Access Method:アクセス法)と呼ばれるプログラミング・インタフェースを用いるのが一般的で、データセット編成に応じたアクセス法が、OSのデータ管理機 能によって提供されています。アクセス法はアセンブラー言語で使用するためのAPIで、COBOLやPL/Iではファイル定義やファイルアクセス・ステー トメントを介して間接的に使用されます。どのような言語でプログラムを作成するにせよ、あるいはプログラム作成には直接携わらないにせよ、データセット編 成とアクセス法の概要を理解することは、MVSでデータセットを作成し、編集し、操作する上で必要かつ重要です。いくつもの種類のデータセット編成があり ますが、現在でもよく使われる代表的なものに限定して紹介します。

順次データセット

順次データセットはレコードが先頭から順番に並んでいるデータセットで、MVSにおける最も基本的なデータセットです。ディスク、テープ、プリン ターなどどのような装置にも記録・出力できるので、さまざまなデータの保管や印刷(出力)用に使われます。順データセット(MSP)、順編成データセット (VOS3)、PS(Physically Sequential)ファイル、SAMファイルなどいくつかの呼び名があります。

SAMはSequential Access Methodの略で順次データセットのアクセス法で、QSAM(Queued SAM)とBSAM(Basic SAM)の2種類があります。
BSAM は基本的なアクセス法でデータセットをブロック単位でアクセスします。論理レコードへの分割はアプリケーション・プログラム自らが行う必要があり少々面倒 ですが、ブロックを飛ばしてアクセスしたり、後ろへ戻ったりなど細かな制御ができます。反面I/Oを効率よく行うためのバッファリング制御なども自分でや らなければならないので機能や性能を求めるとプログラムは複雑になります。使いこなすためにはハードウェア上にデータがどのように記録されるかの知識も必 要です。

QSAMはデータセットをレコード(論理レコード)単位にアクセスするためのインタフェースです。特長はレコード単位であるためプログラミングが容 易であること、自動的なバッファリング制御により、高速なI/O処理が行われることです。BSAMに比べきめ細かな制御機能は省かれていますが、それらは 一般のデータセットのアクセスではほとんど必要とされません。

区分データセット

区分データセットは、複数の順次ファイルを1つのデータセットにまとめて格納できるようにしたものです。データセット内の1つ1つの順次ファイルを メンバーと呼びます。データセットはディレクトリ部とメンバー部の2つに分かれて構成され、ディレクトリ部はデータセットの先頭にあります。ディレクトリ 部は1つまたは複数のディレクトリ・ブロックで構成され、どのメンバーがどの位置にあるかなどを管理するインデックスです。区分データセットは構造上の特 性からDASDボリュームにのみ作成することができます。ただし複数ボリュームにまたがることはできません。

区分データセットは主にプログラムやJCL、パラメーターなどのライブラリーファイルとして使われます。またプログラムでも実行可能形式のロードモ ジュールは必ずこの区分データセットに格納されなければなりません。このデータセットも区分編成データセット(VOS3)、PO(Partitioned Organization)ファイル、PDS(Partitioned Dataset)ファイルまたは単にPDSなど、やはりいくつかの呼び名があります。

区分データセットの大きな特性が、圧縮処理が必要であることです。メンバーは必ず、メンバー部の最後尾に追加する形で書き込まれます。同じメンバー の再書き込みで、レコード数が増えていなくても元の位置に書き戻されることはありません。新規・既存の区別なく必ずメンバー部の最後尾に追加され、メン バー領域のフラグメンテーションが避けられない仕様になっています。このためメンバーの読み出しと書き込みを繰り返して行くと、やがてメンバー部に空きス ペースがなくなり、メンバーの追加や更新ができなくなります。メンバーの追加のみでこうなったのであればデータセット自体の大きさが足りないので作り直し ですが、更新の繰り返しでこうなったのであれば、更新前のメンバーが使用していたスペースは空きのままで残っていますから、各メンバーの格納位置をずらす ことで解消できます。これが区分データセットの圧縮で、バッチまたは対話処理のユーティリティで行うことができます。

VSAMデータセット

VSAM(Virtual Storage Access Method)もデータをレコード単位に転送し管理するための仕組みですが、他のデータセットと異なりOS/360からの互換ではなくS/370システム による仮想記憶の出現によって実装されました。当初からDASDと仮想記憶の使用を前提に設計されたもので従来からあるデータセット編成とアクセス法に比 べ以下のような特徴を持ちます。

  • 1つのアクセス法(VSAM)で目的に応じた複数の編成を持つファイルをサポートする。
  • デバイスの物理的特性を意識する必要がない。
    (従来は装置の特性や、装置上の物理的な記録フォーマットを意識する必要があった。特に基本アクセス法)
  • アクセス効率の向上。
  • カタログによるデータセット管理。
    (データセットの構成情報はVTOCだけでなく、カタログも使用して管理するためデータセットの構造がVTOCの仕様に制限されない)
  • データの機密保護や保全性の向上。

VSAMでもデータの実体はDASD上のデータセットとして格納されます。しかし順次データセットや区分データセットのように、物理的な構造がその ままプログラムにマッピングされません。DASD上のデータセットにはVSAMによる内部フォーマットによってデータが整理されて格納されています。この 中のデータをプログラムで扱うレコードの形式に再構成して仮想記憶上に展開するのがアクセス法としてのVSAMです。またVSAMはカタログが前提のファ イルシステムで、カタログ・データセット自身もVSAMによって構築されています。

VSAMは以下の4種類のタイプのデータセットをサポートします。

  • KSDS(キー順データセット)
    レコードはキーの値で順番に並び、キーによってレコードがアクセスできます。データベースの原型とも言えます。
  • ESDS(エントリー順データセット)
    レコードは入力順に並び、先頭から順次にあるいは先頭からの相対位置でアクセスできます。VSAMにおける順次データセットです。
  • RRDS(相対レコードデータセット)
    RRDSはデータセットをスロットと呼ばれる論理的な枠で区切り、レコードをその枠にはめ込むような形で格納します。スロットには番号が付けられ先頭から1,2,3…と順番に振られ、レコードは番号順に並び、番号によって直接アクセスできます。
  • LDS(リニアデータセット)
    論理的なレコードに分割されているわけではなく、先頭から最後まで1つの繋がった連続したスペースによって構成されるデータセットです(VOS3ではFDS(Flat Data Set)と呼ばれます)。
    レコードとしての論理単位はありませんがデータセットそのものは4KB毎に区切って記録されています。LDSは主に仮想記憶に入りきらない大量のデータを、メモリー上でアクセスできるようにする仕組みのために用いられます。

VSAMはさまざまな編成がサポートされ、キーによる検索やランダムなアクセスなどが論理レコード単位にできるため、アプリケーションによる業 務用データの格納用に非常によく使われました。現在ではデータベース・システムの利用が一般化したため、アプリケーションにおけるメインのデータ・スト レージとしての利用度は減りましたが、現役のファイルシステムとして互換目的だけでなく多くの場面で利用されていますし、MVSのデータ・ストレージ機能 の基盤として重要な役割を果たしています。

データベース・システム

VSAMデータセットは業務処理用のマスターファイルを構成するために非常によく利用されてきました。しかし現在ではデータベース・システムが一般 的に利用されるようになっています。特にオンライン・システムではトランザクション・データ量が増えてくると、単純なレコードの集合では処理がむずかしく なったり、応答時間に影響が出てきます。このような問題を解決するためにデータを種類やカテゴリーに沿って集めて、検索・抽出・更新・追加・削除などの再 利用が容易にできるようにしたものがデータベース管理システムです。データベース・システムはOSの機能ではなく、メーカーやソフトウェア・ベンダーの有 償製品として提供されています。

トランザクション処理で使用されるデータベースにはトランザクション・リカバリーに連動した機能が実装されます。一般的にデータベースではレコード はダイレクトに更新されるわけでなく、一旦中間状態で記録しておき、関連するレコードはトランザクション完了時に更新を確定させます。これがコミットで す。反対にトランザクションの処理に失敗したら更新前の状態に戻します。これがロールバック(バックアウト)です。また更新されたレコードのログ情報 (ジャーナル)を記録してバックアップセットから最新の状態を復元できるようにするしたり、データベース全体や個々のレコードの整合性を保つための排他制 御、レコードへアクセスするための言語サポートなどさまざな機能も実装されます。

データセット内のレコードの配列方法が「編成(DSORG)」で、編成に応じた アクセス法(API)が提供されていること。基本となるデータセット編成が順次データセットと区分データセットであること。アプリケーション・プログラム などで使用する、業務用データの格納にはVSAMデータセットやデータベース・システムがよく利用される。と言う点を理解しておきましょう。

なおデータセットのレコード形式と編成の種類、VSAMのKSDS、ESDS、RRDS、LDSの各データセットについては、こちらの記事にも解説していますので、興味のある方はご覧下さい。
「メインフレーム・コンピュータ」で遊ぼう・データセットの種類とアクセス法 

次回はIPLとターミネーションについてお話しします。

連載一覧

コメント

筆者紹介

株式会社アルテシード

代表取締役 神居 俊哉(かみい としや)

http://www.arteceed.com
ビーコンITにて約20年にわたり、独SoftwareAG社のTPモニター・ソフトウェア製品などのサポートや同製品の富士通、日立OSへのポーティングのためのシステムプログラム開発などを行ってきた。現在はメインフレーム・コンピュータに関する技術スキルを後進に伝え、基礎知識や実践的な技術を広めることで企業の情報システムを支えるべく、株式会社アルテシードを設立。併せて、メインフレーム・コンピュータ技術情報サイト“「メインフレーム・コンピュータ」で遊ぼう”(http://www.arteceed.net/
を主宰し、z/OSやMSP、VOS3など代表的なメインフレーム・システムのコミュニティ活動を展開開始。基本スキルから高度なプログラミング技術の解説、サンプルの提供、ならびに関連する各種の技術情報の交換なども行っている。

メインフレームでは約20年ぶりの和書、「メインフレーム実践ハンドブック」を3月にリックテレコム社より刊行。

バックナンバー