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