第 2 章 オープンサーバ間: Symfoware 抽出レプリケーション
2.5 DBサービス定義
2.5.2.2 INTABLE 定義文
グループ単位のレプリケーションの運用例でのINTABLE定義文の記述例を以下に示します。
内容および形式の詳細については、“Linkexpress 運用ガイド”を参照してください。
INTABLE定義文の記述例
NTABLE
NAME = INORDER → * DATATYPE = (local-member,non-attribute add null field) → 1 ITEM = ((@TRHEADER,char(8) except null field),
(@DBOP,sint), (ITEM1,sint), (ITEM2,sint), (ITEM3,sint), (ITEM4,int),
(ITEM5,nchar(5))) → 2 FILE = /home/work/order → 3 INTABLE
NAME = INSTOCK → * DATATYPE = (local-member,non-attribute add null field) → 1 ITEM = ((@TRHEADER,char(8) except null field),
(@DBOP,sint), (ITEM1,sint), (ITEM2,nchar(10)), (ITEM3,int),
(ITEM4,int)) → 2 FILE = /home/work/stock → 3
以下にINTABLE定義文のオペランドについて説明します。各オペランドの番号は、記述例の番号と対応します。
なお、*印として表したオペランドは、表単位のレプリケーションの場合と同じです。“2.5.1 表単位のレプリケーションでの DBサービス定義”を参照してください。
1. DATATYPEオペランド(入力データの種別および形式)
グループ単位のレプリケーションの場合は、入力データの種別に“local-member”を指定してください。
2. ITEMオペランド(入力データ項目名および形式)
抽出される差分データの形式に従ってください。
以下に複写元システムで抽出される差分データのレコード形式とITEMオペランドでの指定形式について説明し ます。
- 抽出レコード形式
レコードの形式にはナル表示域あり(抽出定義でNULLIND = YESを指定)と、ナル表示域なし(抽出定義で NULLIND = NOを指定)の2種類があります。
レコードの構成を以下に示します(コード系をEUCまたはシフトJIS(MS)、数値の表現形式を前進法で示しま す。)。
a. レコード長(長さ:4バイト、属性:INTEGER)
レコードの先頭から末尾までの長さが設定されます。
b. 有効列数(長さ:2バイト、属性:SMALLINT)
抽出される項目数だけでなく、抽出識別子および差分反映操作も個数に含まれます。コミットレコードの 場合は差分反映操作だけの個数が設定されます。
c. 抽出識別子(長さ:2バイト、属性:SMALLINT)
抽出側のレプリケーショングループ内の表に対するユニークなIDが設定されます。全件抽出の場合は つねに0x0000が設定されます。
コミットレコードの場合、本フィールドは存在しません。
d. 差分反映操作のナル表示域(長さ:2バイト、属性:SMALLINT)
つねに0x0000が設定されます。
e. 差分反映操作(長さ:2バイト、属性:SMALLINT)
0x0000:全件抽出
0x0001:追加差分
0x0002:更新差分 0x0003:削除差分
0xffff:抽出件数が0件の全件抽出
0x8000:コミットレコード
f. ナル表示域(長さ:2バイト、属性:SMALLINT) 0x0000:ナル値でない
0xffff:ナル値
抽出件数が0件の全件抽出の場合およびコミットレコードの場合、本フィールドは存在しません。
g. データ項目 (長さ:データ型によって異なります)
各項目のデータがバイナリ形式で抽出されます。
詳細は、“付録B 抽出データ項目の形式”を参照してください。
抽出件数が0件の全件抽出の場合およびコミットレコードの場合、本フィールドは存在しません。
- ITEMオペランドでの指定形式
- レコード長、有効列数および抽出識別子
レコード長、有効列数および抽出識別子の3つを合わせて、8バイトのナル表示域なしの文字列として、
“@TRHEADER,char(8) except null field”と指定します。
DATATYPEオペランドの入力データの形式でナル表示域の有無に“except null field”を指定した場合、
“@TRHEADER,char(8)”だけの指定も可能です。
- 差分反映操作
以下のように指定します。
ナル表示域ありのレコードの場合:“@DBOP,sint add null field”
ナル表示域なしのレコードの場合:“@DBOP,sint except null field”
DATATYPEオペランドの入力データの形式でナル表示域の有無に差分反映操作と同じ値を指定した場
合、“@DBOP,sint”だけの指定も可能です。
- 各データ項目の属性
“付録B 抽出データ項目の形式”を参照してください。
- 各データ項目のナル表示域の有無
DATATYPEオペランドで入力データの形式を指定した場合はナル表示域の有無をITEMオペランドで指 定する必要はありません。
DATATYPEオペランドの入力データの形式を指定していない場合は、以下のように指定します。
ナル表示域ありのレコードの場合:add null field ナル表示域なしのレコードの場合:except null field
3. FILEオペランド(入力ファイル名)
グループ単位のレプリケーションの場合、本オペランドの指定値は全複写時に有効になります。一括差分複写の
場合、REPLICAGROUP定義文のFILEオペランドの指定値が使用されます。