测试 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
JDBC连接池的testQuery/validationQuery设置