【问题标题】:How to properly monitor the actual number of database connections from WebSphere 6.1?如何正确监控来自 WebSphere 6.1 的实际数据库连接数?
【发布时间】:2016-08-09 12:57:45
【问题描述】:

我需要监控从 Websphere 到数据库的实际连接数。我尝试以三种不同的方式做到这一点,但每种方式都会给我带来不同的结果。 我正在开发具有多个节点的 Webpshere 6.1,每个节点包含三台服务器。所有服务器都在同一个集群中。

  1. Tivoli Performance Viewer。 在 TPV 中,我可以选择特定的服务器,然后选择 Performance Modules、JDBC Connection Pools、Oracle RAC JDBC Provider。从那里我可以看到创建、关闭的连接总数和连接池的大小。很好,但这给了我 PoolSize 的平均值 1 或 2。

  2. 使用 Jolokia 访问 MBean。 我已经在集群上部署了 Jolokia 应用程序,因此它应该被分发到每个服务器。该应用程序可以工作,但是当我执行“list”命令时,它应该列出 Websphere 上所有可能的 MBean,它给了我数百个,但它们都与节点上的第一个实例相关。例如,当使用 192.168.1.1/jolokia/list 访问 Jolokia 时,它会给出一个 MBean 列表,所有这些都与在 192.168.1.1 上配置的第一个实例 (server1) 相关。它不应该显示与该节点上的所有三个服务器相关的 MBean 吗?尽管如此,从那里的值也是 1 或 2,就像在 TPV 中一样。

  3. 在 Linux shell 中使用 netstat。 这里的另一个问题。当使用 netstat 列出与特定数据库的已建立连接时,它显示来自每个服务器进程的大约 30 个连接,这提供了大约 90 个从节点到数据库的连接。我不明白这些联系是从哪里来的。

这里哪些信息最相关?我错过了什么吗?

【问题讨论】:

    标签: websphere connection-pooling jmx websphere-6


    【解决方案1】:

    从JDBC PMI counters PoolSize 为您提供给定服务器上池的当前大小,但不是必需的活动连接(但它们将从数据库和 netstat 的角度打开)。您可以使用PoolSize - FreePoolSize 获取当前使用的连接数。

    要获得连接总数,您必须监控每台服务器,或使用数据库监控工具。

    您还可以安装和使用PerfSevlet 以 XML 形式获取这些计数器。

    【讨论】:

    • 问题是每个服务器上的 PoolSize 对于每个服务器都有一个 1 或 2 的值。另一方面,Linux 上的同一个服务器进程与数据库建立了大约 30 个连接(使用了 netstat)。
    • @Rubid 唯一的原因可能是应用程序使用了不正确的数据库连接。因此应用程序不使用来自服务器的数据源,而是手动创建与数据库的直接连接。不幸的是,在这种情况下,您将不得不依赖数据库监控工具,而不是 WebSphere。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多