送信方法の設計手順について説明します。
抽出側Datareplicatorは,送信先ごとに次の処理を実行しています。
また,トランザクションの完了状態を管理するため,トランザクションの管理情報を格納しているトランザクション管理情報バッファを使います。
送信方法の概要を次の図に示します。
図4-32 送信方法の概要
トランザクション管理情報バッファは,抽出側Datareplicatorの起動時に,ローカルメモリ上に確保されます。ここでは,トランザクション管理情報バッファサイズの見積もり時の考慮点とバッファサイズの指定について説明します。
抽出側Datareplicatorを起動すると,送信用の抽出情報キューI/Oバッファはローカルメモリ上に確保されます。ここでは,送信用の抽出情報キューI/Oバッファサイズ,バッファ数の見積もり時の考慮点,バッファサイズの指定,バッファ数の指定について説明します。
更新情報編集バッファは,抽出側Datareplicatorの起動時に,ローカルメモリ上に確保されます。ここでは,更新情報編集バッファサイズの見積もり時の考慮点とサイズの指定について説明します。
抽出側Datareplicatorでは,前回の更新情報を,一定の時間間隔ごとに送信先に送信します。この時間間隔を送信間隔といいます。送信間隔は,送信環境定義のsendintvlオペランドで指定します。
送信処理の送信間隔の概要を次の図に示します。
図4-33 抽出処理の送信間隔の概要
抽出側Datareplicatorでは,送信先の反映側システムとの接続に失敗したときに,接続を再実行できます。これをコネクションリトライといいます。送信環境定義のretrynumでコネクションリトライ回数を指定します。コネクションリトライ回数を指定していない場合は,次の送信間隔まで待機し,送信間隔ごとに再接続を実行します。
抽出側Datareplicatorでは,一つの抽出環境から複数の送信先に更新情報を送信できます。何らかの原因によって更新情報が抽出情報キューファイルに残ったままの状態が続くと,抽出情報キューファイルのスワップができなくなり,システムログファイルから更新情報を抽出できなくなります。
抽出側Datareplicatorでは,抽出情報キューファイルのスワップができない場合に,特定の送信先に対応するデータ連動だけを中止し,送信対象の更新情報をスワップ先になる抽出情報キューファイルから破棄して,抽出情報キューファイルのスワップを可能にします。これを送信処理の縮退といいます。送信処理の縮退は,送信環境定義のoverwriteオペランドで指定します。
送信処理の縮退の概念を次の図に示します。
図4-34 送信処理の縮退の概念
抽出情報キューファイルのスワップができない状態で,さらに送信処理の縮退を指定した送信先の,送信対象の更新情報が,スワップ先になる抽出情報キューファイルに残っている場合,その送信プロセスだけを停止し,対応する更新情報をスワップ先になる抽出情報キューファイルから破棄します。これによって,抽出情報キューファイルのスワップが可能になって,引き続きシステムログファイルからの抽出を続行できます。
送信処理の縮退が発生した場合には,縮退の対象になる送信先の反映側DBと抽出側DBとの整合性は保証されません。このため,送信先の反映側DBを再作成する必要があります。
一部の送信先の,抽出側DBと反映側DBとの整合性よりも,システム全体のデータ連動を優先したい場合には,送信処理の縮退を指定します。
抽出情報キューファイルがスワップできなくなった場合には,反映側システムへの更新情報の送信によって,スワップ先になる抽出情報キューファイルに空きができるまで,システムログファイルからの更新情報の抽出を停止します。このため,抽出側DBと反映側DBの整合性は保証されます。
データ連動システム全体の抽出側DBと反映側DBの整合性を保証したい場合には,縮退を指定しません。
抽出側HiRDBがパラレルサーバの場合,抽出側Datareplicatorではバックエンドサーバ単位に送信環境定義を定義します。この場合,送信環境定義では,すべてのバックエンドサーバに対しての共通の環境と,特定のバックエンドサーバに対しての環境を分けて定義できます。
共通の環境については,送信環境定義のcommondefの下で定義し,特定の環境については,besdef(サーバ名)の下で定義します。同一のオペランドをcommondefとbesdefとで指定した場合,besdefに対応するバックエンドサーバでは,besdefでの指定を優先します。