2011-01-10 73 views
9

MongoDB的Java驱动程序的数据库连接池据MongoDB的Java驱动程序文件,数据库连接池奇迹般地由蒙戈对象处理。和Tomcat

这是否意味着创建一个单例对象的实例是安全的,该对象连接到Tomcat启动时将运行的servlet中的MongoDB数据库,而不必担心通过context.xml在Tomcat中配置数据库连接池?

这是考虑它的正确方法?我是否误解了Tomcat /数据库连接池的一些基本概念?

+0

感谢anaon我有同样的问题,但你的措辞比我要好得多。 – DevilCode 2016-03-24 15:21:03

回答

9

我们已经使用通过CFMongoDB项目的Java驱动程序,我们使用它作为你的描述,但在ColdFusion应用程序而不是在Java中。然而,同样的想法是:创建一个对象并重用它,并且该对象维护与Mongo服务器的一个连接。

您可以创建一个蒙戈Java实例,它会保持连接的内部游泳池(10默认大小) - 给你它是隐藏的,你不用担心。蒙戈Java文档建议是:

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

我们有它在生产运行现在没有出现过问题。多个web请求线程使用相同的Mongo实例,Mongo足够快速地使用它的内部池来处理这个问题(我们正在进行日志记录,因此它可以写得非常快!)。

这是值得记住调用close()对你完成任何实例 - 这将停止连接得到随着时间的推移使用了蒙戈服务器上:

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

因此,在总结,唐不用担心配置Tomcat。

希望有帮助!