我需要深入了解我的Web应用程序中的连接池监控 有关申请的技术规格如下:
我需要知道监控连接池的不同方法是什么,以及我们如何做到这一点。无论是通过Hibernate还是通过JBoss或其他方式? 请建议我正确的方法。
答案 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是一个数据源代理,可为几乎所有已知连接池提供更好的监控和故障转移:
它允许您监控以下指标:
通过这种方式,您可以调整池大小,以便它可以容纳尽可能多的应用程序节点,同时保护您免受某些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等。