PHP用のMongoDBドライバーの1.4バージョン以降、サーバーに接続できない場合は、サーバーを最大1分間「ブラックリストに登録」します。これは、タイムアウトする可能性のある接続でサーバーを非難しないようにするためです。これは主に、レプリカセット環境で別のホストを使用するだけで続行できるようにするために行われますが、もちろん、マシンが1台しかない場合は、少し注意が必要です。
MongoLogを使用すると、内部で何が起こっているかを非常に簡単に見つけることができます。
MongoLog::setModule(MongoLog::ALL);
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setCallback('print_mongo_log');
function print_mongo_log($a, $b, $c) { echo $c, "\n"; }
これにより、ドライバーが実行しようとしているすべてのことが表示されます。 最初を見るのは面白いでしょう 何かがうまくいかなかったときのダンプ、そしてまた一度はブラックリストに「スタック」している。
上記の警告は、60秒後、またはWebサーバーソフトウェアの再起動時に消えます(またはPHP-FPMを使用しています)。この説明が正しくないと思われる場合は、 http://jiraでバグ/機能のリクエストを提出してください。 mongodb.org/browse/PHP