Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/J編


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

CUPからスケジュールキューを使うSPP(キュー受信型サーバ)にサービスを要求した場合,要求先SPPがあるノードのスケジューラデーモンが,いったんサービス要求メッセージを受信し,該当するSPPのスケジュールキューに格納します。スケジューラデーモンとは,スケジュールサービスを提供するシステムデーモンのことです。

長大なサービス要求メッセージは,一定の長さに分割してスケジューラデーモンに送信します。スケジューラデーモンは,サービス要求メッセージを組み立ててキュー受信型サーバのスケジュールキューに格納します。スケジューラデーモンは,OpenTP1システムごとに1プロセスです。そのため,分割されたサービス要求メッセージの受信処理が完了するまで,スケジューラデーモンはほかのサービス要求メッセージを受信できません。通信速度が遅い回線を使用して,長大なサービス要求メッセージを送信した場合,ほかのサービス要求のスケジューリングが遅延することがあります。また,システムの大規模化,マシンやネットワークの高性能化などに伴って,効率良くスケジューリングできないことがあります。この場合,従来のスケジューラデーモンとは別に,サービス要求受信専用デーモンを複数プロセス起動し,サービス要求メッセージ受信処理を並行動作させることによって,スケジューリング遅延を回避できます。この機能をマルチスケジューラ機能といいます。以降,従来のスケジューラデーモンをマスタスケジューラデーモン,サービス要求受信専用デーモンをマルチスケジューラデーモンと呼びます。

マルチスケジューラ機能の検討が必要なシステム構成については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

〈この項の構成〉

(1) マルチスケジューラデーモンをランダムに選択する方法

マルチスケジューラ機能を使用することで,複数起動されているマルチスケジューラデーモンの中から,利用できるマルチスケジューラデーモンをランダムに選択してサービス要求を送信できます。マルチスケジューラデーモンをランダムに選択して,スケジューラダイレクト機能,またはネームサービスを使用したRPCを実行できます。

(a) スケジューラダイレクト機能を使用したRPC

TP1/Client/J環境定義dcscddirectオペランドにYを指定して,スケジューラダイレクト機能を使用したRPCを行う場合について説明します。

TP1/Client/Jでは,窓口となるTP1/Serverのネームサービスへ問い合わせないで,マルチスケジューラデーモンをランダムに選択できます。これによって通信回数が削減され,ネームサービスの負荷を軽減できます。

マルチスケジューラデーモンをランダムに選択するためには,TP1/Client/J環境定義のdchostオペランド,またはdcscdportオペランドに次のポート番号を指定します。

  • スケジュールサービス定義のscd_portオペランドに指定された,スケジュールサービスのポート番号

  • スケジュールサービス定義のscdmultiの-pオプションに指定されたポート番号

また,あらかじめTP1/Serverで起動しているマルチスケジューラデーモンのプロセス数を,TP1/Client/J環境定義のdcscdmulticountオペランドに指定しておく必要があります。サービス要求を送信するマルチスケジューラデーモンのポート番号は,次に示す範囲の値からランダムに選択されます。

  • 下限値:TP1/Client/J環境定義のdchostオペランド,またはdcscdportオペランドに指定したポート番号の値

  • 上限値:下限値 + TP1/Client/J環境定義のdcscdmulticountオペランドに指定したプロセス数 - 1

ただし,TP1/Client/J環境定義のdchostオペランドで指定した窓口となるTP1/Server間で,スケジュールサービス定義のscdmultiで指定した値を統一する必要があります。

(b) ネームサービスを使用したRPC

マルチスケジューラ機能を使用して,ネームサービスを使用したRPCを行う場合について説明します。サービス情報を一時的に格納する領域に,該当するサービス情報がないときはネームサービスにサービス情報を問い合わせます。サービス情報を基にマルチスケジューラデーモンをランダムに選択してサービス要求を送信します。

(2) TP1/Client/J環境定義とサービス要求を送信するスケジューラデーモンの関連

マルチスケジューラ機能を使用した場合,サービス要求を送信するスケジューラデーモンはTP1/Client/J環境定義の指定によって異なります。

スケジューラダイレクト機能を使用したRPCの場合の,TP1/Client/J環境定義のオペランドの指定とスケジューラデーモンの関連を次の表に示します。

表2‒1 TP1/Client/J環境定義のオペランドの指定とスケジューラデーモンの関連(スケジューラダイレクト機能を使用したRPC)

TP1/Client/J環境定義のオペランドの指定

サービス要求を送信するスケジューラデーモン

dcscddirect

dcscdmulti

dcscdmulticount

Y

Y

ランダムに選択したマルチスケジューラデーモン

TP1/Client/J環境定義のdchostオペランド,またはdcscdportオペランドに指定したポート番号で起動されているスケジューラデーモン

N

無効

TP1/Client/J環境定義のdchostオペランド,またはdcscdportオペランドに指定したポート番号で起動されているスケジューラデーモン

(凡例)

Y:オペランドの指定値がYである

N:オペランドの指定値がNである

○:オペランドに値を指定する

−:オペランドに値を指定しない

注※

マルチスケジューラデーモンのポート番号は,次に示す範囲の値から選択されます。

下限値:TP1/Client/J環境定義のdchostオペランド,またはdcscdportオペランドに指定したポート番号の値

上限値:下限値 + TP1/Client/J環境定義のdcscdmulticountオペランドに指定したプロセス数 - 1

ネームサービスを使用したRPCの場合の,TP1/Client/J環境定義のオペランドの指定とスケジューラデーモンの関連を次の表に示します。

表2‒2 TP1/Client/J環境定義のオペランドの指定とスケジューラデーモンの関連(ネームサービスを使用したRPC)

TP1/Client/J環境定義のオペランドの指定

サービス要求を送信するスケジューラデーモン

dcnamuse

dcscdmulti

dcscdmulticount

Y

Y

無効

サービス情報を基にランダムに選択したマルチスケジューラデーモン

N

マスタスケジューラデーモン

(凡例)

Y:オペランドの指定値がYである

N:オペランドの指定値がNである

注※

ネームサービスへの問い合わせが発生します。