为 JBoss 中的连接池配置 MongoDB 数据源

Posted

技术标签:

【中文标题】为 JBoss 中的连接池配置 MongoDB 数据源【英文标题】:Configure a MongoDB datasource for connection pooling in JBoss 【发布时间】:2016-03-02 12:50:10 【问题描述】:

有人可以通过配置 MongoDB 数据源来帮助我在 Jboss 中实现连接池吗?我已经按照Configuring MongoDB datasource in JBoss 7 的其中一个线程中的步骤进行了操作,但这并不能准确解释我如何实现连接池。我使用的是 Jboss EAP 6.4.0。

【问题讨论】:

blog.mongodb.org/post/94065240033/… 仔细阅读。 我不明白为什么使用 MongoDB JDBC 驱动程序 (unityjdbc.com/mongojdbc/mongo_jdbc.php) 会不同于任何其他 jdbc 驱动程序(mysql、sybase 等) @nnunes10- 到目前为止,我已经尝试了 2 个不同的数据源。一个是这里的 teiid-8.13.1-jdbc.jar (docs.jboss.org/author/display/teiid88final/MongoDB+Data+Sources),第二个是 mongo3.0.2.jar。 Teiid-8.13.1-jdbc.jar 被 jboss 管理控制台识别为合法驱动程序,但给了我这个(Caused by: javax.resource.ResourceException: Wrong driver class [class org.teiid.jdbc.TeiidDriver] for this connection运行我的应用程序时的 URL [jdbc:mongo://10.174.124.26:27017/bli])。第二个 jar 未被识别为数据源。我也找到了这个统一驱动程序,但它不是免费的。 @MarkusWMahlberg-谢谢你的链接。尽管需要您对文档的这一部分提出建议:- MongoClient 实际上是连接池,因此对于每个新的 MongoClient,您都在打开一个新池。使用单个 MongoClient(并且可以选择配置其设置)将允许驱动程序正确管理您与服务器的连接。这是否意味着我真的不需要在服务器级别担心池?跨度> 【参考方案1】:

首先,您必须在 jboss 服务器中定义您的数据源。 在这种情况下,您必须为 MongoDB 设置驱动程序。请参阅documentation。

然后你只需要在你的<datasource> 定义中添加元素<pool>

<pool>
   <min-pool-size>1</min-pool-size>
   <max-pool-size>2</max-pool-size>
</pool>

【讨论】:

以上是关于为 JBoss 中的连接池配置 MongoDB 数据源的主要内容,如果未能解决你的问题,请参考以下文章

java操作mongodb(连接池)(转)

项目经验——jboss 配置数据库连接池

JBoss 数据库连接池

jboss/wildfly 中的缓存连接管理器

mongodb如何管理连接的?有必要实现连接池吗

jboss连接池