CUPから一斉にサービスを要求した場合,一つの窓口となるTP1/Serverのネームサービスに問い合わせが集中してしまうので,負荷が集中してしまうことになります。しかし,TP1/Clientが複数の窓口となるTP1/Serverの中からランダムに選択すれば,窓口となるTP1/Serverへの負荷を分散できます。
窓口となるTP1/Serverをランダムに選択するには,クライアント環境定義DCHOSTSELECTにYを指定します。
CUPからサービスを要求する場合,クライアント環境定義DCHOSTに指定された窓口となるTP1/Serverのネームサービスに,要求するサービスがどのノードにあるかを問い合わせます。
複数の窓口となるTP1/Serverを指定している場合,TP1/Clientは先頭に指定したTP1/Serverのネームサービスに最初に問い合わせます。先頭に指定したTP1/Serverが起動していないなどの理由で,サービス要求が受け付けられない場合だけ,その次に指定された窓口となるTP1/Serverに切り替えを試みます。
TP1/Serverでは,サービス要求を各ノードに振り分けてノード間の負荷を分散しています。これによって,サービス要求を受け付けたノードのスケジュールサービスは,負荷を分散させるために,別のノードにあるTP1/Serverにサービス要求を転送する場合があります。
しかし,TP1/Client側で窓口となるTP1/Serverをランダムに選択していた場合は,すでに選択された窓口となるTP1/Serverから,さらに別のノードにあるTP1/Serverへ振り分けられることになります。このため,オーバヘッドが掛かることがあります。
このような現象を回避するために,TP1/Client側で選択した窓口となるTP1/Serverを優先して負荷を分散できます。窓口となるTP1/Serverを優先して負荷を分散するには,クライアント環境定義DCSCDLOADPRIORITYにYを指定します。
この定義は,ネームサービスを使用しないRPCを行う場合(クライアント環境定義DCSCDDIRECTにYを指定)だけ,有効です。