MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

SocketTimeout bei geöffneter Verbindung in MongoDB

Nach einigen Versuchen habe ich herausgefunden, dass es ein Problem mit dem Load Balancer von Azure war.
Nach 60 Sekunden Inaktivität wird jede ausstehende TCP-Verbindung getrennt.

Nach weiterem Graben habe ich diesen Beitrag der MongoDB-Diagnose-FAQ gefunden und das TCP-Keepalive auf 120s gesetzt:

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

und ich habe auch socketKeepAlive des MongoClient auf true gesetzt:

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

Nach diesen Korrekturen scheint das Problem behoben zu sein!