Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成の手引


2.1.16 マルチスケジューラ機能を使用したRPC

クライアントUAPが,他ノードのキュー受信型サーバ(スケジュールキューを使うSPP)に,マルチスケジューラ機能を使用してサービス要求することによって,一つのOpenTP1システムで,次の3方式のRPCを混在して使用できます。

  1. 通常のRPC

    サービス要求先サーバが存在するOpenTP1システムの中から一つをランダムに選択し,そのOpenTP1システムのマスタスケジューラデーモンにサービス要求を送信する方式。

  2. マルチプルポート指定RPC

    サービス要求先サーバが存在するすべてのOpenTP1システムのマルチスケジューラデーモンの中から一つをランダムに選択し,サービス要求を送信する方式。

  3. 通信先を指定したRPC

    dc_rpc_call_to関数の引数に指定したポート番号のマルチスケジューラデーモンにサービス要求を送信する方式。

マルチスケジューラ機能の詳細については,「1.3.6(9) マルチスケジューラ機能」を参照してください。なお,この機能は,TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できませんので,ご了承ください。

マルチスケジューラ機能を使用したRPCの概要を次の図に示します。

図2‒15 マルチスケジューラ機能を使用したRPCの概要

[図データ]

マルチスケジューラ機能を使用したサービス要求は,マルチスケジューラデーモンを起動しているノードにだけスケジュールします。ただし,サービス要求時に,指定したマルチスケジューラデーモンを起動しているOpenTP1システムが存在しない場合は,マスタスケジューラデーモンにサービス要求を送信します。

ポート番号を指定してサービス要求する際に,マルチスケジューラデーモンのポート番号を指定した場合,指定したマルチスケジューラデーモン経由でサービス要求をスケジューリングします。

マルチスケジューラデーモンがサービス要求を受信した際,サービス要求先ユーザサーバが閉塞していた場合や終了中であった場合は,マルチスケジューラ機能を使用するほかのノードのマルチスケジューラデーモンにサービス要求を送信します。ほかのノードに該当するマルチスケジューラデーモンが存在しない場合は,マスタスケジューラデーモンにサービス要求を送信します。

オンライン中にマルチスケジューラデーモンが異常終了した場合は,OpenTP1システムをダウンさせないで,異常終了したマルチスケジューラデーモンに該当するポート番号を割り当てて再起動します。ただし,再起動が2回失敗した場合は,OpenTP1システムをダウンさせます。