2.1.6 サービス要求のスケジュールプライオリティの設定
一つの処理から呼び出す複数のサービス要求に優先順位を付けたい場合,サービス要求ごとのプライオリティを設定できます。dc_rpc_call関数を呼び出す直前に,
dc_rpc_set_service_prio関数【CBLDCRPC('SETSVPRI')】を呼び出してサービス要求のプライオリティを設定します。これによって,サービス要求の優先度が,サーバUAP側のスケジュールキューを経由してサーバに通知されます。
dc_rpc_set_service_prio関数を1度も使わない処理の場合は,スケジュールサービスの省略時解釈である4が,サービス要求のプライオリティとして指定されます。設定したスケジュールプライオリティは,dc_rpc_get_service_prio関数【CBLDCRPC('GETSVPRI')】で参照できます。
キュー受信型サーバ(スケジュールサービスでスケジュールされるSPP)では,設定したサービス要求のプライオリティは,サーバUAPのユーザサービス定義に,service_priority_controlオペランドにY(プライオリティを制御する)を指定している場合だけ有効です。サービスを要求する相手のサーバUAPでプライオリティを制御していない場合は,この関数を呼び出しても無効になります。
ソケット受信型サーバ(スケジュールキューを経由しないでサービス要求を受信するSPP)では,クライアントUAPで設定したプライオリティに無条件に従います。
次に示すサービス要求に対して,dc_rpc_set_service_prio関数を呼び出しても無効となります。
-
連鎖RPCの2回目以降のサービス要求
-
連鎖RPCを終了させるために呼び出す,同期応答型RPCのdc_rpc_call関数(flagsにDCNOFLAGSを設定)