6

PHPとmongodbを使用してWebサイトを開発しています。PECL-mongoでmongodbにアクセスしましたが、煩わしい思いをしました。時々、このようなエラーが発生します(パスを匿​​名化しました)

Fatal error: Uncaught exception 'MongoCursorException' with message 'couldn't get response header' in
    /PATH/index.php:38 Stack trace: #0 
    /PATH/index.php(38): MongoCursor->rewind() #1 
    /PATH/template.inc(29): get_sidebar() #2 
    /PATH/index.php(13): 
    require_once('PATH/...') #3 {main} thrown in PATH/index.php on line 38

ドキュメントによると、これは次のことを意味します。

ドライバーはデータベースから応答ヘッダーをフェッチできなかったため、あきらめました。データベースがまだ稼働していて、ネットワークが接続されているかどうかを確認して、クエリを再試行してください。

しかし、ループバックを介して自分のマシンでローカルにこれを行っているため、データベースが稼働していることはわかっています。外の世界とのつながりはありません。

単に再試行するだけでうまくいくことがよくあります。これは、PHPのmongo用ドライバーのバグである可能性がありますか?これは「誤コンパイル」の問題である可能性があります(私はソースからコンパイルしましたが、非常に良性のフラグがあり-march=native -O2ます)?

誰かがこれを見たことがありますか?

周りを検索すると、同じエラーが発生しているいくつかの愚かなFacebookゲームへの参照のみが表示されます。

編集:PECLドライバーをバージョン1.1.4にダウングレードしたところ、これまでのところ、問題は解決したようです。したがって、これは単に1.2.xシリーズのバグである可能性があります。誰かがそれに光を当てることができれば、それは素晴らしいことです。

編集:私はここで複雑なことは何もしていません、問題を抱えているコードは文字通り次のようになります:

$m = new Mongo();
$collection = $m->my_db->collection;
$results = $collection->find(array("favorite"=>true))->limit(5);
4

1 に答える 1

1

新しいバージョンのmogodb.dllを入手してこの問題を解決しました。http://www.mongodb.org/display/DOCS/PHP+Language+Centerをご覧ください。

于 2012-04-04T14:08:42.513 に答える