接続エラーを処理する
ほとんどの要求は問題ありませんが、一時的な理由で要求が失敗する可能性があるシナリオがいくつかあります。 これらのシナリオでは、適度な時間が経過してから要求を再試行する必要があります。
組み込みの再試行
一時エラーとは、その基になる原因がすぐに自動的に解決されるエラーです。 データベースに接続するアプリケーションは、これらの一時エラーを想定して構築する必要があります。 Azure Cosmos DB for NoSQL SDK for .NET には、読み取りとクエリ要求の一般的な一時エラーを処理するためのロジックが組み込まれています。 SDK は、べき等ではないため、書き込み要求を自動的に再試行しません。
ヒント
常に最新バージョンの SDK を使用してください。 組み込みの再試行ロジックは、新しいリリースで継続的に改善されています。
書き込みエラーが発生するアプリケーションを作成する場合、ベスト プラクティスと考えられる再試行ロジックの実装はアプリケーションのコードで行う必要があります。
アプリケーション開発者にとって重要なのは、要求の再試行が意味を持つ HTTP 状態コードを理解することです。 このようなコードには次が含まれますが、これらだけに限定されるものではありません。
- 429: 要求が多すぎます
- 449: 同時実行エラー
- 500: 予期しないサービス エラー
- 503: サービスは利用できません
ヒント
サービスの可用性に関する問題を示す 50x エラーが発生した場合は、Azure サポートに問題を提出して、テクニカル サポートを受けたり、問題を報告したりすることができます。
400 (無効な要求)、401 (未承認)、403 (許可されていません)、404 (見つかりません) などの HTTP エラーコードがあります。これらは、アプリケーション コードで修正する必要があり、再試行されないクライアント側のエラーを示します。