Hitachi

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


2.3.11 窓口となるTP1/Serverの切り替え機能

窓口となるTP1/Serverで障害が発生すると,エラーリターン後,窓口となるTP1/Serverの定義を変更する必要があります。しかし,複数の窓口となるTP1/Serverを指定しておくと,TP1/Clientは,指定された次のTP1/Serverに切り替えを試みます。

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

ホスト切り替えに成功し関数が正常終了したあと,再度ホスト切り替えが発生した場合,前回障害となったホストも切り替えるホストの対象となります。

ホスト切り替えが発生すると,dc_clt_cltout_s関数を実行するまで,そのホストが通信先ホストとなります。

ただし,CUPから一斉にサービスを要求した場合,一つの窓口となるTP1/Serverのネームサービスに問い合わせが集中してしまうので,負荷が集中してしまうことになります。複数の窓口となるTP1/Serverをランダムに選択すれば,窓口となるTP1/Serverの負荷を分散できます。詳細については「2.3.12 窓口となるTP1/Serverの負荷分散」を参照してください。

〈この項の構成〉

(1) 切り替えのタイミング

(2) 切り替え先OpenTP1の指定方法

(3) 切り替えの順序

初回選択時(dc_clt_cltin_s関数実行時)は,先頭に指定されたホストを選択します。障害発生時は,障害となったホストの次に指定されたホストを選択します。

〈例〉次の指定の場合
DCHOST=hostA,hostB,hostC
DCHOSTSELECT=N
  1. dc_clt_cltin_s関数発行

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

    [図データ]

    hostAとの接続に成功

  2. dc_rpc_call_s関数発行

    hostAとの接続障害発生

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

    [図データ]

    hostBとの接続障害発生

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

    [図データ]

    hostCとの接続に成功

  3. dc_rpc_call_s関数発行

    hostCとの接続障害発生

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

    [図データ]

    hostAとの接続障害発生

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

    [図データ]

    hostBとの接続障害発生

    選択対象ホストがなくなり関数はエラーリターン

  4. dc_rpc_call_s関数発行

    hostBとの接続に成功

  5. dc_clt_cltout_s関数発行

  6. dc_clt_cltin_s関数発行

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