2.8.3 接続障害の検知と復旧確認
- 〈この項の構成〉
(1) 接続障害の検知の流れ
次の条件が定義された場合の接続障害の検知の流れを示します。
-
ネームサービスを使用したRPCで行う。
-
hostAで障害が発生している。
-
コネクションA,B,Cの順番に実行する。
-
プロファイルID1:hostA,hostBの順に接続先を選択する。
-
プロファイルID2:hostB,hostAの順に接続先を選択する。
図2‒36 接続障害の検知の流れ -
コネクションAは,構成定義に指定されたhostA:10000に接続する前に,接続障害情報にhostA:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostA:10000が登録されていないため,接続を試みます。
hostA:10000で障害が発生したため,接続に失敗します。
-
接続障害情報にhostA:10000が登録されます。
-
コネクションAは,次の接続先として設定されているhostB:10000に接続する前に,接続障害情報にhostB:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostB:10000が登録されていないため,接続を試みます。
接続に成功します。
-
コネクションBは,構成定義に指定されたhostA:10000に接続する前に,接続障害情報にhostA:10000が登録されていないかどうかを確認します。
接続障害情報にhostA:10000が登録されているため,hostA:10000には接続しません。
-
コネクションBは,次の接続先として設定されているhostB:10000に接続する前に,接続障害情報にhostB:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostB:10000が登録されていないため,接続を試みます。
接続に成功します。
-
コネクションCは,構成定義に指定されたhostB:10000に接続する前に,接続障害情報にhostB:10000が登録されていないか確認します。
-
接続障害情報にhostB:10000が登録されていないため,接続を試みます。
接続に成功します。
-
(2) 復旧確認動作の流れ
復旧確認動作の流れを,障害後に接続先が復旧している場合と復旧していない場合とに分けて説明します。
(a) 障害後に接続先が復旧している場合
次の条件が定義された場合の復旧確認動作の流れを示します。
-
ネームサービスを使用したRPCで行う。
-
hostAが障害発生後に復旧している。
-
Connector .NET構成定義の<connection>要素のfailureCheckInterval属性で指定した時間が経過している。
-
コネクションA,B,Cの順番に実行する。
-
プロファイルID1:hostA,hostBの順に接続先を選択する。
-
プロファイルID2:hostB,hostAの順に接続先を選択する。
図2‒37 復旧確認動作の流れ(障害後に接続先が復旧している場合) -
コネクションAは,構成定義に指定されたhostA:10000に接続する前に,接続障害情報にhostA:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostA:10000が登録されているが,接続障害情報の障害発生時刻から一定時間が経過しているため,接続を試みます。
接続に成功します。
-
接続障害情報からhostA:10000を削除します。
-
コネクションBは,構成定義に指定されたhostA:10000に接続する前に,接続障害情報にhostA:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostA:10000が登録されていないため,接続を試みます。
接続に成功します。
-
コネクションCは,構成定義に指定されたhostB:10000に接続する前に,接続障害情報にhostB:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostB:10000が登録されていないため,接続を試みます。
接続に成功します。
-
(b) 障害後に接続先が復旧していない場合
次の条件が定義された場合の復旧確認動作の流れを示します。
-
ネームサービスを使用したRPCで行う。
-
hostAが障害発生後に復旧していない。
-
Connector .NET構成定義の<connection>要素のfailureCheckInterval属性で指定した時間が経過している。
-
コネクションA,B,Cの順番に実行する。
-
プロファイルID1:hostA,hostBの順に接続先を選択する。
-
プロファイルID2:hostB,hostAの順に接続先を選択する。
図2‒38 復旧確認動作の流れ(障害後に接続先が復旧していない場合) -
コネクションAは,構成定義に指定されたhostA:10000に接続する前に,接続障害情報にhostA:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostA:10000が登録されているが,接続障害情報の障害発生時刻から一定時間が経過しているため,接続を試みます。
hostA:10000は障害発生中のため,接続に失敗します。
-
接続障害情報の障害発生時刻を現在の時刻に更新します。
-
コネクションAは,次の接続先として設定されているhostB:10000に接続する前に,接続障害情報にhostB:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostB:10000が登録されていないため,接続を試みます。
接続に成功します。
-
コネクションBは,構成定義に指定されたhostA:10000に接続する前に,接続障害情報にhostA:10000が登録されていないかどうかを確認します。
接続障害情報にhostA:10000が登録されているため,hostA:10000には接続しません。
-
コネクションBは,次の接続先として設定されているhostB:10000に接続する前に,接続障害情報にhostB:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostB:10000が登録されていないため,接続を試みます。
接続に成功します。
-
コネクションCは,構成定義に指定されたhostB:10000に接続する前に,接続障害情報にhostB:10000が登録されていないかどうかを確認します。
-
接続障害情報にhostB:10000が登録されていないため,接続を試みます。
接続に成功します。
-
以降,hostA:10000の復旧が確認されるまで,Connector .NET構成定義の<connection>要素のfailureCheckInterval属性で指定した時間ごとに,コネクションAまたはコネクションBが1.〜5.の動作をします。