【问题标题】:How can I track/monitor opened/closed JMS connections in Glassfish?如何在 Glassfish 中跟踪/监控打开/关闭的 JMS 连接?
【发布时间】:2012-10-06 09:26:07
【问题描述】:

我有一个当前部署在 Glassfish 上的 JavaEE 应用程序,我为此编写了一个负载测试,该应用程序可以在不到一小时(目前 - 崩溃的速度改进即将到来)耗尽 JMS 连接池并使用非常糟糕的消息

使用中的连接等于 max-pool-size 和过期的 max-wait-time。无法分配更多连接。

我想看看我的哪些 JavaEE 组件泄漏了 JMS 连接。对于内存,我想我可以使用分析器,也可以将它用于 JDBC 连接。但是,跟踪打开/关闭的 JMS 连接以及创建它们但不释放它们的组件的最佳工具是什么?

【问题讨论】:

    标签: glassfish profiling jms monitoring


    【解决方案1】:

    尝试使用 imqcmd 实用程序来监控您的 JMS 目标。它提供基本但有用的命令(列表、清除、创建...)

    它位于$GLASSFISH_HOME/mq/bin

    尝试以下命令:

    • 列出所有 JMS 目标
    ./imqcmd list dst
    • 打印经纪人信息
    ./imqcmd 查询 brk
    • 显示统计信息(我想这就是您要查找的内容)。默认情况下,统计信息每 5 秒刷新一次
    ./imqcmd metrics dst -t q -n jms/myQueue -m rts

    -m rts 代表“消息费率”。有关其他指标信息,请参阅 documentation (./imqcmd -h ;-))

    注意:每个命令都会提示用户名和密码。 admin/admin 是默认的用户名/密码(!= asadmin 凭据)

    【讨论】:

    • 其实我用metrics svc -n jms -m cxn找到了我需要的信息
    • 非常有帮助,直到现在才知道 imqcmd 实用程序。谢谢!
    【解决方案2】:

    在 Glassfish 3.1 控制台中,您可以检查 JMS 物理目标统计信息。这是在 Server -> JMS Physical Destinations Tab -> 点击 View Statistics (您可以复制链接并刷新此页面以获取最新结果,例如当时队列中的消息数和内存)

    另外,我认为监控 JMS 队列的最佳方法是在您的类中插入一些日志信息,以控制谁在生产或使用消息(并知道谁在打开/关闭连接)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 2011-08-29
      • 1970-01-01
      相关资源
      最近更新 更多