2.15.2 rapリスナー,DCCM3論理端末との通信時
- 〈この項の構成〉
(1) 通信先ホスト複数指定個所
Client .NET構成定義の<tp1Server>要素のhost属性に指定します。
(2) 通信先ホスト選択契機
OpenRpcメソッド実行時に選択します。
接続障害が発生している場合は,メソッド実行時にホストを切り替えます。
実行メソッド |
ホスト切り替えの契機 |
---|---|
Call※ |
|
Begin OpenConnection(引数なし) |
|
- 注※
-
トランザクションの範囲内で実行した場合は該当しません。
(3) 通信先ホスト選択方法
Client .NET構成定義の<nameService>要素のrandomSelect属性の指定値によって,選択方法が異なります。randomSelect属性の指定を省略,またはfalseを指定した場合,<tp1Server>要素のhost属性に指定された順番に通信先ホストを選択します。
この指定の場合,Client .NET構成定義の<tp1Server>要素のhost属性に同一の指定を行った複数のCUP.NETから一斉にサービスを要求した場合,1つのホストに負荷が集中してしまいます。randomSelect属性にtrueを指定すると,OpenRpc実行時にランダムに通信先ホストを選択するため,サーバの負荷を分散させることができます。
randomSelect |
通信先ホストの選択方法 |
|
---|---|---|
初回選択時 (OpenRpcメソッド実行時) |
接続障害発生時 |
|
false |
先頭に指定されたホストを選択します。 |
障害となったホストの次に指定されたホストを選択します。 |
true |
複数指定されたホストの中からランダムに選択します。 |
障害となったホストの次に指定されたホストを選択します。 |
ホスト切り替えは,通信が成功するまで繰り返し行います。指定されたすべてのホストとの接続に失敗した場合,メソッドはエラーリターンします。
次メソッド発行時,再度ホスト切り替えが発生した場合,前回障害となったホストも切り替えるホストの対象となります。
ホスト切り替えによって決定したホストは,次の契機で再びホストの選択,または切り替えが発生するまで,通信先ホストとなります。
-
OpenRpcメソッドによるホスト選択
-
SetTP1Serverメソッドによるホスト選択
-
OpenConnection,Begin,Callメソッドの接続障害で再びホスト切り替えが発生
- 例1) 次の指定の場合
<tp1Server host="hostA"> <tp1Server host="hostB"> <tp1Server host="hostC"> <nameService randomSelect="false"> 1. OpenRpcメソッド発行 先頭に指定されたhostAを選択 +-----+ |hostA| hostB hostC +-----+ hostAとの接続に成功 2. Callメソッド発行 hostAとの接続障害発生 障害となったhostAの次に指定されたhostBを選択 +-----+ × |hostB| hostC +-----+ hostBとの接続障害発生 障害となったhostBの次に指定されたhostCを選択 +-----+ × × |hostC| +-----+ hostCとの接続に成功 3. Call発行メソッド hostCとの接続障害発生 障害となったhostCの次に指定されたhostAを選択 +-----+ |hostA| hostB × +-----+ hostAとの接続障害発生 障害となったhostAの次に指定されたhostBを選択 +-----+ × |hostB| × +-----+ hostBとの接続障害発生 選択対象ホストがなくなりメソッドはエラーリターン 4. Callメソッド発行 3.で最後に接続障害が発生したホストhostBを選択 +-----+ hostA |hostB| hostC +-----+ 5. CloseRpcメソッド発行 6. OpenRpcメソッド発行 先頭に指定されたhostAを選択
- 例2) 次の指定の場合
<tp1Server host="hostA"> <tp1Server host="hostB"> <tp1Server host="hostC"> <nameService randomSelect="true"> 1. OpenRpcメソッド発行 hostA,hostB,hostCからランダム選択 +-----+ hostA |hostB| hostC +-----+ hostBとの接続に成功 2. Callメソッド発行 hostBとの接続障害発生 障害となったhostBの次に指定されたhostCを選択 +-----+ hostA × |hostC| +-----+ hostCとの接続障害発生 障害となったhostCの次に指定されたhostAを選択 +-----+ |hostA| × × +-----+ hostAとの接続に成功 3. Callメソッド発行 hostAとの接続障害発生 障害となったhostAの次に指定されたhostBを選択 +-----+ × |hostB| hostC +-----+ hostBとの接続障害発生 hostCを選択 +-----+ × × |hostC| +-----+ hostCとの接続障害発生 選択対象ホストがなくなりメソッドはエラーリターン 4. Callメソッド発行 3.で最後に接続障害が発生したホストhostCを選択 +-----+ hostA hostB |hostC| +-----+ 5. CloseRpcメソッド発行 6. OpenRpcメソッド発行 hostA,hostB,hostCからランダム選択