LISTCATは、「List Catalog」のことで、カタログされているデータセットの一覧を作成することです。AMS(IDCAMS)は、VSAMやカタログを操作するバッチ・ユーティリティーで、LISTCATの機能も持っています。対話処理であれば、ISPFのDSLISTユーティリティーやTSOのLISTCATコマンドが利用できます。MVSの場合、本来のTSO LISTCATコマンドは、同じ名前のAMS(アクセス方式サービス)コマンドに置き換えられています。
LISTCATは、カタログからのデータセット一覧ですが、これにに対して、データセットが格納されたDASDボリュームからのデータセット一覧がVTOCリスト(LISTVTOC)です。現在では、データセットはカタログすることが一般的です。そのため、LISTCAT機能を使いこなすことは、データセット管理をする上で大いに役立ちます。
(昔のことですが、カタログ参照のオーバーヘッドを嫌い、頻繁にアクセスするデータセットについては、必ずUNITとVOLパラメーターを明示して、カタログを見ないで済むような運用をしていたユーザーもありました。今のカタログ・システムは、初期のVSAMカタログなどに比べればパフォーマンスも向上していますし、VSAMやSMSデータセットなどカタログ抜きには運用できないものもあり、データセットはカタログして利用することが当たり前になっています)
LISTCATのJCLサンプル
1 2 3 4 5 6 7 8 9 |
//IDCAMS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * LISTCAT LEVEL(xxxxxxxx) HIST|VOL|ALLOC|ALL ① LISTCAT ENTRY(MY.MASTER.*) ② LISTCAT [CATALOG(catname)] ③ LISTCAT ALIAS ALL ④ LISTCAT USERCATALOG VOLUME ⑤ // |
- ①指定した修飾子で始まるデータセットをリストアップする
- ②指定した修飾子で構成される名前のデータセットをリストアップする
- ③カタログを指定して、そこに登録されているデータセットをリストアップする
- ④カタログの別名をリストアップする
- ⑤ユーザーカタログをリストアップする
LEVELパラメーターで、リストアップの基準となるDSNの修飾子を指定します。LEVEL(USR1)
とすれば、USR1.で始まるデータセットが、LEVEL(MY.*.DATA)
とすれば、先頭の修飾子がMY、3番目の修飾子がDATAで構成されるデータセットが、リストアップされます。LEVELを省略すれば、カタログされているすべてのデータセットが対象になります。
リストには、選択されたデータセットの種類(非VSAM、VSAM、ALIAS、カタログ等)と名前が出力されます。LEVELパラメーターが指定されていれば、そのデータセットが登録されているかカタログ名も出力されます。HISTは、作成日や満了日を追加して出力します。VOLは、HISTに加え、格納先のボリューム名と装置タイプを追加して出力します。ALLOCは、HIST、VOLに加え、割り振りスペース量を追加して出力します(ただしVSAMデータセットのみ)。ALLは、HIST、VOLおよびALLOCの情報も含めたすべてのカタログ情報が出力します。
ENTRYパラメーターで、リストアップの基準となるDSNの修飾子を指定します。ENTRY(MY.MASTER.*)
とすれば、MY.MASTER.で始まる3つの修飾子で構成されるデータセットが、リストアップされます。DSNがMY.MASTER.DATA.BACKUPの時、LEVEL(MY.MASTER)
であれば選択されますが、ENTRY(MY.MASTER.*)
では選択されません。
CATALOGパラメーターで、リストしたいデータセットが登録されているカタログを指定することができます。CATALOG(SYS1.WORKCAT)
とすれば、カタログSYS1.WORKCATに登録されたデータセットが、リストアップされます。CATALOGパラメーターの省略時は、マスター・カタログです。MSPとVOS3ではSTEPCATまたはJOBCAT DD文でカタログを指定することもできます。
ALIASパラメーターは、データセットではなく、カタログの別名をリストアップします。ALIAS名をリストアップすることで、取り扱うデータセットがどこにカタログされるのかを知ることができます。カタログの別名登録は、データセットを作成した際に、どのカタログに登録するかを決めるために行われます。例えば、修飾子USR1が、カタログSYS1.USERCATの別名として登録されていれば、USR1.SOURCEというデータセット名は、カタログSYS1.USERCATに登録されます。
USERCATALOGパラメーターは、ユーザー・カタログをリストアップします。システムにどのようなユーザー・カタログがあるかを知りたい場合に利用できます。
LISTCATは、バッチだけでなくTSOコマンドとしても実行できます。パラメーターやオプションを変えたら、どのような結果が得られるかを試したい時は、バッチよりもTSOが便利です。ただし、TSOの場合、LEVELパラメーターを省略してもすべてのDSNではなく、暗黙値としてLEVEL(userid)が設定され、ログオン中のUSERIDを先頭修飾子とするDSN一覧が表示されます。全てのDSNを表示する場合は、PROFILEコマンドでNOPREFIXを設定しておく必要があります。
LISTCATコマンドの詳細は、アクセス方式サービス・プログラム(AMS)のマニュアルに載っています。