Hitachi

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


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

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

表3‒18 ユーザサービス定義での指定

定義項目

サービスグループ名

合計

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‒19 プロセス制御の流れ

時間の経過

サービス要求

サービスグループ名

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に対するサービス要求を,プロセスを制御することで効率的に処理しています。