Compartir a través de


Diagnosticar y solucionar problemas de excepciones de servicio no disponible de Azure Cosmos DB con el SDK de Java v4

SE APLICA A: NoSQL

El SDK para Java v4 no pudo conectarse a Azure Cosmos DB.

Pasos para solucionar problemas

La lista siguiente contiene las causas conocidas y las soluciones para las excepciones de servicio no disponible.

Los puertos necesarios se están bloqueando

Compruebe que todos los puertos necesarios estén habilitados. Si la cuenta se configuró con un punto de conexión privado, será necesario abrir más puertos.

failed to establish connection to {account name}.documents.azure.com/<unresolved>:3044 due to io.netty.channel.ConnectTimeoutException:

Error de inicialización de cliente

La excepción siguiente se produce si el SDK no se puede comunicar con la instancia de Azure Cosmos DB. Por lo general, esta excepción indica que algún protocolo de seguridad, como una regla de firewall, bloquea las solicitudes.

 java.lang.RuntimeException: Client initialization failed. Check if the endpoint is reachable and if your auth token is valid

Para comprobar que el SDK puede comunicarse con la cuenta de Azure Cosmos DB, ejecute el comando siguiente desde la ubicación en que se hospeda la aplicación. Si se produce un error, indica que una regla de firewall u otra característica de seguridad están bloqueando la solicitud. Si no hay error, el SDK debería poder comunicarse con la cuenta de Azure Cosmos DB.

telnet myCosmosDbAccountName.documents.azure.com 443

Problemas de conectividad transitorios en el lado cliente

Las excepciones de servicio no disponible pueden aparecer cuando se producen problemas de conectividad transitorios que provocan tiempos de espera. Normalmente, el seguimiento de la pila relacionado con este escenario contendrá un error ServiceUnavailableException con detalles de diagnóstico. Por ejemplo:

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"}

Para resolverlo, siga los pasos de solución de problemas relativos al tiempo de espera de solicitud.

UnknownHostException

UnknownHostException significa que el marco de Java no puede resolver la entrada DNS para el punto de conexión de Azure Cosmos DB en la máquina afectada. Debe comprobar que la máquina pueda resolver la entrada DNS o, si tiene algún software de resolución DNS personalizado (como VPN o Proxy, o una solución personalizada), asegúrese de que contiene la configuración correcta para el punto de conexión DNS que el error reclama que no se puede resolver. Si el error es constante, puede comprobar la resolución DNS de la máquina mediante un comando curl al punto de conexión descrito en el error.

Interrupción del servicio

Compruebe el estado de Azure para ver si hay un problema continuado.

Pasos siguientes