MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Erro fatal na lista negra do MongoDB


Desde as versões 1.4 do driver MongoDB para PHP, colocaremos os servidores na "lista negra" por até um minuto se eles não puderem ser contatados. Isso é para que não batamos o servidor com conexões, que podem expirar. Isso é feito principalmente para garantir que em um ambiente de conjunto de réplicas ainda possamos continuar usando apenas outro dos hosts, mas é claro que se você tiver apenas uma máquina, isso é um pouco mais complicado.

Se você usa o MongoLog, pode identificar facilmente o que acontece nos bastidores:
MongoLog::setModule(MongoLog::ALL);
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setCallback('print_mongo_log');
function print_mongo_log($a, $b, $c) { echo $c, "\n"; }

Isso exibirá tudo o que o driver está tentando fazer. Seria interessante ver o primeiro despejo de quando algo dá errado, e também por uma vez está "preso" na lista negra.

O aviso acima desaparecerá após 60 segundos ou após a reinicialização do software do servidor web (ou PHP-FPM, se você o usar). Se você acha que esta explicação não está correta, envie uma solicitação de bug/recurso em http://jira. mongodb.org/browse/PHP