1.10.7 セグメント定義 - $segname.desc

$segname.descは、セグメント内のフィールドを定義します。$segname.descは、imsdbs.descでGSAMとMSDBのどちらでもないアクセス・タイプが定義されているデータベースに対してのみ存在します。$segname.desc$ART_IMS_CONFIG/db/$dbnameの下に配置されています。

表1-31 $segname.desc

[imsdb]フィールド タイプ 説明 SEGMのソース
NAME X(1..8) Mandatory フィールド名 NAME
START Integer Mandatory フィールドのオフセット、セグメント内、セグメントの0~の長さ- 4 START
BYTES Integer Mandatory フィールドの長さ、4-32760 BYTES
TYPE Enum Mandatory C: 英数字文字列、変換が必要です。

P: パック10進数、変換は必要ありません。

X: 16進数、変換が必要です。

M: 混合タイプ、FIELDに様々なタイプのサブ・ピースが含まれている場合に使用します。変換が必要です。

TYPE
FORMAT X(1...512) オプション TYPE=Mの場合のみ必要(必須)。

この形式の構成ルールは次のとおりです: format=PIECE1- LEN,PIECE1-TYP E;PIECE2-LEN, PIECE2-TYPE;PIECE3-LEN, PIECE3-TYPE

例: format=3,P;4,C ;3,p

以下の点に注意してください。

  1. PIECE-TYPEC/P/Xにする必要があります。
  2. 処理は許可されません。
  3. フォーマット文字列がフィールド内のすべてのバイトに対応する必要があります。
N/A

フィールド・タイプの定義はDBDのFIELD文によるものだけではありません。ユーザーはCOBOLプログラムでの使用方法に従ってフィールド・タイプを定義する必要もあります。

フィールドのタイプを定義しない場合、デフォルトのフィールド・タイプはCになります。

次の表は、COBOLプログラムでのフィールド使用方法に基づくフィールド定義のマッピング表を示しています。

表1-32 フィールド定義のマッピング表

COBOL Picture 説明 IMSタイプ
PIC X 英数字の表示 C
PIC 9 数値表示 C
PIC S9 符号付き数値の表示 C
PIC S9 COMP-3 パック10進数 P
PIC S9 COMP、PIC S9 COMP-4 バイナリ X

会話/変換ルールは次のとおりです。

  • タイプC、ASCII/EBCDIC変換が必要です。
  • タイプP、変換は必要ありません。(ASCII/EBCDIC変換もエンディアン変換も実行されません。これはCOMP-3データ領域に対応しています。)
  • タイプX、エンディアン変換が必要です。

取得またはISRT呼出しが完了すると、ODBAプロキシからキー・フィードバック領域が返されます。DB PCBでキー・フィードバック領域を変換するために、FBAFIELDという名前の特別なFIELDが予約されています。

セグメント連結キーは、それぞれの親のキーと独自のキーで構成されます。キー形式は左から右へと配置され、ルート・セグメントのキー形式で始まり、階層パスが続きます。

$segmentで定義されているこの特別なFIELD(FBAFIELD)によって、セグメントの連結キーの形式を定義する必要があります。キー・フィードバック領域は、segnameでのこのフィールドの定義に従って変換されます。

次のリストに、$segname.descの定義例を示します。

定義例のリスト

[field]
NAME=FBAFIELD
START=0
BYTES=11
TYPE=M
FORMAT=5,P;6,C

STARTは0にする必要があります。

BYTESはキー・フィードバック領域の長さ合計(つまり連結キーの長さ合計)を定義します。

TYPEは連結キーのタイプを定義します。連結キーに異なるタイプが含まれる場合は、TYPEMに設定する必要があります。

キーの形式がTYPE=Mの場合、FORMATで連結を定義する必要があります。

$ segname.descで特別なFIELD(FBAFIELD)が定義されていない場合、segnameではキー・フィードバック領域がデフォルトでTYPE Cとして変換されます。

ノート:

SSAの検索キー・フィールドの場合、フィールド名は、DBDで定義されている検索KEY FIELD名、およびSSAで使用されている名前と同じである必要があります。