8.1.1 反映情報編集UOCの概要
反映情報編集UOCを使って反映側DBに更新情報を反映する方法には,次の二つがあります。
-
SQLの発行
-
ワークファイルへの出力
更新情報を反映する手順を次の図に示します。
-
SQLの発行
反映側Datareplicatorから受け取った更新情報を基に反映情報編集UOCでSQLを発行し,反映側DBに反映します。
-
ワークファイルへの出力
反映側Datareplicatorから受け取った更新情報を反映情報編集UOCで編集した後,ワークファイルへ出力します。UAPを使ってワークファイルから更新情報を取り出し,反映側DBへ反映します。
- 〈この項の構成〉
(1) 反映情報編集UOCの制御の流れ
反映情報編集UOCと反映側Datareplicatorとの制御の流れを次の図に示します。
- 開始指示
-
反映側Datareplicatorを起動すると,反映処理起動の延長でUOCに対して開始指示の発行(UOCのhds_ubegin()の呼び出し)を行います。
- 反映情報編集指示
-
抽出側から送られてきた更新情報を反映プロセスが読み込み,読み込んだ更新情報1件ごとに更新情報編集指示の発行(UOCのhds_uedit()の呼び出し)を行います。
- 終了指示
-
反映側Datareplicatorを停止すると,反映処理停止の延長でUOCに対して終了指示の発行(UOCのhds_uend()の呼び出し)を行います。
反映情報編集UOCの各関数は,次のタイミングで呼び出されます。
-
hds_ubegin()
反映処理の起動時(hdsstart,hdsrfctlコマンドによる反映プロセスの起動,又は定義変更検知※,モード変更イベント検知による反映プロセスの再起動)にだけ呼び出されます。
-
hds_uedit()
更新情報1件ごとに呼び出されます。
-
hds_uend()
反映処理の停止時(hdsstop,hdsrfctlコマンドによる反映プロセスの停止,又は定義変更検知※,モード変更イベント検知による反映プロセスの一時停止)にだけ呼び出されます。
注※ 定義変更検知は,XDM/DSで選択定義を使用している場合,定義変更していない場合でも,反映側システムと再接続するたびに定義が送信されhds_ubegin(),hds_uend()を呼び出します。
つまり,通常の処理(反映側Datareplicatorを1回起動してから停止するまでの間)での各関数の実行回数は,次のようになります(nは更新回数を表します)。
-
hds_ubegin():1回
-
hds_uedit():1〜n回
-
hds_uend():1回
(2) 更新情報が渡される単位
更新情報は1SQL単位で,反映側Datareplicatorから反映情報編集UOCに渡されます。
同期点処理のCOMMIT要求は,単独で渡されます。