MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

SocketTimeout avec connexion ouverte dans MongoDB

Après quelques essais, j'ai découvert qu'il s'agissait d'un problème avec l'équilibreur de charge d'Azure.
Après 60 s d'inactivité, il déconnecte toute connexion TCP en attente.

Après avoir creusé davantage, j'ai trouvé cet article de la FAQ sur les diagnostics MongoDB, et j'ai défini le tcp keepalive sur 120 s :

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

et j'ai également défini le socketKeepAlive du MongoClient sur true :

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

Après ces corrections, le problème semble résolu !