Hitachi

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


4.6.7 イベント制御用テーブルの設計

抽出側Datareplicatorから反映側Datareplicatorの動作内容を操作する場合には,イベント機能を使います。

イベント機能を使う場合は,反映側Datareplicatorでは反映環境定義でイベントコードと対応する処理を指定します。反映側Datareplicatorでのイベントコードの指定については,「4.7.3 反映方法の設計」を参照してください。

イベント機能を使う場合は,抽出側Datareplicatorで,イベントコードを指定したhdeeventコマンドを実行します。hdeeventコマンドを実行すると,イベント制御用テーブルに対してSQLを発行して,イベント制御用の更新情報をシステムログファイルに出力します。抽出側Datareplicatorでは,このイベント制御用の更新情報を抽出し,反映側Datareplicatorに送信して,反映側Datareplicatorの動作内容を操作します。抽出側Datareplicatorでは,イベント制御用の更新情報を検知した時点で,送信間隔を待たないで,反映側Datareplicatorに対する送信処理を開始します。送信処理の完了後は,次回の送信間隔まで送信処理待ちになります。

イベント制御用テーブルは,抽出側Datareplicatorを起動する前に,抽出側HiRDBに作成しておく必要があります。

〈この項の構成〉

(1) イベントコードの指定範囲

指定できるイベントコードの範囲と動作を次の表に示します。

表4‒34 指定できるイベントコードの範囲と動作

範 囲

動 作

0

送信プロセスを停止します(反映側Datareplicatorには送信されません)。

1〜255

指定したイベントコードを,反映側Datareplicatorに送信します。

上記以外

反映側Datareplicatorには送信されません。

(2) hdeeventコマンドを実行したときに発行されるSQL文

hdeeventコマンドを実行すると,次のSQL文が抽出側HiRDBに対して発行されます。抽出側HiRDBがパラレルサーバの場合には,すべてのバックエンドサーバに対して,SQL文が発行されます。

     LOCK TABLE "hde_dtbl" IN EXCLUSIVE MODE
     UPDATE "hde_dtbl" SET EVNO = ユーザ指定のイベントコード
     COMMIT WORK

hdeeventコマンドを実行する代わりに,同様のSQL文を発行して,反映側Datareplicatorに対してイベントを発行することもできます。ただし,イベント制御用テーブルに対しては,上記以外の操作をしないでください。

(3) イベント制御用テーブルの条件

抽出側Datareplicatorを起動する前に必要になる,イベント制御用テーブルの条件を説明します。

(a) 作成するユーザID

任意のユーザIDで,イベント制御用テーブルを作成します。

hdeeventコマンドを実行する場合には,イベント制御用テーブルを作成したユーザIDを指定します。hdeeventコマンドの実行時にユーザIDの指定を省略すると,PDUSER環境変数の設定値が仮定されます。

(b) テーブル名

hde_dtblで固定です。

(c) テーブルの属性

FIX属性を指定します。

(d) テーブルの構成

イベント制御用テーブルの構成を次の表に示します。

表4‒35 イベント制御用テーブルの構成

列名

列属性

列長

KEY

INTEGER

1

整数

EVNO

INTEGER

1

0

SNDID

CHAR

10

'0'

(e) イベント制御用テーブルの例

  • 抽出側HiRDBがシングルサーバの場合

    抽出側HiRDBがシングルサーバの場合,1行のテーブルを作成します。抽出側HiRDBがシングルサーバの場合のイベント制御用テーブルの例を次の図に示します。

    図4‒37 抽出側HiRDBがシングルサーバの場合のイベント制御用テーブルの例

    [図データ]

  • 抽出側HiRDBがパラレルサーバの場合

    抽出側HiRDBがパラレルサーバの場合には,抽出の対象になるすべてのバックエンドサーバに対して,1行ずつキーレンジ分割してテーブルを作成します。また,RDエリアは,各バックエンドサーバの中から一つ指定します。抽出側HiRDBがパラレルサーバの場合のイベント制御用テーブルの例を次の図に示します。

    図4‒38 抽出側HiRDBがパラレルサーバの場合のイベント制御用テーブルの例

    [図データ]

(f) 注意

  • イベント制御用テーブルは,hdeprepコマンドを実行する前に作成する必要があります。

  • 抽出側HiRDBがパラレルサーバで,バックエンドサーバの追加,削除などの構成変更をした場合,イベント制御用テーブルを再作成する必要があります。イベント制御用テーブルを再作成しなかった場合には,追加したバックエンドサーバからの抽出にイベントが組み込まれないで,抽出側DBと反映側DBが不整合になることがあります。

  • イベント制御用テーブルを再作成した場合には,hdeprepコマンドを実行する必要があります。

  • 抽出側HiRDBのシステム中に,イベント制御用テーブルの名称であるhde_dtblと,同じ名称のテーブルは作成しないでください。

  • イベント制御用テーブルは,抽出対象にできません。

  • 一つのトランザクション中に,イベントコードが1〜255のイベントを複数発行した場合,最後に発行したイベントだけが有効になります。