当我停止并重新启动我的mongod服务时,为什么会出现应用程序错误

时间:2011-05-14 14:52:47

标签: ruby-on-rails ruby mongodb mongoid sysadmin

如果我在默认端口取消并重新启动我的mongodb,我重新连接正常,没有任何问题。
当我在27018端口上执行此操作时,它似乎在我的bash窗口中重新连接,并在重新启动结束时收到此声明:

initandlisten] waiting for connections on port 27018
websvr] web admin interface listening on port 28018

但是当我运行我的应用程序时,我会收到类似

的错误
Operation failed with the following exception: connection closed

Operation failed with the following exception: Broken pipe - send(2)
:10:in `synchronize'

1 个答案:

答案 0 :(得分:2)

Mongoid创建与MongoDB进程的连接,然后出于性能原因保留它。如果服务器出现故障,则服务器端的连接中断,客户端无法再发送请求。

Mongoid configuration中,您可以将连接配置为可重试,以便即使失败也会重试失败的连接。

max_retries_on_connection_failure [2]

方括号中的数字是在引发异常之前重试的次数(每次尝试之间有半秒差距)。