適用対象: NoSQL
Java v4 SDK は、Azure Cosmos DB に接続することができませんでした。
トラブルシューティングの手順
次の一覧には、サービス利用不可の例外の既知の原因と解決策が含まれています。
必要なポートがブロックされている
必要なすべてのポートが有効になっていることを確認します。 アカウントがプライベート エンドポイントで構成されている場合は、追加のポートを開く必要があります。
failed to establish connection to {account name}.documents.azure.com/<unresolved>:3044 due to io.netty.channel.ConnectTimeoutException:
クライアント初期化エラー
SDK と Azure Cosmos DB インスタンスの間に通信を確立できない場合、次の例外が発生します。 この例外は通常、ファイアウォール規則など、なんらかのセキュリティ プロトコルによって要求がブロックされていることを示しています。
java.lang.RuntimeException: Client initialization failed. Check if the endpoint is reachable and if your auth token is valid
SDK と Azure Cosmos DB アカウントの間に通信が確立されていることを確認するには、アプリケーションがホストされている場所から次のコマンドを実行します。 失敗した場合、ファイアウォール規則やその他のセキュリティ機能によって要求がブロックされている可能性があります。 成功した場合、SDK と Azure Cosmos DB アカウントの間に通信が確立されていると考えられます。
telnet myCosmosDbAccountName.documents.azure.com 443
クライアント側の一時的な接続に関する問題
サービス利用不可の例外は、タイムアウトの原因となっている一時的な接続の問題がある場合に発生する可能性があります。 一般的に、このシナリオに関連するスタック トレースには、ServiceUnavailableException
エラーと診断詳細が含まれます。 次に例を示します。
Exception in thread "main" ServiceUnavailableException{userAgent=azsdk-java-cosmos/4.6.0 Linux/4.15.0-1096-azure JRE/11.0.8, error=null, resourceAddress='null', requestUri='null', statusCode=503, message=Service is currently unavailable, please retry after a while. If this problem persists please contact support.: Message: "" {"diagnostics"}
要求のタイムアウトのトラブルシューティング手順に従って、それを解決してください。
UnknownHostException(不明ホスト例外)
UnknownHostException は、Java フレームワークで、影響を受けるマシンで Azure Cosmos DB エンドポイントの DNS エントリを解決できないことを意味します。 マシンで DNS エントリを解決できることを確認するか、カスタム DNS 解決ソフトウェア (VPN、プロキシ、カスタム ソリューションなど) がある場合は、エラーで解決できないことが示されている DNS エンドポイントに適切な構成が含まれていることを確認してください。 エラーがいつも同じである場合は、エラーで説明されているエンドポイントに対して curl
コマンドを使用して、マシンの DNS 解決を確認することができます。
サービス停止
[Azure の状態] を確認して、進行中の問題があるかどうかを確認します。
次のステップ
- Azure Cosmos DB Java v4 SDK 使用時の問題を診断してトラブルシューティングする。
- Java v4 SDK のパフォーマンス ガイドラインを確認する。