この章では、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 つがあります。
ESMAC の [Catalog] ページで [New] をクリックします。MVS 名とローカル物理ファイル名の両方を指定する必要があります。
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 を使用して共有することができます。最大 16 の Fileshare サーバーを COBOL システムに接続できるため、複数のマシンにわたってデータを分割することができます。
Fileshare の使用を設定する方法としては、次の 3 つがあります。
これらの方法は、組み合わせて使用することができます。
ファイルが Fileshare サーバーに置かれていることを指定するには、[ESMAC Catalog] ページの [New] を使用して新しいカタログ エントリを作成するときに、$$servername を接頭辞として付けたファイルのフル パス名を [Physical File] に入力します。サーバーに適した表記規則を使用してください。例えば、UNIX サーバー上の data01.dat というファイルには、次のようなパス名が必要になります。
$$unixserver/usr/accounts/data01.dat
一方、メインフレーム上に置かれた同じファイルには、次のようなパス名が必要になります。
$$MAINFRAME\FILES.ACCOUNTS.DATA01
カタログされていないファイルがメインフレーム形式ではないため、それらのファイルにアクセスするプログラムを記述し、またそれらのファイルを Fileshare サーバーに格納する場合は、次の例のように Fileshare サーバー名を環境部の I-O-Section の SELECT 句に含めることができます。
select datafile assign to "$$unixserver/usr/accounts/data01.dat".
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 ガイド』の標準的な操作と『構成』の章を参照してください。
MVS メインフレーム環境では、ファイルを個別データ セットとして、または区分データ セット (PDS) の一部として定義することができます。MSS では、その両方の方法をサポートしています。
区分データ セット (編成 = PO) では、個々のデータ セットをメンバー (編成 = PDSM) と呼びます。MSS に対する区分データ セットとそのメンバーの定義方法は、他のデータ セットと同様です。
プロシージャ ライブラリーは、JCL ジョブストリームで指定できるプロシージャを含んだ区分データ セットです。MSS は、EXEC 文によって実行された JCL プロシージャを次の順に検索します。
これらのライブラリーはカタログに割り当てる必要があります。
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.CBL、PAYUPD.CPY、および PAYREP.CPY が含まれている場合は、SOURCE.PDS(PAYUDP) にアクセスを試みると PAYUPD.CBL が見つかります。一致するファイルが見つかると検索は終了するため、PAYUPD.CPY が見つかることは決してありません。SOURCE.PDS(PAYREP) にアクセスを試みると、PAYREP.CPY が見つかります。
UNIX では、動的 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
補足説明: