我一直在寻找 mongodb 中意外关闭的连接,但只能从希望关闭连接的人那里找到问题。
我正在使用 node-mongodb-native 连接到数据库,但我不断收到看似随机的“错误:连接关闭”消息。如果我手动重试请求(浏览器刷新),则请求有效。
知道是什么原因造成的吗?是否有一些简单的选项会有所帮助?
我正在使用以下方法获取我的数据库句柄:
MongoClient.connect(connection_string, { auto_reconnect: true }, function (err, db) {
//server code/routes in here
}
我正在浏览https://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/connection/server.js但我意识到我对连接池的一般管理方式的有限理解让我感到困惑向上。我的印象是他们会在我的服务器的整个生命周期内保持打开状态。有人可以帮忙吗?
编辑:阅读 mjhm 的评论后,我开始更深入地研究 TCP keep alive。偶然发现一些网站暗示这可能是 Azure 所做的(这个问题现在被错误分类了!)。显然,Azure 负载均衡器会在活动 1 分钟后终止连接。我正在使用 Azure 网站,因此它可能适用也可能不适用,但我认为这种洞察力足以开始新的调查。更多细节在这里http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/12/windows-azure-load-balancer-timeout-details.aspx