3.2.5 送信プロセス数の制御
Datareplicatorでは,送信プロセスを送信先単位に起動しています。そのため,送信先が多くなると送信プロセスが増えて,抽出側システムのメモリが不足したりキューファイルの入出力が遅くなったりします。このような場合に備えて,起動する送信プロセスを抑制して,限られた送信プロセス数内ですべての送信処理を実行するように指定できます。
送信プロセス数を制御するときは,抽出システム定義のsendcontrolオペランドにsendmstを指定します。送信プロセス数を制御する指定をすると,ノードマスタプロセスと送信プロセスの間に送信マスタプロセスが生成されます。この送信マスタプロセスが送信プロセスの起動,停止,及び送信処理のスケジュールを制御します。
送信プロセスの制御の概要を次の図に示します。次の図では,2個の送信プロセスで3件の送信先への送信処理を実行する例で示します。
(1) 送信マスタプロセスの動作
送信マスタプロセスは,送信間隔に到達するまでの間に抽出情報キューファイルから更新情報を読み込んで,有効なトランザクションの管理情報を各送信先単位に生成します。送信間隔に到達したときに,有効なトランザクション管理情報が生成された場合,送信マスタプロセスは送信プロセスに送信要求を発行します。このとき,最大起動プロセス数の指定に従って,送信マスタプロセスは稼働中の送信プロセスをスケジュールします。
(2) 送信プロセス数を制御する場合の送信プロセスの動作
送信プロセス数の制御を指定したときは,送信プロセスの処理は次に示す点で異なります。
-
抽出情報キューファイルから更新情報を読み込むタイミングは,送信マスタプロセスからトランザクション管理情報を受け取ったときです。
-
更新情報を送信した後で,送信が完了したことを送信マスタプロセスに通知して,その後,送信マスタプロセスの送信要求待ちのまま,プロセスは起動した状態になります。