Hitachi

HiRDB データ連動機能 HiRDB Datareplicator Version 10


3.3.12 反映処理の同期点処理の指定

Datareplicatorが反映処理を反映側DBに要求すると,反映処理が完了したキューファイルの情報がステータスファイルに書き込まれます。この処理はトランザクション処理であり,トランザクションを正常にするかエラーにするか(コミット又はロールバック)を決めることを同期点処理といいます。同期点処理が完了した更新情報は,反映処理を再開始(リラン)しても変更されません。

〈この項の構成〉

(1) 反映側DBへの同期点処理方式の種類

反映側DBへの同期点処理方式には,1相コミット方式と2相コミット方式があります。

同期点処理方式は,反映システム定義のcommitment_methodオペランドで指定します。

同期点処理方式を変更したときは,反映側Datareplicatorを初期開始する必要があります。

(2) 1相コミット方式と2相コミット方式の違い

反映側DBへのコミットが正常にリターンすると,コミットまでの更新情報のキューファイルの情報を書き込んだ後,次のトランザクションを開始して更新情報を処理します。

反映側DBがエラーになると,反映処理をいったん終了させて反映処理の再開始を待ちます。再開始の処理では,1相コミット方式で再起動すると,前回コミット処理の実行中にエラーになったトランザクションから再実行します。この方式だと,反映側DBのコミットの完了をDatareplicatorが正しく認識できないことがあります(例:反映側DBからのリターン途中で通信エラーになってDatareplicatorに正常にリターンしなかった)。このときDatareplicatorはエラーと認識して,HiRDBの再開始(リラン)時にトランザクションが再実行されます。もし,マッピングキーがユニークになっていないと,データが二重に挿入されるおそれがあります。

2相コミット方式のときは,上記のようなデータの二重挿入を防げます。反映側Datareplicatorが2相コミットを定義できるバージョンのときは,2相コミット方式を定義することをお勧めします。