データセットに対するデフォルトのカタログ
JOBCAT/STEPCATがあろうがなかろうが、第1修飾子が、例えば「USR1」であれば、Catalog DSN = USR1 のように、修飾子と同名のカタログで運用していれば、ALIAS(別名:エイリアス)なしでカタログにアクセスすることができます。これは、MVSの元々の仕様であって、ALIASを理解する上でも重要な機能です。
※MVSでは、z/OS V1R7からJOBCAT/STEPCATは廃止されました。
1 2 3 4 5 6 7 8 9 10 |
// JOB //JOBCAT DD DISP=SHR,DSN=USR1 ※実際には必要なし //* //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=USR1.PSFILE1 //SYSUT2 DD DISP=(,CATLG),DSN=USR1.PSFILE2, // UNIT=SYSDA,VOL=SER=WORK10,SPACE=(TRK,1) //SYSIN DD DUMMY // |
データセットに対するデフォルトのカタログへの別名登録
第1修飾子が「USR1」であるデータセットに対して、例えば、Catalog DSN = ICFCAT.USERCAT のみを使っているなら、単純にALIAS追加でカタログにアクセスできます。
1 2 3 4 5 6 7 |
// JOB ※別名登録のためのサンプルJCL //* //IDCAMS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE ALIAS(NAME(USR1) RELATE(ICFCAT.USERCAT)) // |
これによって、JCLに//JOBCAT DD DISP=SHR,DSN=USR1 を定義する必要がなくなります。
カタログに対するALIAS(別名登録)とは、あたかも第1修飾子と同じ名前(DSN)のカタログ・データセットがあるかのように見せかけることです。
元々MVSは、第1修飾子と同じ名前のカタログ・データセットを探して、それを参照する仕様になっていますから、カタログ・データセットに別名を付けることによって、結果として「第1修飾子が○○○であれば、カタログ○○○を見に行く」となるのです。
本来ALIAS自体は、データセット名に別名を付ける機能であって、特定の修飾子とカタログを結びつける機能ではありません。しかし、カタログ・データセットに対しては、ALIASをつけることによって、元々のMVSの機能(第1修飾子と同名カタログを見に行く)が有効になるため、特定の修飾子とカタログが結びつくように見えるのです。
使用するデータセットの第1修飾子と同名のカタログを使用して運用しているセンターは少なく、多くがALIASを付けるか、JOBCAT/STEPCATを使っての運用です。JOBCATの場合は、使用するカタログを明示しているので、データセットとカタログの関係がJCLを見ればわかります。
JOBCATを省略すると通常はマスター・カタログが参照されますが、本当はその前にDSNの第1修飾子と同名のカタログがないかをOSは探しています。DSNの第1修飾子と同名のカタログがないので、マスター・カタログが使われるのです。何故ALIASを付けると、マスター・カタログではなく、特定のカタログが参照されるかは、このようなしくみに依ります。
1 2 3 4 5 6 7 8 9 10 |
// JOB ※第1修飾子と同名カタログを作るためのサンプルJCL //* //IDCAMS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE USERCATALOG - USR1で始まるデータセットを作る前に (NAME(USR1) - カタログを作ること。 TRACKS(1 0) - VOLUME(WORK10)) // |