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

Exception de délai d'expiration du socket dans Mongo

Ces temps morts se sont-ils produits après des périodes d'inactivité ? Il est probable que votre pool de connexions soit devenu obsolète après être resté inactif pendant trop longtemps.

Si oui, il y a deux façons de procéder :

  1. Attrapez les exceptions de délai d'attente du socket et votre demande immédiate devrait pouvoir accéder à un nouveau pool de connexions. (c'est le cas si l'option de reconnexion automatique dans votre objet de connexion est laissée sur true, ce qui est la valeur par défaut.)

  2. Utilisez un keep-alive personnalisé pour envoyer régulièrement un ping au serveur mongod en utilisant le même pool de connexions, afin que le pool reste à jour.

L'option 1 est facile à mettre en œuvre, mais le délai d'attente par défaut du socket est d'environ 30 secondes, ce qui est plutôt excessif. Vous pouvez modifier ce paramètre selon vos besoins.

L'option 2 est un peu un hack, impliquant le threading.