11

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

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

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

4

1 回答 1

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。

希望有帮助!

于 2011-01-10T19:08:34.797 回答