非VSAM(PS、PDS)データセットの操作いろいろ

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

JCLの基本形

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

データセットをカタログする、アンカタログする

DEFINE NONVSAMはカタログ、DELETEがアンカタログです。NSCRオプションを付けているので、削除はされずアンカタログだけされます。

データセットを改名(リネーム)する、削除する

ALTERは、データセットの属性変更です。この場合は、データセット名の変更となります。DELETEでデータセットが削除されます。

同じ事は、IEHPROGM(MSPではJSGPROGM、VOS3ではJSFCTLG)ユーティリティでも行えますが、カタログされているデータセットの場合、カタログ登録内容は変更されません。カタログされているデータセットのリネームならAMSの方が便利です。削除であれば、IEFBR14を使いジョブ管理の機能で消してしまってもかまいません。

データセットの削除と共にカタログからも削除する場合は、DISPとDSNパラメーターのみを指定します。下記のように、UNITとVOL=SERを指定してしまうと、データセットは削除されますがカタログ登録は残ってしまいます。


区分データセットのメンバーを改名(リネーム)する、削除する

AMSでは、メンバー名を()で指定すると、データセットではなくその中のメンバーに対する操作になります。

データセットまたはメンバー内容をプリントする

PRINTコマンドで、データセットやメンバーの内容をプリントすることができます。ただし、1レコード毎にユーティリティが付ける見出しが出力されてしまいます。パック10進数やバイナリー値などを含む業務プログラム用データの印刷向けです。JCLやソースプログラムなどの印刷では、メンバーの内容がそのままベタで出力される方がいいでしょうから、その場合にはREPROコマンドを使えます。PRINTコマンドと違って、出力先の指定が必要です。例では、OFILEパラメーターで出力先を定義したDD文のDD名を指定しています。

区分データセットを圧縮する

区分データセットの圧縮は、AMSではなくIEBCOPYを使います。自分専用で使っていて他人がアクセスしないことがわかっているデータセットでない限り、DISP=OLDにすることを勧めます。