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.
Verificações de pré-requisitos
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 msMongoServerSelectionError: connection timed outMongoServerSelectionError: getaddrinfo ENOTFOUNDNo suitable servers found (`serverSelectionTryOnce` set): [Failed to resolve '<my-database-host>]
Verificar a disponibilidade do sistema
Em sistemas do Atlas , confirme que o estado do cluster é
Activena página Clusters da UI do Atlas com o indicador de status de ponto verde.Em implantações autogerenciadas, verifique se o processo do
mongodestá executando e escutando na porta esperada.
Verifique as mensagens de registro
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.
Registros de clientes
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.
Registros do servidor (autogerenciados)
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.
Problemas e Resoluções Comuns
As seções a seguir descrevem causas comuns de tempos limite de seleção de servidor e como resolvê-las.
Rede local ou firewall bloqueando conexões
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:
Verifique se o tráfego de saída do host do cliente é permitido na porta TCP
27017(ou na porta personalizada configurada).Verifique se há restrições nas regras de firewall , grupos de segurança e ACLs de rede.
Certifique-se de que nenhum VPN, proxy ou firewall local esteja interceptando a conexão.
Tente conectar novamente depois de fazer alterações.
Endereço IP do cliente não permitido (Atlas)
Se o cluster estiver disponível, mas não receber conexões de entrada:
Na interface do usuário do Atlas , navegue até Acesso à Rede.
Verifique se o endereço IP público do cliente está incluído na lista de acesso IP
Se necessário para testes, permita temporariamente o acesso de
0.0.0.0/0.Salve as alterações e aguarde a aplicação da configuração.
Tente novamente a conexão.
Para obter mais informações sobre listas de acesso IP, consulte Configurar entradas da lista de acesso IP.
Falha na resolução de DNS SRV
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.
Verificar resolução DNS SRV
Siga estas etapas do host do cliente :
Identifique o nome do host na string de conexão:
mongodb+srv://<cluster-name>.mongodb.net Execute uma pesquisa de DNS SRV:
nslookup -type=SRV _mongodb._tcp.<cluster-name>.mongodb.net Verifique se o comando retorna um ou mais registros SRV apontando para hosts MongoDB .
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.
Contorne as limitações do SRV
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.
Problemas de configuração do TLS
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).
Verificar resolução
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.
Diagnósticos a serem coletados para mais suporte
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