3.6.5 同期反映グループ
反映トランザクション同期機能を使用する場合,抽出側Datareplicatorの各バックエンドサーバが送信するトランザクションを一つの反映側Datareplicatorで受信するために,対応する反映側Datareplicatorのデータ連動識別子を同期反映グループとしてまとめておく必要があります。
(1) 同期反映グループの起動
同期反映グループを起動するには,必要なオペランドを正しく指定して,次のどちらかのコマンドを入力します。
-
hdsstart
-
hdsrfctl -g 同期反映グループ名 -m start
なお,2.は同期管理プロセスが停止中の場合にだけ実行できます。同期管理プロセスが稼働中の場合に実行すると,KFRB00161-Eメッセージが出力されて,コマンドは無視されます。プロセスの稼働状況は,hdsstateコマンドによって確認できます。
同期反映グループを解除した状態で起動するには,次のコマンドを入力します。
hdsstart -c 同期反映グループ名
一度このコマンドを入力すると,次回以降1.又は2.のコマンドを入力しても,同期反映グループを解除した状態で起動します。再度同期反映グループを有効にするためには,反映側Datareplicatorを初期化する必要があります。
- 注意事項
-
同期反映グループを構成するデータ連動識別子単位での起動はできません。同期反映グループを構成するデータ連動識別子に対してhdsrfctl -dコマンドを実行すると,KFRB03304-Eメッセージが出力されて,コマンドは無視されます。
(2) 同期反映グループの停止
同期反映グループを停止するには,次のどちらかのコマンドを入力します。
-
hdsstop※
-
hdsrfctl -g 同期反映グループ名 -m immediate
- 注※
-
指定できるオプションについては,hdsstopコマンドを参照してください。
コマンドの指定ごとの停止方法を次の表に示します。
コマンドの指定 |
停止方法 |
---|---|
hdsstop |
受信プロセスが停止していて,かつ反映情報キューファイルの終端を検知している。反映情報キューファイルの終端検知時にトランザクション実行中であった場合は,そのトランザクションをロールバックして終了する。 |
hdsstop -t event |
|
hdsstop -q 待ち時間 |
|
hdsstop -t immediate |
コマンドを受け付けた後の,最初の同期イベントでの同期完了,又は反映情報キューファイルの終端を検知している。反映情報キューファイルの終端検知時にトランザクション実行中であった場合は,そのトランザクションをロールバックして終了する。 |
hdsrfctl -g 同期反映グループ名 -m immediate |
|
hdsstop -t force |
コマンドを受け付けた時点で,実行中の反映トランザクションをロールバックして終了する。反映トランザクションが発生していない場合はそのまま終了する。 |
- 注意事項
-
同期反映グループを構成するデータ連動識別子単位での停止はできません。同期反映グループを構成するデータ連動識別子に対してhdsrfctl -dコマンドを実行すると,KFRB03304-Eメッセージが出力されて,コマンドは無視されます。
(3) 同期反映グループに関する留意点
同期反映グループに関する留意点を次に示します。
(a) オペランドの指定に関する留意点
同期反映グループに指定したデータ連動識別子では,次の表に示すオペランドの指定に制限があります。
定義ファイル名 |
オペランド |
備考 |
---|---|---|
反映システム定義 |
commit_wait_time |
無視されます。 |
commitment_method |
fxa_sqleを指定してください。fxa_sqle以外を指定すると,KFRB00847-Eメッセージが出力されてエラーになります。 |
|
discintvl |
無視されます。 |
|
反映環境定義 |
eventtrn |
無視されます。 |
eventtbl |
無視されます。 |
|
eventretrn |
無視されます。 |
|
eventretbl |
無視されます。 |
|
eventspd |
無視されます。 |
|
eventcntreset |
無視されます。 |
|
cmtintvl |
無視されます。 |
|
trncmtintvl |
無視されます。 |
|
tblcmtintvl |
無視されます。 |
|
reflect_trn_max_sqlnum |
無視されます。 |
|
startmode※ |
trnを指定してください。trn以外を指定すると,KFRB00847-Eメッセージが出力されてエラーになります。 |
|
ujcodekind |
rcvを指定してください。rcv以外を指定すると,KFRB00847-Eメッセージが出力されてエラーになります。 |
|
反映定義 |
load文 |
by 'uoc名'を指定できません。by 'uoc名'を指定すると,KFRB03315-Eメッセージが出力されてエラーになります。 |
- 注※
-
同期反映グループに指定しているデータ連動識別子の反映方式は,startmodeオペランドで指定します。イベント機能やhdsrfctlコマンドでの変更はできません。
なお,同期反映グループを解除して起動すると,無視されていたパラメタも有効になるため,指定値は検討しておく必要があります。
(b) イベント機能に関する留意点
同期反映グループに対するイベントのうち,同期イベント以外は機能しなくなります。同期イベント以外を使用しても,KFRB03316-Wメッセージの出力後,無視されます。
接続単位終了イベントについても,-1イベントとしては扱われないで,無視されます。
(c) 同期反映グループ内のエラーに関する留意点
同期反映グループを構成するデータ連動識別子の一部でエラーが発生した場合,同期反映グループを構成するすべてのデータ連動識別子がエラー停止します。
同期反映グループ内でエラーが発生すると,同期管理プロセスが停止して,同期管理プロセスの停止を検知した各反映プロセスがKFRB03311-Eメッセージを出力します。
同期管理プロセスの停止を検知するタイミングは次のどちらかです。
-
SQL発行時,又は発行前
-
反映情報キューファイルの終端検知後,反映環境定義のref_wait_intervalオペランドの指定値経過時
(d) hdsstateコマンドで表示されるトランザクションの件数に関する留意点
hdsstateコマンドによってデータ連動識別子ごとに表示されるトランザクションの件数は,トランザクションブランチの件数です。抽出側で発生した,実際のグローバルトランザクションの件数とは一致しません。