MSS では、PDS の各メンバーは独立した物理 PC ファイルとして実装されます。デフォルトでは、そのようなメンバーごとに別々のカタログ エントリを作成し、物理ファイルのファイル名を付ける必要がありますが、これは、PDS に非常に多くのメンバーが含まれている場合は実用的でありません。動的 PDS を使用すると、これを回避することができます。
動的 PDS を定義するには、カタログ エントリを 1 つだけ作成します。ESMAC の [Catalog Entry] ページで、[DS Org] フィールドを [PO] に設定してから、[Dynamic PDS] の脇にチェック マークを付けます。これにより、[Physical Filename] フィールドおよび [PDS Exts] フィールドが有効になります。[Physical File] フィールドに入力する値は、既存のディレクトリの名前であるとみなされます。PDS のメンバーは、このディレクトリ内の個別物理ファイルとして実装されます。
[PDS Exts] フィールドでは、スペースで区切られた 1 つ以上のファイル名拡張子を指定します。PDS メンバーを作成すると、そのメンバーの名前をベース名、このフィールドの最初のエントリをファイル名拡張子として使用した名前が物理ファイルに付けられます。
UNIX では、動的 PDS で使用されるメンバー名はすべて大文字でなければなりません。そのため、小文字のメンバー名を使用したファイルは検出されません。
次の値を使用してカタログ エントリを定義するとします。
フィールド | 値 |
---|---|
[DS Name] | SOURCE.PDS |
物理ファイル | <CATALOGFOLDER>\PAYROLL\ |
[DS Org] | PO |
[Dynamic PDS] | オン |
[PDS Exts] | CBL CPY |
ここでは、カタログ フォルダーは C:\CATALOG です。さらに次の JCL を実行します。
/FILE1 DD DSN=SOURCE.PDS(PAYUPD),DISP=OLD /FILE2 DD DSN=SOURCE.PDS(PAYREP),DISP=OLD
ここでは、SOURCE.PDS が既に存在するため、DISP=OLD になっていることに注目してください。この JCL は PAYUPD.CBL および PAYREP.CBL という物理ファイルを C:\CATALOG\PAYROLL ディレクトリに作成します。また、この JCL は、これらの個別 PDS メンバー (DSOrg=PDSM) に対するカタログ エントリを自動的に作成します。
PDS メンバーを探す際には、そのメンバーの名前と指定された各拡張子の付いたファイルがディレクトリで順番に検索され、最初に一致したファイルが使用されます。例えば、ディレクトリに PAYUPD.CBL、PAYUPD.CPY、および PAYREP.CPY が含まれている場合は、SOURCE.PDS(PAYUDP) にアクセスを試みると PAYUPD.CBL が見つかります。一致するファイルが見つかると検索は終了するため、PAYUPD.CPY が見つかることは決してありません。SOURCE.PDS(PAYREP) にアクセスを試みると、PAYREP.CPY が見つかります。