2012-10-16 45 views
5

我有一个目前部署在Glassfish上的JavaEE应用程序,我已经写了一个负载测试,可以在不到一个小时内(现在 - 即将到来的速度改进)崩溃JMS连接池并破坏Glassfish坏消息如何跟踪/监控Glassfish中已打开/关闭的JMS连接?

使用中的连接等于最大池大小和过期最大等待时间。无法分配更多连接。

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

回答

4

尝试使用imqcmd util监控您的JMS目标。它提供了基本的,但有用的命令(列表,净化,创造... ...)

它位于$GLASSFISH_HOME/mq/bin

尝试以下命令:

  • 清单中所有JMS目的地
./imqcmd list dst
  • 打印经纪人信息
./imqcmd query brk
  • 显示统计(我猜是你在找什么)。统计默认
./imqcmd metrics dst -t q -n jms/myQueue -m rts

-m rts看台上每5秒刷新一次的 “信息率”。有关其他度量信息(./imqcmd -h ;-)),请参见documentation

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

+1

事实上,我发现我需要的信息使用'metrics svc -n jms -m cxn' – Riduidel

+0

极其有用,不知道imqcmd实用程序到现在。谢谢! –

0

在Glassfish 3.1控制台中,您可以检查JMS物理目标统计信息。这在服务器 - > JMS物理目的地选项卡 - >点击查看统计信息(您可以复制链接并刷新此页面以获取最新结果,例如当时队列中的消息数和内存)

另外我认为监控JMS队列的最好方法是在你的类中插入一些日志信息来控制谁在制作或者使用消息(并且知道谁在打开/关闭连接)。

相关问题