CakePHP / MongoDB: чтение периодически завершается сбоем - PullRequest
2 голосов
/ 22 февраля 2012

Я пытаюсь использовать MongoDB в Ubuntu 11.10 с CakePHP 1.3, используя драйвер cakephp-mongodb от ichikaway , но я вижу постоянные проблемы с подключением.

Моя модель очень проста.Я пытаюсь подключиться и прочитать

    $this->loadModel('Mongo.Mpoint');
    $data = $this->Mpoint->find('first');

Однако результат не соответствует.Значительное количество времени, которое сервер возвращает

Ошибка 324 (net :: ERR_EMPTY_RESPONSE): сервер закрыл соединение без отправки каких-либо данных.

Однако при обновленииили несколько обновлений в быстрой последовательности в конечном итоге доставят ожидаемые возвращенные данные.Такое ощущение, что сервер собирается в спящий режим и его нужно разбудить, так как повторное нажатие клавиши return не приводит к ошибкам, но это субъективно.Происходит сбой в find, а не в самом соединении.

У меня установлен rockmongo на сервере, который никогда не может соединиться.Также я вижу то же поведение, если указываю соединение на другой сервер (та же версия mongo, но на centos), поэтому я не верю, что проблема связана с самим mongodb.

Я попытался установить постоянное соединение и напрямую установить время ожидания, но все безуспешно.

Мой коллега, у которого также есть копия приложения, работающего непосредственно на сервере Centos, говорит, что он первоначально видел эту проблему, но "она ушла".

Из того, что я вижу, поэтомупроблема, скорее всего, связана со слоем cakePHP, поскольку соединения между различными серверами дают одинаковый результат, а прямое соединение в PHP без проблем, но при диагностике не обнаруживается ничего немедленного использования.Довольно странно видеть полный сбой PHP, когда с сервера не возвращается ничего полезного.Кто-нибудь еще видел это поведение раньше и исправил его?

1 Ответ

2 голосов
/ 25 февраля 2012

Попробуйте обновить php-драйвер Mongodb.У меня была та же проблема, и я только что обновил с 1.2.7 до 1.2.9, и, кажется, она была решена.

Просто для справки я использую

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...