5

現在GlassfishにデプロイされているJavaEEアプリケーションがあり、負荷テストを作成しました。これにより、1時間以内に(今のところ-クラッシュの速度が向上します)JMS接続プールを使い果たし、Glassfishをめちゃくちゃ悪いメッセージで壊すことができます。

使用中の接続は、max-pool-sizeとexpiredmax-wait-timeに等しくなります。これ以上の接続を割り当てることはできません。

どのJavaEEコンポーネントがJMS接続をリークするかを確認したいと思います。メモリについては、プロファイラーを使用でき、JDBC接続にも使用できたと思います。しかし、開いた/閉じたJMS接続と、それらを作成し、解放しないコンポーネントを追跡するための最良のツールは何ですか?

4

2 に答える 2

4

imqcmd utilを試して、JMS宛先をモニターしてください。基本的ですが便利なコマンド(list、purge、create ...)を提供します

それはに位置しています$GLASSFISH_HOME/mq/bin

次のコマンドを試してください。

  • すべてのJMS宛先を一覧表示します
./imqcmd list dst
  • ブローカー情報を印刷する
./imqcmd query brk
  • 統計を表示します(私はそれがあなたが探しているものだと思います)。統計はデフォルトで5秒ごとに更新されます
./imqcmdメトリックdst-tq-n jms / myQueue -m rts

-m rts「メッセージレート」の略です。その他のメトリック情報については、ドキュメントを参照してください(./imqcmd -h ;-))

注意:すべてのコマンドは、ユーザー名とパスワードを要求します。admin / adminはデフォルトのユーザー名/パスワードです(!= asadmin資格情報)

于 2012-10-16T13:31:30.293 に答える
0

Glassfish 3.1コンソールでは、JMS物理宛先統計を確認できます。これは、[サーバー]->[JMS物理宛先]タブ->[統計の表示]をクリックします(リンクをコピーしてこのページを更新すると、その時点でのキュー内のメッセージ数やメモリなどの最新の結果を取得できます)

また、JMSキューを監視する最良の方法は、クラスにログ情報を挿入して、誰がメッセージを生成または消費しているかを制御することです(そして、誰が接続を開いたり閉じたりしているかを知ることです)。

于 2012-10-16T10:12:06.923 に答える