1.10.6 セグメント定義 - segments.desc

segments.descは、データベース内のセグメントを定義します。1つのデータベース(GSAMデータベースを除く)は、1つのsegments.descを持ち、それは$ART_IMS_CONFIG/db/$dbnameの下にあります。

segments.desc内のフィールドは、DBDのSEGM文からマッピングされています。

表1-30 segments.desc

[segm]フィールド タイプ 説明 SEGMのソース
NAME X(1..8) 必須 セグメント名 NAME
BYTES Integer 必須 セグメントの最大長(4~32760)。 BYTES
SEGPGM_A2E X(1..128 ) オプション セグメント・データをオープン・システムからメインフレームに変換するために使用するCOBOLプログラムの名前。 N/A
SEGPGM_E2A X(1..128 ) オプション セグメント・データをメインフレームからオープン・システムに変換するために使用するCOBOLプログラムの名前。 N/A
SSAPGM_A2E X(1..128 ) オプション セグメントに限定されたSSAをオープン・システムからメインフレームに変換するために使用するCOBOLプログラムの名前。 N/A
KFAPGM_E2A X(1..128 ) オプション セグメントのキー・フィードバック領域をメインフレームからオープン・システムに変換するために使用するCOBOLプログラムの名前。 N/A

ノート:

可変長セグメントの場合、BYTES定義がSEGM文からマップされ(BYTES= (max bytes,min bytes)など)、最大バイト数は最小バイト数以上である必要があります。可変長セグメントは、2バイト・フィールドで始まる必要があり、それによって、その2バイトの長さのフィールドを含めたセグメントの長さが定義されます。

SEGPGM_A2ESEGPGM_E2AおよびSSAPGM_A2EKFAPGM_E2Aの場合:

  1. 上述の4つのパラメータがどれもsegments.descで定義されていない場合、$segname.descが存在する必要があり、後述するデータ変換を行うために$segname.descが使用されます。
  2. SEGPGM_A2EおよびSEGPGM_E2A

    SEGPGM_A2ESEGPGM_E2Aは、両方合わせて定義済であるか、未定義である必要があります。SEGPGM_A2ESEGPGM_E2Aが定義済の場合、ODBAプラグインはSEGPGM_A2E/SEGPGM_E2Aを使用してセグメント・データの変換を実行します。この場合、$segname.descが存在していても、$segname.descがセグメント・データの変換の実行に使用されることはありません。

    SEGPGM_A2ESEGPGM_E2Aが未定義の場合、ODBAプラグインは$segname.descのFIELDS定義を使用してセグメント・データの変換を実行します。
  3. SSAPGM_A2E

    SSAPGM_A2Eが定義されている場合、ODBAプラグインは定義済のCOBOLプログラムを使用して、このセグメントの限定されたSSAの変換を実行します。

    SSAPGM_A2Eが定義されていない場合、ODBAプログラムは$segname.descKEYフィールド・タイプ定義を使用して、このセグメントのSSAのKEY値を変換します。
  4. KFAPGM_E2A

    KFAPGM_E2Aが定義されている場合、ODBAプラグインは定義済のCOBOLプログラムを使用して、このセグメントのキー・フィードバック領域のデータ変換を実行します。

    KFAPGM_E2Aが定義されていない場合、ODBAプログラムは$segname.descFBAFIELD定義を使用して、このセグメントのキー・フィードバック領域のデータ変換を実行します。

    上述のCOBOLプログラムの生成およびコンパイル方法については、『Oracle Tuxedo Application Rehosting Workbenchユーザーズ・ガイド』および『Oracle Tuxedo Application Rehosting Workbenchリファレンス・ガイド』のバッファ変換に関する項を参照してください。

    Tuxedo ART for IMSサーバーを起動する前に、コンパイル済の変換プログラムをCOBPATH (Micro Focus COBOLの場合)またはCOB_LIBRARY_PATH (CITの場合)の下に配置します。