Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

Solucionar problemas de tempo limite de seleção do servidor

Os aplicativos podem encontrar erros de tempo limite de seleção do servidor ao tentar se conectar a um sistema do MongoDB . Esse erro indica que o driver do cliente não pode selecionar um servidor adequado dentro do período de tempo limite configurado.

Os tempos limite de seleção do servidor geralmente ocorrem devido a problemas de conectividade de rede, restrições de acesso IP, falhas de resolução DNS SRV ou problemas de configuração TLS.

Esta página descreve as causas comuns de tempos limite de seleção do servidor e fornece etapas para diagnosticá-las e resolvê-las. Se o problema persistir após completar as etapas abaixo, entre em contato com o Suporte técnico da.

Para verificar se seu aplicação está encontrando um tempo limite de seleção de servidor , revise a mensagem de erro do cliente . Exemplos comuns incluem:

  • MongoTimeoutError: Server selection timed out after 30000 ms

  • MongoServerSelectionError: connection timed out

  • MongoServerSelectionError: getaddrinfo ENOTFOUND

  • No suitable servers found (`serverSelectionTryOnce` set): [Failed to resolve '<my-database-host>]

  • Em sistemas do Atlas , confirme que o estado do cluster é Active na página Clusters da UI do Atlas com o indicador de status de ponto verde.

  • Em implantações autogerenciadas, verifique se o processo do mongod está executando e escutando na porta esperada.

Ative as mensagens de registro em seu servidor ou driver para confirmar que o cliente está tentando repetidamente a descoberta do servidor até que o tempo limite expire.

Os registros do cliente podem mostrar tentativas repetidas de descobrir a topologia do cluster , seguidas por um tempo limite. As mensagens podem fazer referência a:

  • Falhas de resolução de DNS.

  • Erros de handshake TLS.

  • Tentativas de conexão que não são concluídas.

Se os registros do servidor não mostrarem nenhuma tentativa de conexão de entrada quando você executar o getLog comando ou no destino de registro configurado, isso normalmente indica um problema de conectividade de rede.

As seções a seguir descrevem causas comuns de tempos limite de seleção de servidor e como resolvê-las.

Se o cliente não puder estabelecer uma conexão TCP com nenhum host no sistema, a seleção do servidor falhará.

Para restaurar a conectividade:

  1. Verifique se o tráfego de saída do host do cliente é permitido na porta TCP 27017 (ou na porta personalizada configurada).

  2. Verifique se há restrições nas regras de firewall , grupos de segurança e ACLs de rede.

  3. Certifique-se de que nenhum VPN, proxy ou firewall local esteja interceptando a conexão.

  4. Tente conectar novamente depois de fazer alterações.

Se o cluster estiver disponível, mas não receber conexões de entrada:

  1. Na interface do usuário do Atlas , navegue até Acesso à Rede.

  2. Verifique se o endereço IP público do cliente está incluído na lista de acesso IP

  3. Se necessário para testes, permita temporariamente o acesso de 0.0.0.0/0.

  4. Salve as alterações e aguarde a aplicação da configuração.

  5. Tente novamente a conexão.

Para obter mais informações sobre listas de acesso IP, consulte Configurar entradas da lista de acesso IP.

Se o cliente relatar erros como ENOTFOUND ou falhar durante a pesquisa de SRV (Service), o ambiente pode não conseguir resolver os registros DNS SRV.

Siga estas etapas do host do cliente :

  1. Identifique o nome do host na string de conexão:

    mongodb+srv://<cluster-name>.mongodb.net
  2. Execute uma pesquisa de DNS SRV:

    nslookup -type=SRV _mongodb._tcp.<cluster-name>.mongodb.net
  3. Verifique se o comando retorna um ou mais registros SRV apontando para hosts MongoDB .

  4. Se nenhum registro for retornado:

    • Confirme que o nome do host está correto.

    • Verifique se o seu provedor de DNS suporta registros SRV.

    • Verifique se as queries de DNS de saída não estão bloqueadas.

Se os registros SRV não puderem ser resolvidos, você precisará recuperar a string de conexão padrão (não SRV) da atualização do aplicação para usar:

mongodb://host1,host2,host3/?replicaSet=<name>

Tente novamente a conexão.

Para saber mais sobre connection strings, acesse Connection strings.

Se a saída de erro fizer referência a falhas de handshake de TLS ou SSL, você poderá seguir as etapas a seguir para resolver problemas comuns de configuração do TLS:

  • Verifique se o driver do cliente é compatível com TLS 1.2 ou posterior.

  • Verifique se os certificados raiz do sistema estão atualizados.

  • Para implementações autogerenciadas:

    • Confirme que o nome de host do certificado corresponde à string de conexão.

    • Verifique se a cadeia completa de certificados está disponível.

Depois de concluir estas etapas, tente novamente a conexão.

Para saber mais sobre TLS/SSL e saber como configurar suas conexões TLS/SSL, consulte TLS/SSL (Criptografia de transporte).

Depois de resolver o problema subjacente:

  • O cliente estabelece uma conexão sem atingir o tempo limite.

  • Os registros do aplicativo indicam uma seleção bem-sucedida do servidor .

  • As métricas do Atlas (se aplicável) mostram conexões ativas.

  • Os registros do servidor registram conexões de cliente recebidas.

Se o problema persistir, colete o seguinte antes de entrar em contato com o Suporte técnico.:

  • Mensagens de erro completas do cliente e rastreamentos de pilha

  • string de conexão do MongoDB (credencial removida)

  • Nome e versão do driver

  • Versão do servidor MongoDB

  • Saída de pesquisa DNS SRV

  • Resultados do teste de conectividade de rede

  • Registros relevantes do MongoDB

Voltar

Tempestades de conexão

Nesta página