割り当てる 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)
このルールの例外は、名前が 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 メンバは機能的に同等です。