Azure Cosmos DB サービス利用不可の例外を診断してトラブルシューティングする
適用対象: NoSQL
SDK は、Azure Cosmos DB に接続することができませんでした。 このシナリオは、ネットワークの状態に応じて一時的な場合と永続的な場合があります。
さまざまなネットワーク状態に正しく反応できるようにするために、アプリケーションの設計は、Microsoft の Azure Cosmos DB SDK を使用して回復性の高いアプリケーションを設計するためのガイドに従っていることが重要です。 サービス利用不可エラーの際に、適宜アプリケーションで再試行が実行されるようにする必要があります。
サービス利用不可エラーのケースを評価する場合:
- 成功した操作の量と影響を受けた操作の量の比較によって、どのような影響が測定されていますか。 サービスの SLA 内にありますか。
- P99 待機時間および可用性は影響を受けていますか。
- これらのエラーは、すべてのアプリケーション インスタンスに影響していますか、またはサブセットのみに影響していますか。 問題がインスタンスのサブセットに限定される場合は、通常、これらのインスタンスに関連する問題になります。
トラブルシューティングの手順
次の一覧には、サービス利用不可の例外の既知の原因と解決策が含まれています。
サブステータス コードを確認する
特定の条件では、HTTP 503 サービス利用不可エラーに、原因の特定に役立つサブステータス コードが含まれます。
サブステータス コード | 説明 |
---|---|
20001 | クライアント側の接続に問題があるため (接続の失敗)、サービス利用不可エラーが発生しました。 クライアントは再試行して復旧を試みましたが、すべての再試行に失敗しました。 |
20002 | クライアント側のタイムアウトにより、サービス利用不可エラーが発生しました。 クライアントは再試行して復旧を試みましたが、すべての再試行に失敗しました。 |
20003 | オペレーティング システムに関連する根本的な I/O エラーがあるため、サービス利用不可エラーが発生しました。 関連する I/O エラーの例外の詳細を参照してください。 |
20004 | クライアント マシンの CPU がオーバーロードしたため、サービス利用不可エラーが発生しました。 |
20005 | クライアント マシンのスレッド プールが不足したため、サービス利用不可エラーが発生しました。 コード内で非同期呼び出しがブロックされる可能性があるかどうかを確認します。 |
20006 | サービスとクライアントの間の接続が、予期しない方法で中断または終了されました。 |
>= 21001 | このサービス利用不可エラーは、一時的なサービス状態が原因で発生しました。 上記のセクションの条件を確認し、再試行ポリシーが設定されているかどうかを確認します。 これらのエラーの量が正常に完了したものと比較して多い場合は、Azure サポートにお問い合わせください。 |
必要なポートがブロックされている
必要なすべてのポートが有効になっていることを確認します。
クライアント側の一時的な接続に関する問題
タイムアウトの原因となっている一時的な接続の問題があり、設計上の推奨事項に従って安全に再試行できる場合、サービス利用不可の例外が発生する可能性があります。
要求のタイムアウトのトラブルシューティングの手順に関するページに従って、問題を解決します。
サービス停止
[Azure の状態] を確認して、進行中の問題があるかどうかを確認します。
次のステップ
- Azure Cosmos DB .NET SDK 使用時の問題を診断してトラブルシューティングする。
- Azure Cosmos DB Java SDK 使用時の問題を診断してトラブルシューティングする。
- .NET のパフォーマンス ガイドラインを確認する。
- Java のパフォーマンス ガイドラインを確認する。