FSTAB マッピング・テーブルのカスタマイズ

割り当てる Data Connect のデータセットと代替索引を定義する場合、DDNAME/DSNAME 相互参照テーブル FSTAB を作成する必要があります。MFACNTL データ・セットの MFASFTAB メンバには、FSTAB を作成するために使用できるジョブが含まれています。相互参照テーブルは、COBOL アプリケーション・プログラムの SELECT 節で使用されているファイル名を MVS のデータセット名または dd 名に変換します。COBOL プログラムでは、ファイル名を直接、MVS dd 名、MVS データ・セット名、またはこのテーブルによる変換が必要なエントリに割り当てることができます。相互参照テーブルにエントリが見つからない場合、COBOL の SELECT 節には MVS データセット名が指定され、動的割り当てが試行されると仮定されます。

テーブルのエントリはすべてオプションです。テーブルで使用できる形式は次のとおりです。

短期的な動的割り当ての場合 - データセットはクローズ時に解放されます。

FSTAB  'PC-NAME',DSN=MVS-DATASET-NAME
       [,MEM=MEMBNAME]   optional for PDS member name

長期的な動的割り当ての場合 - データセットは終了時に解放されます。

FSTAB  'PC-NAME',DSN=MVS-DATASET-NAME,DDN=DDNAME
       [,MEM=MEMBNAME]   optional for PDS member name

長期的な割り当ての場合 - スタートアップ JCL で //DDNAME を実行します。

FSTAB  'PC-NAME',DDN=DDNAME

代替索引を追加する VSAM 割り当ての場合。

FSTAB  'PC-NAME',DSN=MVS-DATASET-NAME,                 X
       AIX=(VSAM-AIX1,VSAM-AIX2,VSAM-AIX3)
注:

COBOL アプリケーション・プログラムで代替索引を定義している順序は、テーブルで定義されている順序と同じである必要があります。

このルールの例外は、名前が 1 ~ 8 文字で、ピリオドを含まない場合です。この場合、名前は新しいデータセット (MFAVCTL) の動的割り当て制御ファイルのメンバ名を表します。MFA Data Connect サーバに対するこの機能拡張は、VSAM 代替索引を使用する場合の FSTAB 要件を解消する目的で行われました。この機能拡張では、MFAVCTL ライブラリのメンバを使用して、代替索引が存在する VSAM ファイルに対して動的な FSTAB エントリを作成します。MFAVCTL ライブラリの各メンバは、VSAM ファイルとその索引を定義します。1 つのメンバで指定できる VSAM ファイルは 1 つだけです。メンバ内の制御レコードは 80 バイト長であり、先頭にキーワードとその値が格納されます。この機能のメンバ名はすべて先頭が '$' または X'5C' にマッピング される任意のキーボード文字である必要があります。キーワードには VSAM= と AIXn= があり、n は 1 ~ 9 の値です。VSAM= の後には MVS VSAM データセット名が続きます。このレコードは、メンバの先頭レコードである必要があります。AIX1 ~ AIX9 のキーワードは、代替索引 PATH ファイルを指定します。これらは COBOL プログラムと同じ順序で指定する必要があります。

例えば、COBOL プログラムで次のように指定されているとします。

FILE-CONTROL.
 SELECT CLAIM-FILE ASSIGN TO PATCLMX
        ORGANIZATION IS INDEXED
        ACCESS IS RANDOM
        RECORD KEY IS PATIENT-CLIAM-NUMBER
        ALTERNATE RECORD KEY IS MEDICARE DUPLICATES
        ALTERNATE RECORD KEY IS MEDICAID-KEY DUPLICATES
        ALTERNATE RECORD KEY IS PRIVATE-INS-KEY DUPLICATES
        ALTERNATE RECORD KEY IS PATIENT-NAME
        ALTERNATE RECORD KEY IS CONTROL-NUMBER
        ALTERNATE RECORD KEY IS PAYMENT-ID
        STATUS IS VSAM-FILE-STATUS.

FSTAB エントリとして次のように指定します。

FSTAB 'PATCLMX',
           DSN=CSI01V.PATCLM.PATIENT.BILLING,
           AIX=(CSI01V.PATCLM.BY.MEDICARE.PATH,
           CSI01V.PATCLM.BY.MEDICAID.PATH,
           CSI01V.PATCLM.BY.INS.POLICY.PATH,
           CSI01V.PATCLM.BY.NAME.PATH,
           CSI01V.PATCLM.BY.CONTROL.PATH,
           CSI01V.PATCLM.BY.PAYMENT.PATH) 

MFAVCTL ライブライ・メンバとして次のように指定します。

VSAM=CSI01V.PATCLM.PATIENT.BILLING
AIX1=CSI01V.PATCLM.BY.MEDICARE.PATH
AIX2=CSI01V.PATCLM.BY.MEDICAID.PATH
AIX3=CSI01V.PATCLM.BY.INS.POLICY.PATH
AIX4=CSI01V.PATCLM.BY.NAME.PATH
AIX5=CSI01V.PATCLM.BY.CONTROL.PATH
AIX6=CSI01V.PATCLM.BY.PAYMENT.PATH

上記の制御文の MFAVCTL メンバの名前が $PATCLM6 である場合、MFEXTMAP.DAT エントリは PATCLMX $PATCLM6 となります。上記の FSTAB と MFAVCTL メンバは機能的に同等です。