消息'localhost:27017:DBClientBase :: findN:传输错误的未捕获异常'MongoCursorException'

时间:2014-02-08 22:38:24

标签: php mongodb mongodb-query mongodb-php

我已经使用过这个网站多年了,但这是我第一次提出问题,所以如果我做得不对,请随时纠正我。

我们最近遇到了这个问题。 我们有mongos运行一个多个Centos5服务器连接到运行2.4.9的分片replicaset mongodb服务器。

最近我们进行了大量的优化,这增加了我们的吞吐量,虽然此问题曾经发生过很多次,现在变得无法容忍。

在一定数量的成功读取请求之后,php只会出错并反复抛出相同的错误。过了一会儿,它可以恢复。这似乎是基于每个应用服务器,并不会同时影响所有应用服务器。

如果我开始使用mongo并开始一个新的mongos连接,这通常是固定的。 任何关于挖掘方向或指针的想法都表示赞赏,谢谢。 这是我们得到的错误:

Fatal error: Uncaught exception 'MongoCursorException' with message 'localhost:27017: DBClientBase::findN: transport error: internal-mongo-r1-d2-dev.myserver.com:27017 ns: admin.$cmd query: { setShardVersion: "", init: true, configdb: "internal-mongo-c1-dev.myserver.com:27019,internal-mongo-c2-dev.myserver.com:27019,internal-mongo-c3-dev.myserver.com:27019", serverID: ObjectId('52f57ce26ca6543144b077e5'), authoritative: true }' in /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/db/mongo/mongo.inc:185
Stack trace:
#0 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/db/mongo/mongo.inc(185): MongoCursor->rewind()
#1 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/db/data.inc(62): MongoCG::get(Array)
#2 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/data/session/savedsession.inc(30): Data::select('mongo', 'coll_saved_sess...', '_id', 'updated_ss', Array, Array)
#3 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/data/session/savedsession.inc(20): SavedSession::select(Array)
#4 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/access/phpsession.inc(32): SavedSession::get_one('fl0uq0nqjbbo4iq...')
#5 [internal function]: PhpSession::read('fl0uq0nqjbbo4iq...')
#6 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/access/phpsession.inc(16): session_start()
#7 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/allinc.inc(15): PhpSession::start()
#8 /mnt/home/webapps/cgs-sys/releases/20140207163554/p.php(4): include_once('/mnt/home/webap...')
#9 {main}
  thrown in /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/db/mongo/mongo.inc on line 185

2 个答案:

答案 0 :(得分:1)

只是想快速跟进。

挖掘后我们发现mongod服务器上的“打开文件”设置较低,并且已经修复,这些错误消失了。

答案 1 :(得分:0)

有很多关于类似错误的参考文献,一般的建议是首先考虑TCP keepalive。

除了其他注意事项,您可能还需要查看驱动程序连接中的keepalive设置。

一些链接作为开始的地方:

https://www.google.com.au/search?q=mongodb+transport+error

https://groups.google.com/forum/#!topic/mongodb-user/eod_QH9-VIY

https://jira.mongodb.org/browse/SERVER-3446

https://www.google.com.au/search?q=mongodb+transport+error