当我的MongoDB连接空闲几分钟时,下一个请求以错误结束.从mongo命令行客户端,它看起来像这样:
> db.users.find() Sat Jan 12 23:42:35 Socket recv() errno:54 Connection reset by peer 107.22.25.25:47207 Sat Jan 12 23:42:35 SocketException: remote: 107.22.25.25:47207 error: 9001 socket exception [1] server [107.22.25.25:47207] Sat Jan 12 23:42:35 DBClientCursor::init call() Failed Sat Jan 12 23:42:35 query Failed : chowology.users {} to: ds047207.mongolab.com:47207 Error: error doing query: Failed Sat Jan 12 23:42:35 trying reconnect to ds047207.mongolab.com:47207 Sat Jan 12 23:42:35 reconnect ds047207.mongolab.com:47207 ok
我看到针对MongoHQ和MongoLab的沙盒实例的问题.
由于重新连接,下一个请求会很好.这是我的网络应用程序中的一个问题,因为在几分钟不活动后,在Web请求期间会出现此错误.有两件事让我感到惊讶:
> MongoDB连接被定期和频繁地销毁,并且
>驱动程序只是引发异常,而不是在重新连接后自动重试(我使用的是使用mongoose的connect-mongo,而mongoose又使用了node-mongodb-native).
这是其他人的经历吗?怎么应该处理?如果应用程序开发人员将他们的数据库操作包装在一些重试异常处理废话中,我会感到惊讶.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。