ファイルとデータ・セット

この章では、MSS で次のタイプのファイルを使用する方法について簡単に説明します。

カタログ・ファイル

エンタープライズ・サーバーで実行される JCL ジョブに必要なデータ・セットに関する情報を保持するには、カタログ・ファイルを使用します。

カタログ・ファイルの名前とロケーションは、JCL 用のエンタープライズ・サーバーを設定するときに、ES Admin の [Server > Properties > MSS > JES] ページにある [System Catalog] フィールドで指定します。このフィールドを変更すると、別のカタログ・ファイルを使用できます。

カタログ・ファイルのディレクトリーは catalog と呼ばれます。このディレクトリーが存在しない場合は、JCL を正常にサブミットするために事前に作成する必要があります。

カタログ・ファイルが存在しない場合、MSS は最初のジョブの実行開始時にカタログ・ファイルを作成します。

メインフレーム環境との接続を維持するために、引き続き MVS データ・セット名を JCL 文と TSO コマンドで使用することができます。ただし、これらの名前は非メインフレーム環境では意味を持たないため、MSS はデータ・セットを表すローカル・ファイルの名前も必要とします。カタログ・エントリーには両方の名前が含まれます。

注:サーバー間でカタログを共有することはできません。

データ・セット・ファイル

このセクションでは、データ・セットと共に MSS を使用する方法について基本的な情報を示します。この件に関する詳細については、高度なデータ・セット情報の章を参照してください。

JCL 文または TSO コマンドで参照されるデータ・セットは、そのデータ・セットを表すローカル・ファイルを MSS が探し出せるように、カタログ内にエントリーを持っている必要があります。これらのデータ・セットには、次のものが含まれます。

カタログ内のエントリーは、カタログ式または非カタログ式データ・セットを対象にすることができます。メインフレームでは、カタログ・エントリーがなくてもオペレーティング・システムでデータ・セットを見つけることができるように、データ・セットを JCL 文で完全に指定できます。MSS では、JCL 内の情報はボリュームやシリアル番号などの Windows または UNIX 環境では意味を持たないメインフレーム・ロケーションに関連するため、非カタログ式データ・セットであってもカタログ内にエントリーを持っている必要があります。カタログを表示するときに非カタログ式データ・セットのカタログ・エントリーを表示させるかどうかは選択可能です。

JCL 文または TSO コマンドで参照されないデータ・セットは、カタログ内のエントリーを必要としません。例えば、存在するデータ・ファイルにのみアクセスするプログラムを記述する場合、そのプログラムでは実際の物理ファイル名を環境部の SELECT 句で指定する必要があります。

カタログにエントリーを含める方法としては、次の 3 つがあります。

MSS は、物理ファイル名を割り当てるときに、ES Admin の [Properties > JES] ページで設定されたデフォルトのデータ・ファイル・パスを使用し、その後に .dat 拡張子付きのメインフレーム名を使用します。例えば、データ・ファイルのデフォルト・パスが /catalog/datasets の場合、MFE2004.S1217.S160553.J01013.D00006.SYSOUT という MVS 名の付いたファイルは、/CATALOG/DATASETS/MFE2004.S1217.S160553.J01013.D00006.SYSOUT.DAT としてローカルに格納されます。

Fileshare によるデータ・ファイルへのアクセス

ネットワークおよびマルチユーザー・システム上のファイルは、Fileshare を使用して共有することができます。最大 16 の Fileshare サーバーを COBOL システムに接続できるため、複数のマシンにわたってデータを分割することができます。

Fileshare の使用を設定する方法としては、次の 3 つがあります。

これらの方法は、組み合わせて使用することができます。

カタログにおける Fileshare ロケーションの指定

ファイルが Fileshare サーバーに置かれていることを指定するには、[ESMAC Catalog] ページの [New] を使用して新しいカタログ・エントリーを作成するときに、$$servername を接頭辞として付けたファイルのフル・パス名を [Physical File] に入力します。サーバーに適した表記規則を使用してください。例えば、UNIX サーバー上の data01.dat というファイルには、次のようなパス名が必要になります。

$$unixserver/usr/accounts/data01.dat

一方、メインフレーム上に置かれた同じファイルには、次のようなパス名が必要になります。

$$MAINFRAME\FILES.ACCOUNTS.DATA01

SELECT 句での Fileshare ロケーションの指定

カタログされていないファイルがメインフレーム形式ではないため、それらのファイルにアクセスするプログラムを記述し、またそれらのファイルを Fileshare サーバーに格納する場合は、次の例のように Fileshare サーバー名を環境部の I-O-Section の SELECT 句に含めることができます。

select datafile assign to "$$unixserver/usr/accounts/data01.dat".

Fileshare クライアント設定ファイルでの Fileshare ロケーションの指定

Fileshare クライアント設定ファイルは、fhredir.cfg と呼ばれます。fhredir.cfg ファイルが存在する場合、MSS は、明示的な Fileshare サーバー・ロケーションがカタログ・エントリーまたは SELECT 句で指定されていないファイルを必要とするたびに、fhredir.cfg ファイルを参照します。明示的な Fileshare サーバー・ロケーションが指定されている場合は、fhredir.cfg ファイルを参照しません。

カタログされたファイルの代わりに fhredir.cfg ファイルで Fileshare ロケーションを指定する場合は、名前の割り当てを MSS に行わせるのではなく、fhredir.cfg ファイルのエントリーに一致する明示的なファイル名を [Physical File] で確実に指定してください。Fileshare では大文字と小文字が区別されるため、カタログおよび fhredir.cfg ファイル内のファイル名には同じ表記を使用する必要があります。

