Hat MongoDB Reconnect Probleme oder mache ich es falsch?

Ich verwende NodeJS und eine MongoDB - und ich habe einige Verbindungsprobleme.

Nun, eigentlich "wake" Probleme! Es verbindet sich perfekt - ist super schnell und ich bin im Allgemeinen mit den Ergebnissen zufrieden.

Mein Problem: Wenn ich die Verbindung für eine Weile nicht benutze (ich sage währenddessen, weil der Zeitrahmen 5+ Minuten variiert), scheint es zu stocken. Ich bekomme keine Trennungsereignisse ausgelöst - es hängt nur.

Schließlich erhalte ich eine Antwort wie Fehler: Verbindung zu [* .mongolab.com fehlgeschlagen: *] - (* = maskierte Werte)

Ein schneller Neustart der App und die Verbindung ist wieder großartig. Wenn ich die App nicht neu starte, kann ich sie manchmal aktualisieren und die Verbindung wird problemlos wiederhergestellt.

Aus diesem Grund denke ich, dass es sich um "Wake" -Probleme handelt.

Grobe Gliederung des Codes:

Ich habe den Code nicht eingefügt - ich glaube nicht, dass er benötigt wird. Es funktioniert (abgesehen vom Verbindungsabbruch)

Dinge zu beachten: Es gibt nur einen "connect" - ich schließe ihn nie. Ich öffne nie wieder.

Ich benutze Mungo, Socketio.

/* constants */

var mongoConnect = 'myworkingconnectionstring-includingDBname';


/* includes */

/* settings */

/* Schema */

var db = mongoose.connect(mongoConnect);

    /* Socketio */

io.configure(function (){
    io.set('authorization', function (handshakeData, callback) {

    });
});

io.sockets.on('connection', function (socket) {

});//sockets

io.sockets.on('disconnect', function(socket) {
    console.log('socket disconnection')
});

/* The Routing */

app.post('/login', function(req, res){  

});

app.get('/invited', function(req, res){

});

app.get('/', function(req, res){

});

app.get('/logout', function(req, res){

});

app.get('/error', function(req, res){

});

server.listen(port);
console.log('Listening on port '+port);

db.connection.on('error', function(err) {
    console.log("DB connection Error: "+err);
});
db.connection.on('open', function() {
    console.log("DB connected");
});
db.connection.on('close', function(str) {
    console.log("DB disconnected: "+str);
});

Ich habe hier verschiedene Konfigurationen ausprobiert, wie das ständige Öffnen und Schließen - ich glaube jedoch, dass es allgemein üblich ist, so zu verfahren, wie ich es mit einer offenen Konfiguration tue, die das Los umschließt. ??

Ich habe einen Verbindungstester ausprobiert, der ständig den Status der Verbindung überprüft ... obwohl dies zu sagen scheint, dass alles in Ordnung ist - das Problem tritt immer noch auf.

Ich hatte dieses Problem vom ersten Tag an. Ich habe die MongoDB immer mit MongoLab gehostet. Das Problem scheint auf localhost noch schlimmer zu sein. Aber ich habe immer noch das Problem auf Azure und jetzt nodejit.su.

Wie überall muss es ich, MongoDB oder Mongolab sein.

Ich habe übrigens auch ähnliche Erfahrungen mit dem PHP-Treiber gemacht. (um zu bestätigen, dass dies auf nodejs ist)

Es wäre großartig, wenn Sie uns helfen könnten - auch wenn jemand nur sagt, dass dies normal ist.

Danke im Voraus

rauben

Antworten auf die Frage(6)

Ihre Antwort auf die Frage