Las aplicaciones pueden experimentar errores de tiempo de espera al intentar conectarse a una implementación de MongoDB. Este error indica que el controlador del cliente no puede seleccionar un servidor adecuado dentro del período de tiempo de espera configurado.
Los tiempos de espera en la selección del servidor suelen producirse debido a problemas de conectividad de red, restricciones de acceso IP, fallos en la resolución de DNS SRV o problemas de configuración de TLS.
Esta página describe las causas comunes de los tiempos de espera en la selección del servidor y proporciona pasos para diagnosticarlos y resolverlos. Si el problema persiste después de completar los pasos a continuación, póngase en contacto con nosotros. Apoyo técnico.
Comprobaciones de requisitos previos
Para verificar que su aplicación está experimentando un tiempo de espera agotado por selección de servidor, revise el mensaje de error del cliente. Algunos ejemplos comunes incluyen:
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 disponibilidad de implementación
En las implementaciones de Atlas, confirme que el estado del clúster sea
Activeen la página Clústeres de la interfaz de usuario de Atlas con el indicador de estado de punto verde.En implementaciones autogestionadas, verifique que el proceso
mongodse esté ejecutando y escuchando en el puerto esperado.
Revisar los mensajes de registro
Habilite los mensajes de registro en su servidor o controlador para confirmar que el cliente está intentando repetidamente descubrir el servidor hasta que expire el tiempo de espera.
Registros de clientes
Los registros del cliente pueden mostrar intentos repetidos de descubrir la topología del clúster, seguidos de un tiempo de espera agotado. Los mensajes pueden hacer referencia a:
Fallos en la resolución de DNS.
Errores en el protocolo de enlace TLS.
Intentos de conexión que no se completan.
Registros del servidor (autogestionados)
Si los registros del servidor no muestran intentos de conexión entrantes cuando ejecuta el getLog comando o en el destino de registro configurado, esto normalmente indica un problema de conectividad de red.
Problemas comunes y sus soluciones
Las siguientes secciones describen las causas comunes de los tiempos de espera agotados en la selección del servidor y cómo solucionarlos.
La red local o el cortafuegos están bloqueando las conexiones.
Si el cliente no puede establecer una conexión TCP con ningún host de la implementación, la selección del servidor fallará.
Para restablecer la conectividad:
Verifique que el tráfico saliente del host cliente esté permitido en el puerto TCP
27017(o en el puerto personalizado configurado).Verifique las reglas del firewall, los grupos de seguridad y las ACL de red para detectar restricciones.
Asegúrese de que ninguna VPN, proxy o cortafuegos local esté interceptando la conexión.
Vuelva a intentar la conexión después de realizar los cambios.
Dirección IP del cliente no permitida (Atlas)
Si el clúster está disponible pero no recibe conexiones entrantes:
En la interfaz de usuario de Atlas, vaya a Acceso a la red.
Verifique que la dirección IP pública del cliente esté incluida en la lista de acceso IP.
Si es necesario para realizar pruebas, permita temporalmente el acceso desde
0.0.0.0/0.Guarda los cambios y espera a que se aplique la configuración.
Vuelve a intentar la conexión.
Para obtener más información sobre las listas de acceso IP, consulte Configurar entradas de la lista de control de acceso IP.
Fallo en la resolución de DNS SRV
Si el cliente informa errores como ENOTFOUND o falla durante la búsqueda SRV (Servicio), es posible que el entorno no pueda resolver los registros DNS SRV.
Verificar la resolución DNS SRV
Siga estos pasos desde el host del cliente:
Identifique el nombre de host a partir de la cadena de conexión:
mongodb+srv://<cluster-name>.mongodb.net Realiza una consulta DNS SRV:
nslookup -type=SRV _mongodb._tcp.<cluster-name>.mongodb.net Verifique que el comando devuelva uno o más registros SRV que apunten a hosts de MongoDB.
Si no se devuelve ningún registro:
Confirme que el nombre de host sea correcto.
Comprueba si tu proveedor de DNS admite registros SRV.
Verifique que las consultas DNS salientes no estén bloqueadas.
Soluciones alternativas a las limitaciones de SRV
Si no se pueden resolver los registros SRV, debe recuperar la cadena de conexión estándar (no SRV) de la actualización de implementación de la aplicación para usar:
mongodb://host1,host2,host3/?replicaSet=<name>
Vuelve a intentar la conexión.
Para obtener más información sobre las cadenas de conexión, visite Cadenas de conexión.
Problemas de configuración de TLS
Si el mensaje de error hace referencia a fallos en el protocolo de enlace TLS o SSL, puede seguir los siguientes pasos para resolver problemas comunes de configuración de TLS:
Verifique que el controlador del cliente sea compatible con TLS 1.2 o posterior.
Asegúrese de que los certificados raíz del sistema estén actualizados.
Para implementaciones autogestionadas:
Confirme que el nombre de host del certificado coincide con la cadena de conexión.
Verifique que la cadena completa de certificados esté disponible.
Una vez completados estos pasos, intente conectarse de nuevo.
Para obtener más información sobre TLS/SSL y aprender a configurar sus conexiones TLS/SSL, consulte TLS/SSL (Cifrado de transporte).
Verificar resolución
Tras resolver el problema subyacente:
El cliente establece una conexión sin que se agote el tiempo de espera.
Los registros de la aplicación indican que la selección del servidor se realizó correctamente.
Las métricas de Atlas (si corresponde) muestran las conexiones activas.
Los registros del servidor registran las conexiones entrantes de los clientes.
Diagnósticos para recopilar para obtener más apoyo
Si el problema persiste, recopile la siguiente información antes de ponerse en contacto con el soporte técnico:
Mensajes de error completos del cliente y rastreos de pila.
Cadena de conexión a MongoDB (credenciales eliminadas)
Nombre y versión del controlador
Versión del servidor MongoDB
Salida de búsqueda DNS SRV
Resultados de la prueba de conectividad de red
Registros relevantes de MongoDB