2014-12-12 6 views
2

Я новичок в mongodb. И я ма, используя mongodb 2.6.x. Я пытаюсь подключиться к mongodb с помощью версии java driver версии 2.12.x и для соединения с mongodb я использую MongoClient. Каждый раз, когда я делаю какую-либо операцию, я получаю сообщение в части администратора mongodb, например, количество соединений открыто, и каждый раз, когда я выполняю некоторую операцию crud в mongodb, число соединений увеличивается. Итак, моя забота заключается в том, что я должен закрыть соединение или нет вручную. Если я должен закрыть соединение вручную, тогда какой процесс. Поскольку MongoClient, из которого я получаю объект Db, не дает никакого способа закрыть соединение.Мне нужно закрыть соединение mongodb?

Код я написал, чтобы получить соединение, как это:

new MongoClient("localhost", 27017).getDB("test"); 

и здесь я получаю объект DB. Я пытаюсь сделать это с помощью своего веб-приложения.

Если у кого есть идеи, пожалуйста, сообщите мне, я должен закрыть соединение mongodb вручную. Если да, то как?

Заранее спасибо.

+1

Справа от документации ', чтобы избавиться от экземпляра, убедитесь, что вы вызываете MongoClient.close() для очистки ресурсов. [mongo doc here] (http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/). Может быть, вам нужно обновить? –

+0

Спасибо, но я упомянул, что я использую mongo-java-driver-2.12.4.jar, и я не получаю никакого метода, например MongoClent.close(). Не могли бы вы сообщить мне более подробно, если я ошибаюсь. Спасибо за ваш повтор. – dsahoo188

+0

Вы пытаетесь позвонить близко к БД или MongoClient? Цепочка метода удобна, но вам нужно сохранить вкладку, по которой метод возвращает то, что refernce. – JVXR

ответ

1

В отличие от традиционных драйверов баз данных, драйвер java mongodb handles the pooling and connection management. Таким образом, вы здесь в безопасности. Однако вы можете захотеть добавить прерывания при закрытии приложения, нажимая на MongoClient, когда вы завершаете приложение.

0

Да, у нас есть возможность сделать наше соединение гибким, когда мы подключаемся к mongodb с помощью java-драйвера. Я использую java-драйвер версии 2.13.x. Где я получил какое-то решение:

MongoClientOptions - это класс, из которого мы можем получить MongoClientOptions.builder(), и мы настраиваем параметры в соответствии с нашим требованием и, наконец, когда мы вызываем MongoClient для получения БД, в конструкторе мы можем передать MongoClientOptions, чтобы сделать наше соединение более гибким и гибким.

код будет выглядеть следующим образом.

MongoClientOptions mongoClientOptions= MongoClientOptions.builder().connectionsPerHost(500) 
.connectTimeout(1000).socketKeepAlive(false).cursorFinalizerEnabled(true).maxConnectionLifeTime(50) 
.writeConcern(WriteConcern.ACKNOWLEDGED).threadsAllowedToBlockForConnectionMultiplier(10).readPreference(ReadPreference.primary()).build(); 


new MongoClient(listOfServer, mongoClientOptions).getDB(); 

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

Смежные вопросы