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で使用されている名前と同じである必要があります。親トピック: 構成ファイル