2016-05-10 11 views
0

私は起動時に再接続オプションでmongoに接続しており、アプリケーション全体に作成済みのdbを使用しています。失敗したmongoサーバへの再接続

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

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

mongoサーバーを再起動すると、ドライバは正常に再接続します。サーバーを停止して30秒後に起動すると、すべての操作でMongoErrorの「トポロジが破壊されました」というメッセージが表示されます。この30秒は私には思われるがnumberOfRetries = 5のデフォルト値であり、与えられたオプションは効果がない。私は何か間違っているのですか?どのように私は長い間、再接続を管理できますか?

+0

は、あなたが私の答えから解決策を試してみましたか? –

+0

はい、何も変更せずに試しました:( – smirnov

答えて

0

this answerによると、このエラーを修正するために、あなたはオプションで接続タイムアウトを増やす必要がありますが:

var options = { 
    "server": { 
    "auto_reconnect": true, 
    "poolSize": 10, 
    "socketOptions": { 
     "keepAlive": 1, 
     "connectTimeoutMS": 30000 // increased connection timeout 
    } 
    }, 
    "db": { 
    "numberOfRetries": 60, 
    "retryMiliSeconds": 5000 
    } 
}; 
関連する問題