2.15.1 TP1/Serverとの通信時
- 〈この項の構成〉
(1) 通信先ホスト複数指定個所
TP1/Client/J環境定義のdchostオペランドに指定します。
(2) 通信先ホスト選択契機
rpcOpenメソッド実行時に選択します。
接続障害発生時は,rpcCallメソッド実行時にホストを切り替えます。
実行メソッド |
ホスト切り替えの契機 |
---|---|
rpcCall |
ネームサービスとの接続(サービス情報検索)に失敗した場合。 TP1/Client/J環境定義dcnamuse=Yのときに該当します。 |
スケジュールサービスとの接続に失敗した場合。 TP1/Client/J環境定義dcscddirect=Yのときに該当します。 |
(3) 通信先ホスト選択方法
TP1/Client/J環境定義dchostselectオペランドの指定値によって,選択方法が異なります。dchostselectオペランドの指定を省略した場合,またはNを指定した場合,dcshostオペランドに指定された順番に通信先ホストを選択します。この指定の場合,TP1/Client/J環境定義のdchostオペランドに同一の指定を行った複数のCUPから一斉にサービスを要求したとき,一つのホストに負荷が集中してしまいます。dchostselectオペランドにYを指定すると,初回rpcCall()メソッド呼び出し時にランダムに通信先ホストを選択するため,サーバの負荷を分散させることができます。
dchostselect |
通信先ホストの選択方法 |
|
---|---|---|
初回選択時 (rpcOpenメソッド実行時) |
接続障害発生時 |
|
N |
先頭に指定されたホストを選択します。 |
障害となったホストの次に指定されたホストを選択します。 |
Y |
複数指定されたホストの中からランダムに選択します。 |
障害となったホストの次に指定されたホストを選択します。 |
ホスト切り替えは,通信が成功するまで繰り返し行います。指定されたすべてのホストとの接続に失敗した場合,メソッドはエラーリターンします。
次メソッド発行時,再度ホスト切り替えが発生した場合,前回障害となったホストも切り替えるホストの対象となります。
ホスト切り替えによって決定したホストは,次の契機で再びホストの選択,または切り替えが発生するまで,通信先ホストとなります。
-
rpcOpenメソッドによるホスト選択
-
setDchostメソッドによるホスト選択
-
rpcCallメソッドの接続障害で再びホスト切替えが発生
- 〈例1〉次の指定の場合
dchost=hostA,hostB,hostC dchostselect=N
-
rpcOpenメソッド発行
先頭に指定されたhostAを選択
hostAとの接続に成功
-
rpcCallメソッド発行
hostAとの接続障害発生
障害となったhostAの次に指定されたhostBを選択
hostBとの接続障害発生
障害となったhostBの次に指定されたhostCを選択
hostCとの接続に成功
-
rpcCallメソッド発行
hostCとの接続障害発生
障害となったhostCの次に指定されたhostAを選択
hostAとの接続障害発生
障害となったhostAの次に指定されたhostBを選択
hostBとの接続障害発生
選択対象ホストがなくなりメソッドはエラーリターン
-
rpcCallメソッド発行
3.で最後に接続障害が発生したホストhostBを選択
-
rpcCloseメソッド発行
-
rpcOpenメソッド発行
先頭に指定されたhostAを選択
-
- 〈例2〉次の指定の場合
dchost=hostA,hostB,hostC dchostselect=Y
-
rpcOpenメソッド発行
hostA,hostB,hostCからランダム選択
hostBとの接続に成功
-
rpcCallメソッド発行
hostBとの接続障害発生
障害となったhostBの次に指定されたhostCを選択
hostCとの接続障害発生
障害となったhostCの次に指定されたhostAを選択
hostAとの接続に成功
-
rpcCallメソッド発行
hostAとの接続障害発生
障害となったhostAの次に指定されたhostBを選択
hostBとの接続障害発生
hostCを選択
hostCとの接続障害発生
選択対象ホストがなくなりメソッドはエラーリターン
-
rpcCallメソッド発行
3.で最後に接続障害が発生したホストhostCを選択
-
rpcCloseメソッド発行
-
rpcOpenメソッド発行
hostA,hostB,hostCからランダム選択
-