SqlClient の構成可能な再試行ロジック
適用対象: .NET Framework .NET .NET Standard
クラウドで実行されている要素と通信するアプリケーションは、この環境で発生する一時的な障害に敏感である必要があります。 通常、これらの障害は自己修正されます。 障害のトリガーとなったアクションを適切な待ち時間の経過後に再試行すると、高い確率で正常に実行されます。
注意
この機能は、Microsoft.Data.SqlClient バージョン 3.0.0 プレビュー 1 以降で使用できます。
再試行パターン
例外をスローしてユーザーに次のアクションを決定させるのではなく、一時的なエラーにもかかわらず操作を完了しようとすることは、再試行パターンと呼ばれるインテリジェントな決定です。 詳細については、「再試行パターン」を参照してください。
一時的な障害
堅牢なインフラストラクチャを構築し、最新のテクノロジで実装された既知のアプリケーションを使用して、サービスのダウンタイムを短縮できます。 しかし、障害をゼロにすることは不可能です。 一時的なエラーとは、既知の理由で発生することがあり、しばらくすると消える障害です。 たとえば、サーバー側で負荷分散の変更が進行しているときに、要求されたサービスが一時的に失敗したり、タイムアウトしたりする可能性があります。詳細については、一時的な障害に関する記事を参照してください。
やるべきことと、やってはならないこと
再試行パターンを使用するとアプリケーションの回復性は大幅に向上しますが、間違った状況で使用すると、アプリケーションに悪影響を与える可能性があります。 一時的な障害のリストに例外を追加する前に、しばらく時間をおいて、"すぐに解決するか" を自問自答してください。 急がないでください。 質問に対する適切な答えが見つからない場合は、理由を調べてみましょう。 詳細については、「Azure SQL Database および Azure SQL Managed Instance の接続に関する問題とその他のエラーのトラブルシューティング」を参照してください。
このセクションの内容
SqlClient の構成可能な再試行ロジックの概要
構成可能な再試行ロジックのさまざまなセクションについて説明します。
SqlClient の内部再試行ロジック プロバイダー
事前定義済みの再試行プロバイダーを使用して、再試行ロジックをデータベースに適用する方法を示します。
SqlClient の構成可能な再試行ロジックのコア API
コア API を使用してカスタム再試行ロジックを実装する方法を示します。
SqlClient での構成可能な再試行ロジック構成ファイル
構成ファイルを介して既定の再試行ロジック プロバイダーを指定する方法を示します。