分散トランザクション処理機能 OpenTP1 解説

[目次][用語][索引][前へ][次へ]

3.4.5 マルチサーバのプロセス制御の例

マルチサーバを指定したUAP(SPP,またはMHP)のプロセス制御を,例を使って示します。ユーザサービス定義でプロセス制御に関して,次の表のように指定したとします。

表3-14 ユーザサービス定義での指定

定義項目 サービスグループ名 合計
G1 G2 G3
常駐プロセスの数 2 1 1 4
サービスグループ内のプロセスの最大数 4 2 2 8
スケジュールプライオリティ 1 2 3 該当しない

このとき同時に起動できるSPPとMHPのプロセスの最大数を6とします。サービスグループG1,G2,G3の常駐プロセス数の合計が4なので,動的に起動できるプロセスはあと二つになります。その二つを,サービスグループG1,G2,G3がスケジュールプライオリティに従って利用します。プロセス制御の流れを次の表に示し,時間の経過とともにプロセスの制御の流れを説明します。

表3-15 プロセス制御の流れ

時間の経過 サービス要求 サービスグループ名
G1 G2 G3
1 オンライン開始 ○○
2 G1,G3にサービス要求 ●●
3 G1,G3のサービス要求増加 ●●▲ ●▲
4 G1のサービス要求さらに増加 ●●▲▲
5 G2にサービス要求 ●●▲▲
6 G2のサービス要求増加 ●●▲▲
7 G1のサービス要求低下 ●●▲ ●▲
(凡例)
○:待機している常駐プロセス(起動済み)
●:サービスを実行中の常駐プロセス
▲:サービスを実行中の非常駐プロセス
経過1
オンライン開始時にサービスグループG1,G2,G3の常駐プロセスを起動します。常駐プロセスの合計が4,起動できるプロセスの最大数が6なので,動的に起動できるプロセス数は2になります。
経過2
G1,G3にサービス要求が来たので,G1,G3の常駐プロセスでサービスを実行します。
経過3
G1,G3のサービス要求が増加したので,G1,G3の非常駐プロセスをサービスグループ内の最大数の範囲内で起動して,サービスを実行します。このとき,プロセス数の合計が6になったので,これ以上動的にプロセスを増やすことはできません。
経過4
G1のサービス要求がさらに増加しても,これ以上動的にプロセスを増やすことができません。そこで,G3よりもG1の方がスケジュールプライオリティが高いので,G3の非常駐プロセスを,実行中のサービスが終了した時点で終了させ,G1の非常駐プロセスを起動します。
経過5
G2にサービス要求が来ると,待機していたG2の常駐プロセスでサービスを実行します。
経過6
G2のサービス要求が増加しても,これ以上動的にプロセスを起動できません。また,G2よりもG1の方がスケジュールプライオリティが高いので,G1の非常駐プロセスを終了させて,G2の非常駐プロセスを起動することはしません。
経過7
G1のサービス要求が低下したので,G1の非常駐プロセスのうちの一つを,実行中のサービスが終了した時点で終了させ,G2の非常駐プロセスを起動します。

以上のようにOpenTP1では,SPPとMHPに対するサービス要求を,プロセスを制御することで効率的に処理しています。