2016-05-10 6 views
0

Ich verbinde mich mit dem Mongo mit Reconnect-Optionen beim Start und mit erstellten DB über die gesamte App.Erneute Verbindung mit dem ausgefallenen Mongo-Server

var options = { 
    "server": { 
     "auto_reconnect": true, 
     "poolSize": 10, 
     "socketOptions": { 
     "keepAlive": 1 
     } 
    }, 
    "db": { 
     "numberOfRetries": 60, 
     "retryMiliSeconds": 5000 
    } 
    }; 

MongoClient.connect(dbName, options).then(useDb).catch(errorHandler) 

Wenn ich Mongo-Server neu starten, Treiber erneut verbinden erfolgreich. Wenn ich den Server stoppe und nach 30 Sekunden starte, bekomme ich MongoError "Topologie wurde zerstört" bei jeder Operation. Diese 30 Sekunden scheint mir ein Standardwert für NumberOfRetries = 5 und meine angegebene Option hat keine Wirkung. Mache ich etwas falsch? Wie kann ich die Wiederverbindung für eine lange Zeit verwalten?

+0

Haben Sie versucht, die Lösung von meiner Antwort? –

+0

Ja, ich habe es versucht, ohne Änderungen :( – smirnov

Antwort

0

Nach this answer, um diesen Fehler zu beheben, sollten Sie Verbindungs-Timeout in den Optionen erhöhen:

var options = { 
    "server": { 
    "auto_reconnect": true, 
    "poolSize": 10, 
    "socketOptions": { 
     "keepAlive": 1, 
     "connectTimeoutMS": 30000 // increased connection timeout 
    } 
    }, 
    "db": { 
    "numberOfRetries": 60, 
    "retryMiliSeconds": 5000 
    } 
}; 
Verwandte Themen