AMS(アクセス方式サービスプログラム)は、VSAMデータセットとカタログ操作用のユーティリティ・プログラムです。しかし、その応用範囲は広く、VSAMだけでなくPSやPDSなどの非VSAMデータセットに関してもさまざまな操作を行うことができる、データセット操作の統合ユーティリティでもあります。ここではVSAMデータセットとカタログ・データセットに関するいくつかのサンプルを紹介します(足りないものはマニュアルを見てください)。
AMSを使用した非VSAMデータセットの操作サンプルに関しては、別の記事「非VSAMデータセットの操作いろいろ」をご覧下さい。
JCLの基本形
| 1 2 3 4 5 6 7 8 9 10 | //         JOB Statement //********************************************************************* //*        Sample JCL - IDCAMS //*        =================== //********************************************************************* //IDCAMS   EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN    DD *   AMS制御ステートメント // | 
プログラム名は、MSPではKQCAMS、VOS3ではJSCVSUTですが、どちらのOSでもIDCAMSの別名が付いているので、そのままIDCAMSと指定しても利用できます。このユーティリティーは、使いたい機能に応じたAMS制御ステートメントをSYSINに記述することで処理を行います。ただし、制御ステートメントには一部非互換もあるので、必要に応じてマニュアルを参照してください。
VSAMデータセットの作成
| 1 2 3 4 5 6 7 8 | //SYSIN    DD *  DEFINE CLUSTER -           (NAME(TEST.VSAMFILE) -            VOLUMES(WRKVOL) -            RECORDS(100 10) -            RECORDSIZE(80 80) -            NONINDEXED) // | 
VSAMデータセットの作成には、DEFINE CLUSTERコマンドを使います。この例では、新しいエントリー順データセット(ESDS)、TEST.VSAMFILEを、ボリュームWRKVOLに作成します。レコード長は80バイト、レコード数は初期値100レコード分(増分10レコード分)で作成します。TEST.VSAMFILEはクラスター名で、JCLのDSNパラメーター等に指定する名前となりますが、DASD上の実際のデータセット名は「TEST.VSAMFILE.DATA」となります。その他の詳細は、AMSユーティリティのマニュアルを参照して下さい。
VSAMデータセットの改名と削除
| 1 2 3 4 5 | //SYSIN    DD *  ALTER  TEST.VSAMFILE NEWNAME(TEST.VSAMFILE.BACKUP)  ALTER  TEST.VSAMFILE.DATA NEWNAME(TEST.VSAMFILE.BACKUP.DATA)  DELETE TEST.VSAMFILE.BACKUP // | 
VSAMデータセットもリネームできます。最初の例は、クラスター名の変更です。データ・コンポーネントやインデックス・コンポーネントの名前は変更されません。コンポーネント(DASD上の実体データセット)の名前を変える場合は、コンポーネント名で指定します。それが2番目の例です。最後のDELETEは、VSAMデータセットの削除を行います。VSAMデータセットは、BR14の実行JCLでDISP=(OLD,DELETE)としても消せません。エラーにならずにノーマルエンドしますが、実際は消えていません。(※現在のz/OSでは、JCLのDISPパラメーターの指定でも削除することができます)
VSAMデータセットの印刷
| 1 2 3 4 | //SYSIN    DD *  PRINT IDS(TEST.VSAMFILE) CHAR  PRINT IDS(TEST.VSAMFILE) FKEY(0345673412) COUNT(100) // | 
VSAMデータセットの内容を出力(プリント)するには、PRINTコマンドを使います。
この例では、VSAMデータセットTEST.VSAMFILEのレコード内容を、そのまま出力します。FKEYパラメーターは、印刷を開始するレコード(キーで指定)を指定し、COUNTは印刷を開始するレコードから何レコード分出力するのかを指定するオプションです。COUNTではなく、TOKEYパラメーターで、印刷を終了するレコード(キーで指定)を指定することもできます。オプション・パラメーターの詳細は、AMSユーティリティのマニュアルを参照して下さい。
VSAMデータセットのアンロード
| 1 2 3 4 5 6 7 | //SYSUT1   DD DISP=SHR,DSN=TEST.VSAMFILE //SYSUT2   DD DISP=(,CATLG),DSN=TEST.VSAMFILE.UNLOAD, //            UNIT=SYSDA,VOL=SER=WRKVOL,SPACE=(TRK,(10,10)), //            DCB=(RECFM=FB,BLKSIZE=0,LRECL=80) //SYSIN    DD *   REPRO INFILE(SYSUT1) OFILE(SYSUT2) // | 
VSAMデータセットの内容は、順次編成データセットにアンロードできます。これは、VSAMデータセットのバックアップにもなります。IN側をPSデータセット、OUT側をVSAMにすれば、VSAMデータセットへのデータのローディングです。