参照系業務とは、複写先システムのデータベースを参照する利用者業務のことで、複写先システムのデータベースを有効に利用する運用方法です。複写元システム、複写先システムともにバックアップセンタ運用の操作はありません。複写先システムは参照系業務を実行します。
参照系業務の運用の流れを以下に示します。
操作の手順
注意
複写先システム側のデータベースへのRERUNログの反映処理は、複写元システム側でのRLC交替を契機に最新化されます。このため、最新状態で参照系業務を行う場合は、RLCファイルの強制交替、RERUNログの抽出およびRERUNログの反映を実行後に業務を開始します。
ポイント
複写先システムでは、参照系業務の実行中もRERUNログの抽出・反映処理を実行します。
前日までのデータなど過去のデータを参照する参照系業務の場合は常に実行できます。
最新の反映中のデータを参照する参照系業務の場合は以下の点を考慮してください。
反映処理中のトランザクションの整合性の考慮
RERUNログ反映のコミット順序の保証単位にDSIを選択した場合は、高速な反映を実現するために複写元システムのトランザクションをDSI単位で多重処理しているため、反映処理中はトランザクションの整合性はありません。
複写先データベースのDSI間のトランザクションが保証された状態でデータベースの参照を実施したい場合は、RERUNログ反映のコミット順序の保証単位にロググループを選択してください。
ロググループのトランザクションの整合性の考慮
ロググループは、別のRLPでRERUNログを転送しているため、複写元システムでロググループにまたがるトランザクションが発生した場合、またがったトランザクションのRERUNログを反映するまではトランザクションの整合性がありません。
反映処理が排他エラーにならないための考慮
排他待ちの発生を防止するために、参照系業務で利用するSQLアプリケーションは以下の指定で実行して下さい。
独立性水準にREAD_UNCOMMITTEDを指定
イルシデーションロックにNO LOCKを指定
参照系業務で実行するアプリケーションのトランザクションを短くする、アクセスする資源の範囲を絞り込むなど、RERUNログ反映になるべく影響を与えないように参照系業務をチューニングしてください。
デッドロックにより参照系業務で実行するアプリケーションが異常復帰した場合
デッドロックが発生したトランザクションの再実行を試みるように参照系業務で実行するアプリケーションを設計してください。
RERUNログの反映は複写元システムでコミットされたトランザクションが対象です。そのため、複写元システムでロールバックされたデータは反映されません。
ロググループ間の参照整合性が必要な場合は、複写元システムで利用者業務を停止してすべてのRLCファイルを複写先システムへ転送し、すべてのRERUNログを反映した時点で反映処理を停止して参照業務を実施します。
また、複写元システムで完了した更新結果は、転送・抽出・反映処理にかかる時間の分だけ遅れて、複写先システムのデータベースにRERUNログとして反映されます。このため、最新のデータベースを参照系業務で利用する場合は、ロググループ間の参照整合性が必要な場合と同様に、複写元システムで利用者業務を停止し、複写先システムですべてのRERUNログを反映した時点で参照系業務を実施する必要があります。なお、前日までのデータなど参照するデータベースが最新である必要がない場合は、利用者業務と連動する必要がなく、有効に複写先システムのデータベースを利用することができます。
参照アプリの独立性水準には制約はありません。ただし、反映処理対象と同一資源に対して処理を行う際は排他待ちが発生する場合があります。
排他の属性と選択方法の詳細については“Symfoware Server アプリケーション開発ガイド(共通編)”を参照してください。
RERUNログ反映のコミット順序の保証単位にロググループを選択した場合、RERUNログ反映と参照系業務間で排他待ちが発生している資源については、Symfoware Serverのrdblkinfコマンドによる資源の占有情報の出力により確認してください。
複写元システムでSymfoware Serverのrdbfmtコマンドを実行した場合には、rdbfmtコマンドが行われた時点のRLCファイルを反映するまでに、参照業務のトランザクションを終了してください。
参照
RERUNログ反映のコミット順序の保証単位は、RLP動作環境ファイルのREF_APPLY_MODEパラメタで指定します。RLP動作環境ファイルのREF_APPLY_MODEパラメタについては“Active DB Guard 設計・セットアップガイド”の“RLP動作環境ファイルの編集”を参照してください。
アプリケーションの排他の属性と選択方法の詳細については、“Symfoware Server アプリケーション開発ガイド(共通編) ”を参照してください。