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)のサービス要求の優先度が同じだった場合は,先入れ先出しでスケジュールキューから取り出します。
|