我有一个MongoDB 2.2 replicaset设置(2个节点),并使用PHP连接到测试,例如
$mongo = new Mongo("mongodb://192.168.1.1:27017,192.168.1.2:27017",
array("replicaSet" => "testrs",
"safe" => TRUE));
$db = $mongo->test;
$collection = $db->dump;
while (true) {
echo "Result: " .
$collection->insert(array( "ts" => time() ));
sleep(10);
}
在执行过程中,当我从主节点stepDown
开始,我发现插入停止工作,但 echo stil给我 1 ,所以没有异常抛出,我的代码上面有任何问题吗?
答案 0 :(得分:0)
正如您可以阅读here,insert
仅在设置safe
选项时才会抛出异常:
如果设置了“safe”选项并且插入,则抛出MongoCursorException 失败。 (版本1.0.1 +)
如果设置了“safe”选项,则抛出MongoCursorTimeoutException 操作需要比MongoCursor :: $ timeout毫秒更长的时间 完成。这不会杀死服务器上的操作,它是一个 客户端超时。
设置safe
选项,您应该能够看到抛出的异常。