VSAMデータセットの操作いろいろ

AMS(アクセス方式サービスプログラム)は、VSAMデータセットとカタログ操作用のユーティリティ・プログラムです。しかし、その応用範囲は広く、VSAMだけでなくPSやPDSなどの非VSAMデータセットに関してもさまざまな操作を行うことができる、データセット操作の統合ユーティリティでもあります。ここではVSAMデータセットとカタログ・データセットに関するいくつかのサンプルを紹介します(足りないものはマニュアルを見てください)。

AMSを使用した非VSAMデータセットの操作サンプルに関しては、別の記事「非VSAMデータセットの操作いろいろ」をご覧下さい。

JCLの基本形

プログラム名は、MSPではKQCAMS、VOS3ではJSCVSUTですが、どちらのOSでもIDCAMSの別名が付いているので、そのままIDCAMSと指定しても利用できます。このユーティリティーは、使いたい機能に応じたAMS制御ステートメントをSYSINに記述することで処理を行います。ただし、制御ステートメントには一部非互換もあるので、必要に応じてマニュアルを参照してください。

VSAMデータセットの作成

VSAMデータセットの作成には、DEFINE CLUSTERコマンドを使います。この例では、新しいエントリー順データセット(ESDS)、TEST.VSAMFILEを、ボリュームWRKVOLに作成します。レコード長は80バイト、レコード数は初期値100レコード分(増分10レコード分)で作成します。TEST.VSAMFILEはクラスター名で、JCLのDSNパラメーター等に指定する名前となりますが、DASD上の実際のデータセット名は「TEST.VSAMFILE.DATA」となります。その他の詳細は、AMSユーティリティのマニュアルを参照して下さい。

VSAMデータセットの改名と削除

VSAMデータセットもリネームできます。最初の例は、クラスター名の変更です。データ・コンポーネントやインデックス・コンポーネントの名前は変更されません。コンポーネント(DASD上の実体データセット)の名前を変える場合は、コンポーネント名で指定します。それが2番目の例です。最後のDELETEは、VSAMデータセットの削除を行います。VSAMデータセットは、BR14の実行JCLでDISP=(OLD,DELETE)としても消せません。エラーにならずにノーマルエンドしますが、実際は消えていません。(※現在のz/OSでは、JCLのDISPパラメーターの指定でも削除することができます)

VSAMデータセットの印刷

VSAMデータセットの内容を出力(プリント)するには、PRINTコマンドを使います。
この例では、VSAMデータセットTEST.VSAMFILEのレコード内容を、そのまま出力します。FKEYパラメーターは、印刷を開始するレコード(キーで指定)を指定し、COUNTは印刷を開始するレコードから何レコード分出力するのかを指定するオプションです。COUNTではなく、TOKEYパラメーターで、印刷を終了するレコード(キーで指定)を指定することもできます。オプション・パラメーターの詳細は、AMSユーティリティのマニュアルを参照して下さい。

VSAMデータセットのアンロード

VSAMデータセットの内容は、順次編成データセットにアンロードできます。これは、VSAMデータセットのバックアップにもなります。IN側をPSデータセット、OUT側をVSAMにすれば、VSAMデータセットへのデータのローディングです。