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の場合のみ必要(必須)。
この形式の構成ルールは次のとおりです: 例: 以下の点に注意してください。
|
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は連結キーのタイプを定義します。連結キーに異なるタイプが含まれる場合は、TYPEをMに設定する必要があります。
キーの形式がTYPE=Mの場合、FORMATで連結を定義する必要があります。
$ segname.descで特別なFIELD(FBAFIELD)が定義されていない場合、segnameではキー・フィードバック領域がデフォルトでTYPE Cとして変換されます。
ノート:
SSAの検索キー・フィールドの場合、フィールド名は、DBDで定義されている検索KEY FIELD名、およびSSAで使用されている名前と同じである必要があります。親トピック: 構成ファイル