Diagnóstico y solución de problemas de excepciones de servicio no disponible de Azure Cosmos DB
SE APLICA A: NoSQL
El SDK no pudo conectarse a Azure Cosmos DB. Este escenario puede ser transitorio o permanente en función de las condiciones de red.
Es importante asegurarse de que el diseño de la aplicación siga nuestra guía para diseñar aplicaciones resistentes con SDK de Azure Cosmos DB para asegurarse de que reacciona correctamente a diferentes condiciones de red. La aplicación debe tener reintentos en su lugar para errores de servicio no disponibles.
Al evaluar el caso de los errores del servicio no disponible:
- ¿Cuál es el efecto —medido según el volumen de operaciones afectadas— comparado con el de operaciones que sí se realizaron correctamente? ¿Es este valor aplicable a los Acuerdos de Nivel de Servicio?
- ¿Se ve afectada la latencia o disponibilidad de P99?
- ¿Afectan los errores a todas las instancias de la aplicación, o solo a un subconjunto? Si el problema se reduce a un subconjunto de instancias, normalmente se trata de un problema relacionado con ellas.
Pasos para solucionar problemas
La lista siguiente contiene las causas conocidas y las soluciones para las excepciones de servicio no disponible.
Comprobación del código SubStatus
En determinadas condiciones, el error HTTP 503 Servicio no disponible incluye un código de subestado que ayuda a identificar la causa.
Código de subestado | Descripción |
---|---|
20001 | El error de servicio no disponible se produjo porque existen problemas de conectividad de cliente (errores al intentar conectarse). El cliente intentó recuperarse mediante el reintento, pero se produjo un error en todos los reintentos. |
20002 | El error de servicio no disponible se produjo porque existen tiempos de espera de cliente. El cliente intentó recuperarse mediante el reintento, pero se produjo un error en todos los reintentos. |
20003 | El error de servicio no disponible se produjo porque existen errores de E/S subyacentes que están relacionados con el sistema operativo. Consulte los detalles de la excepción para ver el error de E/S que está relacionado. |
20004 | El error de servicio no disponible se produjo porque la CPU de la máquina del cliente está sobrecargada. |
20005 | El error de servicio no disponible se produjo porque el grupo de subprocesos de la máquina del cliente está colapsado. Compruebe cualquier posible bloqueo de llamadas asincrónicas en el código. |
20006 | La conexión entre el servicio y el cliente se interrumpió o finalizó de forma inesperada. |
>= 21001 | Este error de servicio no disponible se produjo debido a una condición de servicio transitoria. Compruebe las condiciones de la sección anterior y confirme si ha implementado directivas de reintento. Si el volumen de estos errores es alto en comparación con las operaciones correctas, póngase en contacto con el soporte técnico de Azure. |
Los puertos necesarios se están bloqueando
Compruebe que todos los puertos necesarios estén habilitados.
Problemas de conectividad transitorios en el lado cliente
Las excepciones de servicio no disponible pueden surgir cuando hay problemas de conectividad transitorios que provocan tiempos de espera y se pueden reintentar de forma segura siguiendo las recomendaciones de diseño.
Para resolverlo, siga los pasos de solución de problemas relativos al tiempo de espera de solicitud.
Interrupción del servicio
Compruebe el estado de Azure para ver si hay un problema continuado.
Pasos siguientes
- Diagnóstico y solución de problemas al utilizar el SDK de Azure Cosmos DB para .NET.
- Diagnóstico y solución de problemas al utilizar el SDK de Azure Cosmos DB para Java.
- Obtenga información sobre las directrices de rendimiento para .NET.
- Obtenga información sobre las directrices de rendimiento para Java.