Symfoware抽出レプリケーションにおいて、一括差分複写における差分ログ取得までの処理イメージを以下に説明します。
注1)lxextdbコマンドです。
注2)利用者プログラム(トランザクション)と同期をとりながら動作するレプリケーション処理を意味します。
注3)利用者プログラム(トランザクション)と非同期で自動に動作するレプリケーション処理を意味します。
通常、本処理は、フォアグラウンド処理に影響を与えません。しかし、負荷などによる処理遅延が発生すると、
フォアグラウンド処理への影響が顕著化します。
注4)Linkexpressの業務によって動作します。よって、フォアグラウンド処理、バックグラウンド処理と
非同期で動作します。
注5)レプリケーション処理では、トランザクションログファイルへの差分データの書込み、読込み、および形式変換、
トランザクション制御、差分ログファイルへの書込みなどの処理を行います。
図の1について説明します。
利用者プログラムからレプリケーション処理のトランザクションログファイルへの書込みバッファに差分データを受信します。
レプリケーション処理では、その差分データをトランザクションログファイル(データ部)に書込み、インデックス部で管理しているデータ部の領域情報を更新します。
図の2について説明します。
レプリケーション処理では、利用者プログラムのトランザクションが完結すると、それを契機にトランザクションログファイル(データ部)から差分データを読込みます。
この処理は、利用者プログラム(トランザクション)とは非同期で自動に動作します。
読込んだ差分データは、データベース抽出コマンド(lxextdbコマンド)用のデータ形式に変換し、差分ログファイルに転送します。
図の3について説明します。
差分ログファイルに格納されている差分データは、データベース抽出コマンド(lxextdbコマンド)によって、マニュアルに記載している外部形式に変換し、抽出データ格納ファイルに転送されます。
なお、データベース抽出コマンド(lxextdbコマンド)は、レプリケーション処理が差分ログファイルに差分データを書込んでいる間待ちます。逆にデータベース抽出コマンドが差分データを読込んでいる間は、レプリケーション処理は差分ログファイルへの差分データの書込みを待ちます。