MongoDB: Как часто вы должны открывать и закрывать базу данных? Зачем? - PullRequest
16 голосов
/ 10 сентября 2011

Для каждого запроса я открывал базу данных, запрашивал, закрывал базу данных.

Я время от времени сталкиваюсь с проблемой connection already opened.

Я закончил тем, что изменил конфигурацию, чтобы просто открыть Монго и оставить его открытым.

Каковы недостатки этого метода?

Спасибо!

(примечание: использование node.js)

Ответы [ 3 ]

3 голосов
/ 11 сентября 2011

Я выгляжу так, как будто вы должны открыть соединение один раз и продолжать его повторное использование, по крайней мере, с помощью node-native-driver.Комментарии на эту тему от разработчика драйвера найдены здесь: https://github.com/mongodb/node-mongodb-native/issues/84

2 голосов
/ 11 сентября 2011

Ответ здесь будет зависеть от версии, которую вы используете.Метод, описанный на главной странице github , включает в себя открытие / закрытие соединения «по мере необходимости».

В настоящее время ведется работа по правильной поддержке наборов реплик и обеспечению некоторого базового пула соединений.Фактически, вчера была регистрация для очистки очистки пулированных соединений при ошибке .

Учитывая, что документы предоставляют этот метод открытия / закрытия, это, вероятно, способидти.Это то, что я сейчас делаю в своих приложениях.Что касается проблемы, которую вы видите, это может быть просто ошибка.Опять же, версия на драйвере <1.0, и вчера была проверка на что-то похожее на то, что вы испытываете, поэтому могут быть некоторые проблемы. </p>

Редактировать :Я должен добавить, что Кристиан - отличный парень, который делает эту работу в свое собственное время при ограниченной поддержке команды 10gen.Создание такого драйвера - это много и много работы, поэтому, если вы сталкиваетесь с ошибками, такими как повторное использование открытых соединений, обязательно сообщите об ошибке и / или внесите исправление.

0 голосов
/ 11 сентября 2011

Я не могу говорить о драйвере node.js, но драйвер Java был разработан для использования таким образом: http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency - он обрабатывает соединения внутри.Может быть, драйвер node.js тоже.Возможно, стоит написать разработчикам драйвера, чтобы спросить?

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