A partire dalle versioni 1.4 del driver MongoDB per PHP, inseriremo nella blacklist i server per un massimo di un minuto se non possono essere contattati. Questo è così che non sbattiamo il server con le connessioni, che potrebbero andare in timeout. Questo viene fatto principalmente per assicurarci che in un ambiente di set di repliche possiamo ancora procedere usando semplicemente un altro host, ma ovviamente se hai solo una macchina, questo è un po' più complicato.
Se usi MongoLog, puoi facilmente individuare cosa succede sotto il cofano:
MongoLog::setModule(MongoLog::ALL);
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setCallback('print_mongo_log');
function print_mongo_log($a, $b, $c) { echo $c, "\n"; }
Questo mostrerà tutto ciò che il driver sta cercando di fare. Sarebbe interessante vedere il primo dump di quando qualcosa va storto, e anche per una volta è "bloccato" nella lista nera.
L'avviso di cui sopra scomparirà dopo 60 secondi o al riavvio del software del server Web (o PHP-FPM se lo usi). Se ritieni che questa spiegazione non sia corretta, invia una richiesta di bug/funzionalità all'indirizzo http://jira. mongodb.org/browse/PHP