使用Tomcat的MongoDB Java驱动程序数据库连接池

时间:2011-01-10 14:10:23

标签: java tomcat mongodb tomcat7

根据MongoDB Java驱动程序文档,Mongo对象可以神奇地处理数据库连接池。

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

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

1 个答案:

答案 0 :(得分:9)

我们一直在通过CFMongoDB项目使用Java驱动程序,我们按照您的描述使用它,但是在ColdFusion应用程序中而不是在Java中。同样的想法:创建了一个对象,我们重用它,该对象维护与Mongo服务器的一个连接。

您可以创建一个Mongo Java实例,它将维护一个内部连接池(默认大小为10) - 对您来说它是隐藏的,您无需担心它。 Mongo Java文档推荐这个:

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

我们现在已经在生产中运行,并且没有任何问题。多个Web请求线程使用相同的Mongo实例,而Mongo使用它的内部池(我们正在进行日志记录以便它可以写得非常快!)来快速处理这个问题。

值得记住在任何已完成的实例上调用close() - 这将阻止连接在Mongo服务器上随着时间的推移而消耗殆尽:

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

总而言之,不要担心配置Tomcat。

希望有所帮助!