【问题标题】:Connection Pool Monitoring连接池监控
【发布时间】:2012-01-04 17:24:59
【问题描述】:

我需要了解如何在我的 Web 应用程序中监控连接池。
该应用程序的技术规格如下:

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

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

【问题讨论】:

    标签: java hibernate jboss monitoring connection-pooling


    【解决方案1】:

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

    • Apache DBCP
    • Apache DBCP2
    • C3P0
    • 骨CP
    • HikariCP
    • Tomcat CP
    • Vibur DBCP
    • Bitronix 事务管理器
    • Atomikos 交易要点

    它允许您监控以下指标:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      一旦完成,我就可以登录了。在 ObjectName Filter 中输入:jboss.jca:* 然后选择适当的连接池链接,例如:name=DefaultDS,service=ManagedConnectionPool 显示所有连接池信息,例如AvailableConnectionCount、InUseConnectionCount 等

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • 如何使用 JConsole 监控 DBCP 池。我迷路了 !!任何帮助或指导我指向正确的方向。我正在使用 java 5 和 Tomcat 5。
        • DBCP 不支持开箱即用的 JMX。但有办法做到这一点。看看这个链接。 nurkiewicz.com/2011/12/…
        • 似乎更准确的说法是应用程序的模块(或类)将提供默认 MBean……而不是应用程序有 MBean。会有多个对吗?每个模块都会(可能)提供一个绑定到 JMX 服务器的 MBean。
        • @BradEllis,不确定我是否正确。是的,可以有尽可能多的 MBean,并且可以将相同的 MBean 绑定到 JMX 服务器。
        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2014-07-25
          • 1970-01-01
          • 2015-05-31
          • 2016-05-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-12
          相关资源
          最近更新 更多