2011-11-23 134 views
8

我需要了解有关监控我的Web应用程序中的连接池的信息。
有关应用程序的技术规范中提到如下:连接池监控

  1. 应用服务器 - JBoss应用服务器
  2. 数据库 - Oracle 10g中
  3. 后端 - 休眠

我需要知道监控连接池的方式有哪些,以及我们如何做到这一点。无论是通过Hibernate还是通过JBoss或其他方式? 请建议我以正确的方式做到这一点。

回答

3

这可能不是你想要的。但是你用什么游泳池呢?如果你还没有决定,退房C3PO,它提供了JMX公开的属性监测

9

对于一个典型的服务器端Java应用程序,监测的最优选的方式之一是通过JMX。大多数应用程序(包括连接池)提供默认的JMX bean(称为MBeans或托管bean),可用于监视。连接池(例如C3P0)创建一个MBean与潜在可用的JMX服务器(这是存在于几乎所有的应用服务器包括的Tomcat,JBoss的)

的MBean结合,将保存所有有关连接的信息池。你已经提到你正在使用JBoss服务器。在Jboss提供的Web管理控制台上,应该是是查看所有MBean(包括部署的连接池的MBean)的规定。

另一种监控方式是通过Java自带的JConsole实用程序。同样的JConsole也可以用于monitor the JBoss AS。

+0

如何使用JConsole监视DBCP池。我搞不清楚了 !!任何帮助或指导指向正确的方向。我正在使用java 5和Tomcat 5. – Mubasher

+1

DBCP不支持JMX开箱即用。但有办法做到这一点。看看这个链接。 http://www.nurkiewicz.com/2011/12/enabling-jmx-in-hibernate-ehcache-qurtz.html – Santosh

+0

似乎更准确地说,应用程序的模块(或类)将提供默认的MBean。 ..不存在应用程序的MBean。会有多个权利?而且每个模块(可能)都会提供一个绑定到JMX服务器的MBean。 –

3

FlexyPool是数据源的代理,为几乎所有已知的连接池更好地监测和故障切换:

  • 的Apache DBCP
  • 阿帕奇DBCP2
  • C3P0
  • BoneCP
  • HikariCP
  • Tomcat CP
  • Vibur DBCP
  • Bitronix事务管理
  • Atomikos公司TransactionsEssentials

它可以让你监控以下指标:

  • 并发连接数直方图
  • 并发连接请求直方图
  • 数据源连接关系取得时间直方图
  • 连接租约时间直方图
  • 最大池大小直方图
  • 总连接关系取得时间直方图
  • 溢出池大小直方图
  • 重试尝试直方图

这样你可以调整池的大小,使其可以容纳尽可能多的应用程序节点,同时保护您免受某些unexpected traffic spikes的影响。

0

我发现当使用JConsole正如其他答案通过JMX连接到JBoss(5.2)时,连接池的MBean不可见。

取而代之,我使用内置的JMXConsole,通常可在:http://localhost:8080/jmx-console - 您可能必须更改部署的主机名和端口。

如果正在运行,您将看到用户名和密码提示。
默认的用户名/密码为:管理员/管理员
我发现我第一次尝试这样做,什么都没有发生,我不得不更新文件:服务器/默认/ conf目录/道具/ JMX控制台用户。性能并取消2号线:

# A sample users.properties file for use with the UsersRolesLoginModule 
admin=admin 

一旦这样做,我可以登录。然后,我选择了相应的连接池链接,例如:name = DefaultDS,service = ManagedConnectionPool它显示了所有的连接池信息,例如:http://www.dell.com。 AvailableConnectionCount,InUseConnectionCount等。