sql >> Base de Datos >  >> NoSQL >> MongoDB

SocketTimeout con conexión abierta en MongoDB

Después de algunos intentos, descubrí que era un problema con el Load Balancer de Azure.
Después de 60 segundos de inactividad, desconectará cualquier conexión TCP pendiente.

Después de investigar más, encontré esta publicación de preguntas frecuentes sobre diagnósticos de MongoDB, y configuré el tcp keepalive en 120 s:

sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>

y también configuré el socketKeepAlive de MongoClient en verdadero:

MongoClientOptions.Builder options = MongoClientOptions.builder();
options.socketKeepAlive(true);
mongoClient = new MongoClient(mongoAddress, options.build());

¡Después de estas correcciones, el problema parece haber desaparecido!