MongoDB Blacklisted Fatal Error

8

Ich habe diesen Fehler ein paar Mal gesehen, und um es zu beheben, starte ich einfach meinen Server neu.

  

Fataler Fehler: Nicht abgefangene Ausnahme 'MongoConnectionException' mit   Nachricht 'Verbindung fehlgeschlagen mit: localhost: 27017: Vorherige Verbindung   Versuche fehlgeschlagen, Server auf der schwarzen Liste "in   /var/www/html/include/config.php:9 Stack-Trace: # 0   /var/www/html/include/config.php(9):   MongoClient- & gt; __ Konstrukt ('mongodb: // local ...') # 1   /var/www/html/classes.php(3): include ('/ var / www / html / i ...') # 2   /var/www/html/myusers.php(8): include ('/ var / www / html / c ...') # 3 {main}   geworfen in /var/www/html/include/config.php in Zeile 9

Ich kann jedoch eine Weile warten, ohne es zu sehen ... Wie kann ich das Problem verhindern?

update: Es passierte wieder und nach einigen Minuten Wartezeit musste ich neu starten, damit die Seite wieder funktioniert

    
jSmith 29.07.2013, 08:04
quelle

3 Antworten

14

Seit den 1.4 Versionen des MongoDB-Treibers für PHP werden wir Server für bis zu einer Minute "auf die schwarze Liste setzen", wenn sie nicht erreichbar sind. Dies ist so, dass wir den Server nicht mit Verbindungen verbinden, die eine Zeitüberschreitung verursachen könnten. Dies wird in erster Linie getan, um sicherzustellen, dass in einer Umgebung mit Replikat-Set weiterhin nur ein anderer der Hosts verwendet werden kann, aber natürlich, wenn Sie nur einen Rechner haben, ist dies ein wenig komplizierter.

Wenn Sie MongoLog verwenden, können Sie sehr leicht erkennen, was unter der Haube passiert:

%Vor%

Dies zeigt alles an, was der Fahrer versucht zu tun. Es wäre interessant, die erste Dump zu sehen, wenn etwas schief geht, und auch für eine Zeit ist es "festgefahren" auf der schwarzen Liste.

Die obige Warnung verschwindet nach 60 Sekunden oder nach dem Neustart Ihrer Webserver-Software (oder PHP-FPM verwenden Sie diese). Wenn Sie der Meinung sind, dass diese Erklärung nicht korrekt ist, senden Sie eine Fehler- / Funktionsanfrage an Ссылка

    
Derick 29.07.2013 12:14
quelle
1

Offensichtlich ist dies ein Problem, das durch einen Fehler im PHP-Treiber von MongoDB verursacht wurde. Überprüfen Sie, ob Sie Version 1.4.0 verwenden, wenn ja, aktualisieren Sie auf eine neuere Version, und der Fehler sollte behoben sein.

    
ciruvan 29.07.2013 08:39
quelle
0

Es scheint, Mongo handle Verbindungen selbst, sollten Sie keine enge Verbindung in Ihrem Code verwenden, wenn Sie persistence Mongo-Verbindung verwenden möchten, habe ich dieses Problem gelöst, indem Sie schließen von Mongo Connection PHP-Skript wie folgt:

VERWENDEN SIE NICHT SCHLIESSEN ..............

%Vor%

Ich hoffe, dass es nützlich ist.

    
Samir Sayyad 06.01.2016 07:32
quelle

Tags und Links