當我的MongoDB連接空閒幾分鐘時,下一個請求將以錯誤結束。從mongo
命令行客戶端,它看起來像這樣:處理MongoDB從節點斷開/重新連接
> 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的沙箱實例。
由於重新連接,下一個請求通過正常。這是我的網絡應用程序中的一個問題,因爲在幾分鐘不活動之後,在網絡請求期間會出現此錯誤。有跡象表明,讓我感到吃驚兩件事情:
- 這MongoDB的連接,以便定期和經常遭到破壞,
- 駕駛員簡單地提高,而不是自動重新連接重試後的異常(我使用的連接,蒙戈其使用貓鼬,而貓鼬又使用node-mongodb-native)。
這是其他人的經驗嗎?這應該如何處理?如果應用程序開發人員將他們的數據庫操作包裝在一些重試異常處理廢話中,我會感到驚訝。
這可能是有用的:http://stackoverflow.com/questions/14159134/node-mongodb-native- mongoclient意外關閉連接 – mjhm