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 つ以上のファイル名拡張子をスペースで区切って入力します。ファイル名拡張子に関係なく、すべてのファイルを含めるには、「*」(アスタリスク) と指定します。この場合、ファイル名拡張子がないファイルもすべて含まれます。
UNIX では、動的 PDS で使用されるメンバー名はすべて大文字でなければなりません。そのため、小文字のメンバー名を使用したファイルは検出されません。
次の値を使用してカタログ エントリを定義するとします。
フィールド | 値 |
---|---|
[DS Name] | SOURCE.PDS |
[Physical Filename] | <CATALOGFOLDER>\PAYROLL\ |
[DS Org] | PO |
[Dynamic PDS] | オン |
[PDS Exts] | * |
ここでは、カタログ フォルダーは C:\CATALOG です。さらに次の JCL を実行します。
/FILE1 DD DSN=SOURCE.PDS(PAYUPD),DISP=OLD /FILE2 DD DSN=SOURCE.PDS(PAYREP),DISP=OLD
ここでは、SOURCE.PDS がすでに存在するため、DISP=OLD になっていることに注目してください。この JCL は、ES_OLD_DYN_PDS=Y が設定されていれば、PAYUPD.CBL および PAYREP.CBL という物理ファイルを C:\CATALOG\PAYROLL ディレクトリに作成します。また、この JCL は、これらの個別 PDS メンバー (DSOrg=PDSM) に対するカタログ エントリを自動的に作成します。ES_OLD_DYN_PDS=N (デフォルト) が設定されている場合は、「JCL での動的 PDS の作成」で説明しているものと同様の JCL を実行したときに限り、PDS メンバーの物理ファイルが作成されてカタログ化されます。
PDS メンバーを探す際には、そのメンバーの名前と指定された各拡張子の付いたファイルがディレクトリで順番に検索され、最初に一致したファイルが使用されます。たとえば、ディレクトリに PAYUPD.CBL、PAYUPD.CPY、および PAYREP.CPY が含まれている場合は、SOURCE.PDS(PAYUDP) にアクセスを試みると PAYUPD.CBL が見つかります。一致するファイルが見つかると検索は終了するため、PAYUPD.CPY が見つかることは決してありません。SOURCE.PDS(PAYREP) にアクセスを試みると、PAYREP.CPY が見つかります。