连接池监控

时间:2011-11-23 12:04:18

标签: java hibernate jboss monitoring connection-pooling

我需要深入了解我的Web应用程序中的连接池监控 有关申请的技术规格如下:

  1. Application Server - JBoss Application Server
  2. 数据库 - Oracle 10g
  3. 后端 - Hibernate
  4. 我需要知道监控连接池的不同方法是什么,以及我们如何做到这一点。无论是通过Hibernate还是通过JBoss或其他方式? 请建议我正确的方法。

4 个答案:

答案 0 :(得分:9)

对于典型的服务器端Java应用程序,最常用的监控方法之一是 JMX 。大多数应用程序(包括连接池)提供可用于监视的默认 JMX bean (称为MBean或托管bean)。连接池(例如C3P0)创建MBean将其与底层可用的JMX服务器绑定(几乎所有应用程序服务器都包含tomcat,JBoss)

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

监视的另一种方法是使用Java附带的JConsole实用程序。同样的JConsole也可以用于monitor the JBoss AS。

答案 1 :(得分:3)

这可能不是你想要的。但是你还在为游泳池使用什么?如果您还没有决定,请查看C3PO,它提供了JMX公开的监控属性

答案 2 :(得分:3)

FlexyPool是一个数据源代理,可为几乎所有已知连接池提供更好的监控和故障转移:

  • Apache DBCP
  • Apache DBCP2
  • C3P0
  • BoneCP
  • HikariCP
  • Tomcat CP
  • Vibur DBCP
  • Bitronix事务管理器
  • Atomikos TransactionsEssentials

它允许您监控以下指标:

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

通过这种方式,您可以调整池大小,以便它可以容纳尽可能多的应用程序节点,同时保护您免受某些unexpected traffic spikes的攻击。<​​/ p>

答案 3 :(得分:1)

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

相反,我使用了JMXConsole中通常可用的内置http://localhost:8080/jmx-console - 您可能需要更改部署的主机名和端口。

如果正在运行,您将看到用户名和密码提示 默认用户名/密码为: admin / admin
我发现第一次尝试这个,没有任何反应,我不得不更新文件: server / default / conf / props / jmx-console-users.properties 并取消注释第二行:

\

一旦完成,我就可以登录了。在 ObjectName过滤器的那一点上,我输入了: jboss.jca:* 然后,我选择了相应的连接池链接,例如: name = DefaultDS,service = ManagedConnectionPool ,显示所有连接池信息,例如AvailableConnectionCount,InUseConnectionCount等。