|
接続フェイルオーバーによって、ハードウェア障害やトラフィックの過負荷などが原因でプライマリ データベース サーバーが利用できなくなった場合でも、アプリケーションは代替またはバックアップ データベース サーバーに接続することができます。接続フェイルオーバーは、重要な .NET アプリケーションが依存するデータを常に使用可能な状態にします。
プライマリ サーバーが接続を受け入れない場合に接続を試行する代替データベースのリストを設定することで、データ プロバイダーにおける接続フェイルオーバー機能をカスタマイズすることができます。接続が成功するまで、あるいはすべての代替データベースへの接続を指定した回数試行するまで、接続の試行が続けられます。
たとえば、図 1 は複数のデータベース サーバーを持つ環境を示しています。データベース サーバー A はプライマリ データベース サーバー、データベース サーバー B は 1 番目の代替サーバー、そしてデータベース サーバー C は 2 番目の代替サーバーとして設計されています。
まず、アプリケーションはプライマリ データベースであるデータベース サーバー A(1)に接続を試みます。接続フェイルオーバー機能を有効にすると、アプリケーションがデータベース サーバー A に接続できなかった場合はデータベース サーバー B(2)に接続を試みます。その接続の試行も失敗した場合、アプリケーションはデータベース サーバー C(3)に接続を試みます。
このシナリオで、最低でもどれか 1 つのサーバーへは接続できると思われますが、接続にすべて失敗した場合、データ プロバイダーはプライマリ サーバーと各代替データベースに対し指定の回数分だけ接続を再試行させることができます。接続の再試行(Connection Retry Count)機能を使用すれば、試行回数を指定することができます。接続の試行間隔(Connection Retry Delay)機能を使用すれば、接続の試行間隔を秒数で指定することもできます。接続の再試行の詳細については、接続の再試行機能の使用を参照してください。
データ プロバイダーは、現在対象としている代替サーバーとの通信が確立できなかった場合にのみ、次の代替サーバーへフェイルオーバーします。データ プロバイダーがデータベースとの通信に成功したが、ログイン情報が正しくないなどの原因でそのデータベースが接続要求を拒否した場合、データ プロバイダーは例外を生成し、代替サーバー リスト内の次のデータベースへは接続を試行しません。これは、各代替サーバーがプライマリ サーバーのミラーであり、認証パラメーターや関連情報がすべて同じであることが前提です。
接続フェイルオーバーでは新しい接続のみを保護し、トランザクションやクエリの状態は保持しません。ご使用のデータ プロバイダーにおける接続フェイルオーバーの設定の詳細については、接続フェイルオーバーの設定を参照してください。
|