fhredir.cfg ファイルのロケーションは、デフォルト設定の現在のフォルダにするか、FHREDIR 環境変数で指定することができます。

FHREDIR 環境変数は、エンタープライズ・サーバーを起動する前に設定する必要があります。

Enterprise Server 内での FHREDIR の設定と Fileshare の使用に関する詳細については、Enterprise Server の『構成と管理』『構成』の章で Fileshare のセクションを参照してください。

fhredir.cfg ファイル内のエントリーは、さまざまな方法で使用できます。例えば、次のような操作が可能です。

各オプションの詳細と例については、『Fileshare ガイド』標準的な操作構成の章を参照してください。

区分データ・セット (Partitioned Data Set; PDS)

MVS メインフレーム環境では、ファイルを個別データ・セットとして、または区分データ・セット (PDS) の一部として定義することができます。MSS では、その両方の方法をサポートしています。

区分データ・セット (編成 = PO) では、個々のデータ・セットをメンバー (編成 = PDSM) と呼びます。MSS に対する区分データ・セットとそのメンバーの定義方法は、他のデータ・セットと同様です。

プロシージャー・ライブラリー

プロシージャー・ライブラリーは、JCL ジョブストリームで指定できるプロシージャーを含んだ区分データ・セットです。MSS は、EXEC 文によって実行された JCL プロシージャーを次の順に検索します。

  1. インストリーム・プロシージャー
  2. JCL 内の JCLLIB 文で指定されたライブラリー

    これらのライブラリーはカタログに割り当てる必要があります。

  3. JCL Support を有効にするときに ES Admin の [Server > Properties > JES] ページで指定したライブラリー

動的 PDS

MSS では、PDS の各メンバーは独立した物理 PC ファイルとして実装されます。デフォルトでは、そのようなメンバーごとに別々のカタログ・エントリーを作成し、物理ファイルのファイル名を付ける必要がありますが、これは、PDS に非常に多くのメンバーが含まれている場合は実用的でありません。動的 PDS を使用すると、これを回避することができます。

動的 PDS を定義するには、カタログ・エントリーを 1 つだけ作成します。ESMAC の [Catalog Entry] ページで、[DS Org] フィールドを [PO] に設定してから、[Dynamic PDS] の脇にチェック・マークを付けます。これにより、[Physical Filename] フィールドと [PDS Exts] フィールドが有効になります。[Physical File] フィールドに入力する値は、既存のディレクトリーの名前であるとみなされます。PDS のメンバーは、このディレクトリー内の個別物理ファイルとして実装されます。

[Physical Filename] フィールドは、Windows ではバックスラッシュ ("\")、UNIX ではスラッシュ ("/") で終わる必要があります。カタログ・エントリーの場合と同様に、このフィールドではフル・パスを指定しなければなりません。「<CATALOGFOLDER>」という文字列を使用すると、カタログが格納されているディレクトリーを表すことができます。

[PDS Exts] フィールドでは、スペースで区切られた 1 つ以上のファイル名拡張子を指定します。PDS メンバーを作成すると、そのメンバーの名前をベース名、このフィールドの最初のエントリーをファイル名拡張子として使用した名前が物理ファイルに付けられます。

例えば、次の値を使用してカタログ・エントリーを定義します。

フィールド
[DS Name]SOURCE.PDS
[Physical File]<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.CBLPAYUPD.CPY、および PAYREP.CPY が含まれている場合は、SOURCE.PDS(PAYUDP) にアクセスを試みると PAYUPD.CBL が見つかります。一致するファイルが見つかると検索は終了するため、PAYUPD.CPY が見つかることは決してありません。SOURCE.PDS(PAYREP) にアクセスを試みると、PAYREP.CPY が見つかります。

UNIX では、動的 PDS で使用されるメンバー名と拡張子はすべて大文字でなければなりません。そのため、小文字のメンバー名または拡張子を使用したファイルは検出されません。

JCL での動的 PDS の作成

次の例に示した拡張子構文を使用すると、JCL で動的 PDS を作成できます。

//DD1      DD DSN='TEST.DYN1',DISP=(NEW,CATLG),
//            DCB=(RECFM=FB,LRECL=123,DSORG=PO)
//*MFE: %PCDSN=C:\DPDS\*.DAT

これにより、TEST.DYN1 は動的 PDS として作成され、そのメンバーは C:\DPDS ディレクトリー内の拡張子 .DAT の付いたファイルになります。

スプール・ファイル

MSS は、メインフレームのジョブ・エントリー・システムのスプーラー機能をエミュレートします。VSE、JES2、または JES3 のエミュレーションを選択できます。

MSS は、次のジョブまたは出力データ・セットごとにスプール・ファイルを作成します。

MSS では、JCL ジョブストリームは 1 つのジョブしか持てませんが、ジョブには複数のジョブ・ステップを含めることができます。ジョブ・ステップによって実行されるプログラムを指定するには、EXEC 文を使用します。これは、次のように直接行うことができます。

EXEC PGM=program-name

または、次のようにカタログ式プロシージャーを使用して間接的に行うことができます。

EXEC PROC=procedure-name ---------> EXEC PGM=program-name.

[Catalog] ページにはスプール・ファイルは含まれませんが、スプール・ファイルにはデータ・セット名が割り当てられます。

データ・セット名が指定されていない場合、MVS 名は次のような形式になります。

MFEyyyy.Smmdd.Shhmmss.Jjjjjj.Dnnnnn.ddname

データ・セットが一時的である場合、MVS 名は次のような形式になります。

MFEyyyy.Smmdd.Shhmmss.Jjjjjj.ANDAND.tempname

補足説明: