测试 Tomcat 的 JDBC 池连接

Posted

技术标签:

【中文标题】测试 Tomcat 的 JDBC 池连接【英文标题】:Testing Tomcat's JDBC Pool Connection 【发布时间】:2012-08-03 19:48:16 【问题描述】:

有没有办法(例如通过使用 JMX/MBeans)来测试 Tomcat 服务器的 JDBC 池连接?

【问题讨论】:

【参考方案1】:

如果你想使用 JMX bean,你可以寻找这个 bean:

Catalina:type=DataSource,context=/[context],host=[hostname],class=javax.sql.DataSource,name="[your JNDI name]"

该 bean 有一个 getConnection() 方法,该方法返回一个 javax.sql.Connection 对象。完成后记得致电close()

【讨论】:

好的,我看到了,但不确定它是否真的检查了 JDBC 池,或者只是检查了数据库连接。谢谢。 它会给你一个 JDBC 连接......来自池。如果您真的想查看池本身,请查看同一个 MXBean 的各种属性。【参考方案2】:

您没有指定您使用的 Tomcat 版本和连接池,因此我可以随意假设您使用的是 DBCP。在这种情况下,您可以从org.apache.commons.dbcp.BasicDataSource 访问许多状态值。您必须从您的 Web 应用程序内部执行此操作。可能侵入性最小的方法是引入一个 JSP 页面,该页面从 JNDI 获取您的池数据源,查询 BasicDataSource 以获取状态值并将它们显示在一个简单的 html 表中。

【讨论】:

这并不能真正回答问题:MBeans。 OP 要求“一种方式”。建议的方式肯定符合条件。 感谢所有回复和建议!我会调查你的提议,Pidster。谢谢!

以上是关于测试 Tomcat 的 JDBC 池连接的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat JDBC连接池:testOnBorrow vs testWhileIdle

Tomcat 连接池 - tomcat 7

JDBC连接池的testQuery/validationQuery设置

Tomcat JDBC连接池(Tomcat 9)

Spring boot (11) tomcat jdbc连接池

如何记录 Tomcat 7 JDBC 连接池、连接创建