Hitachi

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


2.16.2 スケジュールプライオリティの設定

rpcCallメソッドを呼び出す直前に,setRpcServicePrioメソッドを呼び出してサービス要求のプライオリティを設定します。これによって,サービス要求の優先度が,サーバUAP側のスケジュールキューを経由してサーバに通知されます。

setRpcServicePrioメソッドを1度も使わない場合は,TP1/Serverのスケジュールサービスの省略時解釈値である4が,サービス要求のプライオリティとして指定されます。設定したスケジュールプライオリティは,getRpcServicePrioメソッドで参照できます。

設定したサービス要求のプライオリティは,サーバUAPがキュー受信型サーバ(スケジュールサービスでスケジュールされるSPP)であり,かつサーバUAPのユーザサービス定義にservice_priority_control=Y(プライオリティを制御する)を指定している場合だけ有効です。サービスを要求する相手のサーバUAPでプライオリティを制御していない場合は,このメソッドを呼び出しても無効になります。OpenTP1のユーザサービス定義については,マニュアル「OpenTP1 システム定義」を参照してください。

リモートAPI機能を使用したサービス要求に対して,setRpcServicePrioメソッドを呼び出しても無効となります。

次の図にプライオリティを設定した場合のSPPのスケジュールを示します。

優先度の低い8を設定した(A)のサービス要求と,優先度の高い1を設定した(B)のサービス要求が同時にスケジュールキューに存在した場合,(B)のサービス要求を先に取り出します。

(A)のサービス要求と(B)のサービス要求の優先度が同じだった場合は,先入れ先出しでスケジュールキューから取り出します。

図2‒48 プライオリティを設定した場合のSPPのスケジュール

[図データ]