(2) ページ
2.5 待機系のデータベースへの追い付き反映
(1) 更新ログの生成処理
TP1/EE
からコミット処理の命令を受け付けると,XDBは割り当てられた領域に更新ロ グを格納し,更新バッファの内容をデータベースに反映します。更新ログは,トランザクションをコミットする(データベースを更新する)ごとに生成 されます。更新ログはファイルに保存されません。TP1/EEが管理するヒープ領域で生 成されて,待機系への転送が完了したあとに消滅します。
更新ログは,生成されたときに,コミット通番が付与されます。待機系では,このコ ミット通番の順番に従って更新ログをデータベースに反映します。
参考
次に示す場合は,トランザクションがコミットしても更新ログが生成されません。
• トランザクションによるデータベースへのアクセスがない場合
• トランザクションによるデータ更新がない場合(参照だけの場合)
また,ロールバック処理が発生した場合,待機系に更新を反映する必要がないため,更新ロ グは生成されません。
(2) 更新ログの待機系への転送処理
生成された更新ログは,XTCの機能によって待機系に逐次転送されます。詳細について は,マニュアル「TP1/EE/Extended Transaction Controller 使用の手引」の「CL連携 による系切り替え機能」を参照してください。
(3) 待機系のデータベースの更新処理
転送された更新ログを入力情報にして待機系のデータベースを更新します。このとき,
実行系で付与されたコミット通番の順番に従ってデータベースを更新します。
なお,インデクスの更新データは更新ログに含まれません。更新ログには,表の更新 データだけが格納されます。このため,待機系では,インデクスの定義情報と表の更新 データを基に,インデクスデータを更新します。インデクスの更新データを更新ログに 含めないのは,次に示す性能上の理由によります。
• 更新ログの生成時間を短縮することによって,実行系のコミット処理時間を短縮して いる
• 待機系に更新ログを転送するときの時間を短縮している
また,待機系のデータベースの更新処理中にエラーが発生した場合,待機系がプロセス ダウンします。実行系が待機系のプロセスダウンを検知した時点で,該当する待機系を
CL
サーバから切り離します。(4) 追い付き反映時の注意事項
マシンの性能および実行環境の違いによって,実行系で発生しないエラーが待機系で発 生し,追い付き反映処理が失敗することがあります。例えば,次に示すようなエラーが
発生することがあります。この場合,待機系がプロセスダウンします。
• 待機系でメモリ不足が発生した
• 待機系で共用メモリの確保に失敗した