Diagnosticar e solucionar problemas de exceções indisponíveis do serviço Azure Cosmos DB
APLICA-SE A: NoSQL
O SDK não pôde se conectar ao Azure Cosmos DB. Este cenário pode ser transitório ou permanente dependendo das condições da rede.
É importante certificar-se de que o design do aplicativo está seguindo nosso guia para projetar aplicativos resilientes com SDKs do Azure Cosmos DB para garantir que ele reaja corretamente a diferentes condições de rede. A aplicação deverá ter a política de repetição em vigor para os erros de serviço indisponível.
Ao avaliar o caso de erros de serviço indisponível:
- Qual é o efeito medido em volume de operações afetadas em comparação com as operações bem-sucedidas? Está dentro dos SLAs de serviço?
- A latência/disponibilidade do P99 é afetada?
- As falhas estão a afetar todas as instâncias de aplicação ou apenas um subconjunto? Quando o problema é reduzido a um subconjunto de instâncias,geralmente, trata-se de um problema relacionado com essas instâncias.
Passos de resolução de problemas
A lista a seguir contém causas conhecidas e soluções para exceções de serviço indisponíveis.
Verificar o código de subestado
Em determinadas condições, o erro HTTP 503 Service Unavailable inclui um código de substatus que ajuda a identificar a causa.
Código de substatus | Description |
---|---|
20001 | O erro de serviço indisponível aconteceu porque há problemas de conectividade do lado do cliente (falhas na tentativa de conexão). O cliente tentou recuperar tentando novamente, mas todas as tentativas falharam. |
20002 | O erro de serviço indisponível aconteceu porque há tempos limite do lado do cliente. O cliente tentou recuperar tentando novamente, mas todas as tentativas falharam. |
20003 | O erro de serviço indisponível ocorreu porque existem erros de E/S subjacentes relacionados com o sistema operativo. Veja os detalhes da exceção para o erro de E/S relacionado. |
20004 | O erro de serviço indisponível ocorreu porque a CPU da máquina cliente está sobrecarregada. |
20005 | O erro de serviço indisponível aconteceu porque o pool de threads da máquina cliente está faminto. Verifique qualquer possível bloqueio de chamadas assíncronas em seu código. |
20006 | A ligação entre o serviço e o cliente foi interrompida ou terminada de forma inesperada. |
>= 21001 | Este erro de serviço indisponível ocorreu devido a uma condição de serviço transitória. Verifique as condições na secção acima. Confirme se tem políticas de repetição implementadas. Se o volume destes erros for elevado em comparação com os sucessos, contacte o Suporte do Azure. |
As portas necessárias estão sendo bloqueadas
Verifique se todas as portas necessárias estão ativadas.
Problemas de conectividade transitória do lado do cliente
Exceções de serviço indisponíveis podem surgir quando há problemas transitórios de conectividade que estão causando tempos limite e podem ser repetidas com segurança seguindo as recomendações de design.
Siga as etapas de solução de problemas de tempo limite de solicitação para resolvê-lo.
Falha do serviço
Verifique o status do Azure para ver se há um problema contínuo.
Próximos passos
- Diagnostique e solucione problemas ao usar o SDK .NET do Azure Cosmos DB.
- Diagnostique e solucione problemas ao usar o SDK Java do Azure Cosmos DB.
- Saiba mais sobre as diretrizes de desempenho para .NET.
- Saiba mais sobre as diretrizes de desempenho para Java.