0

MongoDB 2.2 レプリカセットのセットアップ (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が返されたため、例外はスローされませんでした。上記のコードに何か問題はありますか?

4

1 に答える 1

0

ここで読むことができるように、オプションが設定されinsertている場合にのみ例外をスローします。safe

「安全な」オプションが設定されていて挿入が失敗した場合、MongoCursorException をスローします。(バージョン 1.0.1+)

「安全な」オプションが設定されていて、操作が完了するまでに MongoCursor::$timeout ミリ秒よりも長い時間がかかる場合、MongoCursorTimeoutException をスローします。これはサーバー上の操作を強制終了するのではなく、クライアント側のタイムアウトです。

オプションを設定safeすると、スローされた例外を確認できるはずです。

于 2012-09-06T05:58:36.203 に答える