カタログに対する各種の操作も、AMS(アクセス方式サービスプログラム)ユーティリティーを使用して行います。カタログ・データセット自体もVSAMデータセットの1つです。
カタログされているデータセットをリストアップする
1 2 3 4 5 6 7 |
//IDCAMS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * LISTCAT LEVEL(xxxxxxxx) HIST|VOL|ALLOC|ALL LISTCAT ENTRY(MY.MASTER.*) LISTCAT [CATALOG(catname)] // |
LEVELパラメーターで、リストアップするデータセットをフィルタリングできます。USR1と指定すればUSR1.で始まるデータセットが、MY.TESTと指定すればMY.TEST.で始まるデータセットがリストアップされます。リストアップされる情報は、データセット名とデータセット種別(CLUSTER、INDEX、DATA、NONVSAM等)です。HIST|VOL|ALLOC|ALLのオプションを指定すれば、出力される情報を増やすことができます。
HIST(HISTORY)は、名前に加えて、作成日、満了日が追加して出力されます。VOL(VOLUME)は、HISTORYに加えてデータセットの格納ボリューム名が追加して出力されます。ALLOCは、VSAMデータセットのINDEXおよびDATAコンポーネントの割り振り済みスペース量情報が追加されます。ALLは、そのデータセットに関するカタログ項目がすべて出力されます。
ENTRYパラメーターもリストアップするデータセットをフィルタリングします。この例では、MY.MASTER.で始まる3つの修飾子で構成されたデータセットがリストアップされます。LEVELは、どちらかと言えば、○○○で始まるデータセット名で出したい場合に使い、ENTRYは、DSNを構成する修飾子パターンで出したい場合に使われます。LEVELの方がわかりやすいでしょう。MY.TEST.JCLは出して欲しいけど、MY.TEST.JCL.BACKUPは出して欲しくない、というときはENTRYを使います。
LEVELもENTRYも省略すれば、カタログされているデータセットがすべてリストアップされます。CATALOGパラメーターで、データセットが登録されているユーザーカタログを指定できます。省略すれば、マスターカタログが探索されます。
TSOのコマンドプロンプトでも、LISTCATコマンドは利用できますが、全データセットをリストアップしようとして、単にLISTCATと入れても有効になりません。ログオン中のTSOユーザーIDで始まるデータセット名がリストアップされてしまいます。LISTCATコマンドの前に、PROFILE NOPREFIXコマンドを使用する必要があります。元に戻すならPROFILE PREFIX(userid)と入力します。
ユーザーカタログおよびALIASをリストアップする。
1 2 3 4 5 6 |
//IDCAMS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * LISTCAT USERCATALOG VOLUME LISTCAT ALIAS ALL // |
利用可能なユーザーカタログおよび登録済みデータセットの別名(ALIAS)とカタログ先をリストアップします。
ユーザー・カタログとALIASの作成
1 2 3 4 5 6 7 8 |
//IDCAMS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE USERCATALOG - (NAME(CATALOG.Z23B.USER) - CYLINDERS(5 1) VOLUME(B3SYS1)) DEFINE ALIAS(NAME(PRJ1) RELATE(CATALOG.Z23B.USER)) // |
ユーザー・カタログは、DEFINE USERCATALOGコマンドで作成することができます。カタログ名、作成するボリューム名、大きさを指定します。作成したユーザー・カタログに、DEFINE ALIASコマンドでALIASを割り当てれば、割り当てたALIASと同じ第1修飾子を持つデータセットは、ALIASを割り当てたユーザー・カタログにカタログされます。なお、ALIASとして指定した修飾子のデータセットが既に別のカタログに登録されている場合、DEFINE ALIASコマンドは失敗します。