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

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

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

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

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

<この項の構成>
(1) イベントコードの指定範囲
(2) hdeeventコマンドを実行したときに発行されるSQL文
(3) イベント制御用テーブルの条件

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

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

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

範 囲動 作
0送信プロセスを停止します(反映側Datareplicatorには送信されません)。
1~255指定したイベントコードを,反映側Datareplicatorに送信します。
上記以外反映側Datareplicatorには送信されません。

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

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

     LOCK TABLE "hde_dtbl" IN SHARE 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 イベント制御用テーブルの構成

列名列属性列長
KEYINTEGER1整数
EVNOINTEGER10
SNDIDCHAR10'0'
(e) イベント制御用テーブルの例
(f) 注意