反映トランザクション同期機能は,抽出側システム及び反映側システムが,どちらもDatareplicatorの場合にだけ使用できます。
この機能を使用するためには,次の条件をすべて満たす必要があります。
なお,次に示すOSのどれかを使用している場合,反映側HiRDBのバージョンは07-03以降である必要があります。
また,HiRDB Datareplicator Extensionを使用するシステムでは,XAインターフェースを使用できないため,グローバルトランザクション単位でのデータの整合性は保証できません。
この機能を使用する場合,抽出側HiRDBのバックエンドサーバごとに対応するデータ連動識別子を用意します。このとき,データ連動識別子は同期反映グループとしてまとめておく必要があります。また,イベント制御用テーブル(hde_dtbl)を抽出対象のバックエンドサーバに配置しておきます。
反映トランザクション同期機能を使用する場合の構成例を,次の図に示します。
図3-40 反映トランザクション同期機能を使用する場合の構成例
なお,一つの抽出側HiRDBから抽出するグローバルトランザクションは,一つの反映側システムで受信する必要があります。このため,データ連動対象の表を配置するバックエンドサーバ数の最大は,一つの反映側Datareplicatorで受信できる最大数となります(反映側システムがUNIXの場合は128,Windowsの場合は63)。
抽出対象外のバックエンドサーバについては,グローバルトランザクションの対象になりません。次の図に示すように,抽出対象外のバックエンドサーバに対応したデータ連動識別子を同期反映グループにすると,同期を待ち続けるため,反映処理が進まなくなります。
図3-41 同期を待ち続ける構成の例
この機能を使用する場合,一つの反映側システムで受信できるグローバルトランザクションは一つだけです。また,一つの反映側システムで,グローバルトランザクションと非グローバルトランザクションを混在して受信できます。構成例を次の図に示します。
図3-42 抽出側システムと反映側システムの構成例1
また,一つのグローバルトランザクションを複数の送信先識別子に送信することもできます。グローバルトランザクションの送信の有無は,送信先識別子ごとに指定できます。構成例を次の図に示します。
図3-43 抽出側システムと反映側システムの構成例2
次の図に示すように,一つの送信先識別子のセットを複数の反映側システムへ分散する構成にはできません。このような構成の場合,同期は保証しません。
図3-44 同期できない構成の例
反映トランザクション同期機能を使用する際に指定しておく必要があるオペランドを次の表に示します。
表3-19 反映トランザクション同期機能を使用する際に指定するオペランド
PP | 定義ファイル | オペランド | 説明 |
---|---|---|---|
HiRDB | システム共通定義 | pd_rpl_reflect_mode = uap※1 | トランザクションブランチ情報(Datareplicatorがこの機能を実現するために必要な情報)を,システムログファイルへ出力するためのオペランドです。詳細については,マニュアル「HiRDB Version 9 システム定義」を参照してください。 |
Datareplicator | 反映システム定義 | syncgroup001※2 | 同期反映グループを構成するためのオペランドです。 |
送信環境定義 | reflect_mode = uap※3 | トランザクションブランチ情報を,反映側Datareplicatorへ送信するためのオペランドです。 | |
eventsync | 同期イベント(同期反映グループがCOMMITを発行する契機となるイベント)の番号を指定します。 |