Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/J編


2.15.1 TP1/Serverとの通信時

〈この項の構成〉

(1) 通信先ホスト複数指定個所

TP1/Client/J環境定義のdchostオペランドに指定します。

(2) 通信先ホスト選択契機

rpcOpenメソッド実行時に選択します。

接続障害発生時は,rpcCallメソッド実行時にホストを切り替えます。

表2‒55 ホスト切り替えの契機

実行メソッド

ホスト切り替えの契機

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()メソッド呼び出し時にランダムに通信先ホストを選択するため,サーバの負荷を分散させることができます。

表2‒56 ホスト切り替えの契機

dchostselect

通信先ホストの選択方法

初回選択時

(rpcOpenメソッド実行時)

接続障害発生時

N

先頭に指定されたホストを選択します。

障害となったホストの次に指定されたホストを選択します。

Y

複数指定されたホストの中からランダムに選択します。

障害となったホストの次に指定されたホストを選択します。

ホスト切り替えは,通信が成功するまで繰り返し行います。指定されたすべてのホストとの接続に失敗した場合,メソッドはエラーリターンします。

次メソッド発行時,再度ホスト切り替えが発生した場合,前回障害となったホストも切り替えるホストの対象となります。

ホスト切り替えによって決定したホストは,次の契機で再びホストの選択,または切り替えが発生するまで,通信先ホストとなります。

〈例1〉次の指定の場合
dchost=hostA,hostB,hostC
dchostselect=N
  1. rpcOpenメソッド発行

    先頭に指定されたhostAを選択

    [図データ]

    hostAとの接続に成功

  2. rpcCallメソッド発行

    hostAとの接続障害発生

    障害となったhostAの次に指定されたhostBを選択

    [図データ]

    hostBとの接続障害発生

    障害となったhostBの次に指定されたhostCを選択

    [図データ]

    hostCとの接続に成功

  3. rpcCallメソッド発行

    hostCとの接続障害発生

    障害となったhostCの次に指定されたhostAを選択

    [図データ]

    hostAとの接続障害発生

    障害となったhostAの次に指定されたhostBを選択

    [図データ]

    hostBとの接続障害発生

    選択対象ホストがなくなりメソッドはエラーリターン

  4. rpcCallメソッド発行

    3.で最後に接続障害が発生したホストhostBを選択

    [図データ]

  5. rpcCloseメソッド発行

  6. rpcOpenメソッド発行

    先頭に指定されたhostAを選択

〈例2〉次の指定の場合
dchost=hostA,hostB,hostC
dchostselect=Y
  1. rpcOpenメソッド発行

    hostA,hostB,hostCからランダム選択

    [図データ]

    hostBとの接続に成功

  2. rpcCallメソッド発行

    hostBとの接続障害発生

    障害となったhostBの次に指定されたhostCを選択

    [図データ]

    hostCとの接続障害発生

    障害となったhostCの次に指定されたhostAを選択

    [図データ]

    hostAとの接続に成功

  3. rpcCallメソッド発行

    hostAとの接続障害発生

    障害となったhostAの次に指定されたhostBを選択

    [図データ]

    hostBとの接続障害発生

    hostCを選択

    [図データ]

    hostCとの接続障害発生

    選択対象ホストがなくなりメソッドはエラーリターン

  4. rpcCallメソッド発行

    3.で最後に接続障害が発生したホストhostCを選択

    [図データ]

  5. rpcCloseメソッド発行

  6. rpcOpenメソッド発行

    hostA,hostB,hostCからランダム選択