Depuis les versions 1.4 du pilote MongoDB pour PHP, nous mettrons sur liste noire les serveurs pendant une minute maximum s'ils ne peuvent pas être contactés. C'est pour ne pas claquer le serveur avec des connexions, qui pourraient expirer. Ceci est principalement fait pour s'assurer que dans un environnement de jeu de répliques, nous pouvons toujours continuer en utilisant simplement un autre des hôtes, mais bien sûr, si vous n'avez qu'une seule machine, c'est un peu plus délicat.
Si vous utilisez MongoLog, vous pouvez très facilement repérer ce qui se passe sous le capot :
MongoLog::setModule(MongoLog::ALL);
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setCallback('print_mongo_log');
function print_mongo_log($a, $b, $c) { echo $c, "\n"; }
Cela affichera tout ce que le pilote essaie de faire. Il serait intéressant de voir le premier vidage de quand quelque chose ne va pas, et aussi pour une fois, il est "bloqué" sur la liste noire.
L'avertissement ci-dessus disparaîtra après 60 secondes ou lors du redémarrage de votre logiciel de serveur Web (ou PHP-FPM si vous l'utilisez). Si vous pensez que cette explication n'est pas correcte, veuillez envoyer une demande de bogue/fonctionnalité à http://jira. mongodb.org/browse/PHP