Надеюсь, это поможет!

сно документации драйвера MongoDB для Java, пул соединений с базой данных магически обрабатывается объектом Mongo.

Означает ли это, что безопасно создавать экземпляр одноэлементного объекта, который подключается к базе данных MongoDB в сервлете, который будет запускаться при запуске Tomcat и не беспокоиться о настройке пула соединений с базой данных в Tomcat через context.xml?

Это правильный способ думать об этом? Я неправильно понимаю основную концепцию пула соединений Tomcat / базы данных в целом?

 DevilCode24 мар. 2016 г., 16:21
Спасибо, у меня такой же вопрос, но вы сформулировали его гораздо лучше, чем я.

Ответы на вопрос(1)

CFMongoDB проект, и мы используем его, как вы описываете, но в приложении ColdFusion, а не в Java. Идея та же: создается один объект, и мы используем его повторно, и этот объект поддерживает одно соединение с сервером Mongo.

Вы можете создать один экземпляр Java Mongo, и он будет поддерживать внутренний пул соединений (размер по умолчанию 10) - для вас он скрыт, и вам не нужно об этом беспокоиться. Документы Mongo Java рекомендуют это:

http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency

Сейчас он запущен в производство, проблем не было. Несколько потоков веб-запросов используют один и тот же экземпляр Mongo, и Mongo достаточно быстр, чтобы справиться с этим, используя свой внутренний пул (мы ведем журналирование, поэтому он может писать очень быстро!).

Стоит не забыть позвонитьclose() в любых случаях, с которыми вы закончили - это прекратит использовать соединения на сервере Mongo с течением времени:

http://api.mongodb.org/java/2.5-pre-/com/mongodb/Mongo.html#close()

Итак, в общем, не беспокойтесь о настройке Tomcat.

Надеюсь, это поможет!

Ваш ответ на вопрос