2012-10-16 76 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隊列的最好方法是在你的類中插入一些日誌信息來控制誰在製作或者使用消息(並且知道誰在打開/關閉連接)。

相關問題