我在启动时使用重新连接选项连接到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)
根据this answer,为了解决此错误,您应该在选项中增加连接超时:
var options = {
"server": {
"auto_reconnect": true,
"poolSize": 10,
"socketOptions": {
"keepAlive": 1,
"connectTimeoutMS": 30000 // increased connection timeout
}
},
"db": {
"numberOfRetries": 60,
"retryMiliSeconds": 5000
}
};