2016-01-25 35 views
3

我从DBCP2文档读取此新版本支持连接池的JMX监视,但找不到任何显示实际使用情况的示例。使用JMX监视DBCP2连接池

我有一个简单的基于JDBC的java应用程序,它使用dbcp2来创建一个由简单查询服务使用的连接池,并且我想通过另一个工具(如使用JMX的VisualVM监视这些连接)。 DBCP2的BasicDataSource有像setJmxName() 这样的方法,我没有看到任何用法,也不知道如何使用它。

如果有人不熟悉JDBC,可以阅读关于它的文章here

任何帮助,将不胜感激。 谢谢!

+0

改进问题格式,使其更容易理解。增加了一些资源,指向其他人的JDBC文档,以便更轻松地跟踪该主题的重点。 – Mike

+0

我在生产中遇到大量线程数量较高的DBCP2问题,我决定使用完美工作的C3P0,再加上它有一个很好的JMX实现。 –

回答

4

我还没有找到任何文档,但我通过挖掘源代码发现了一些问题。

您只需要创建一个BasicDataSourceBasicManagedDataSource对象,就像您通常会那样,然后调用setJmxName()方法。当您调用getConnection()方法时,DataSource将在平台的MBean服务器上注册自己,并在您调用close()方法时取消注册。


设置的"org.apache.dbcp:DataSource=mydbname"作品JMX名,Apache使用单元测试的例子可以found here

+1

对象名称语法在此处描述:http://www.oracle.com/us/technologies/java/best-practices-jsp-136021.html。 –