4

特定の JMS メッセージ サブスクライバーによって消費されるのを待っている JMS メッセージの数を取得するにはどうすればよいですか? キュー モデルではなく、トピック モデル (パブリッシュ/サブスクライブ) を使用します。

MDB (メッセージ駆動型 Bean) がリッスンするトピックに関するこの情報を把握できるようにしたいと考えています。明確にするために。MDB で、消費されるのを待っているメッセージの数を取得したいと考えています。

インターネットでもドキュメントでも情報が見つかりません:(

JBoss Messaging 1.4.4 を使用しています。

4

2 に答える 2

4

私の知る限り、JMSは宛先内のメッセージ数をカウントするために何も指定していません。

これには JMX を使用する必要があります。ドキュメントでTopic MBean の MBean 属性を確認するか、 TopicMBean#getMessageCounters()の Java ドキュメントを確認してください。のdepth属性は、MessageCounter探しているものでなければなりません。しかし、正直に言うと、あなたがこの情報で何をしようとしているのか、またこれがトピックに意味があるのか​​どうかはわかりません. メッセージは、すべてのサブスクライバーに配信されず、通常、各サブスクライバーがそのピアを認識していない限り、トピックにとどまります。では、1 つの MDB はメッセージの数をどのように解釈するのでしょうか?

また、JBoss Messaging 2.0.0.alpha1 のjavadocでこの MBean が見つからなかったことにも注意してください。非推奨になったのか (1.4 のコードによると、そうではなかった)、ドキュメントが最新でないのか (結局のところ、それは alpha1 javadoc であり、beta4 へのリンクが見つかりませんでした) はわかりません。 )。

編集: skaffman が指摘したように、JBoss Messaging は HornetQ としてブランド変更されました。API にいくつかの変更が加えられたようですが、概念は引き続き適用されます。ドキュメントはこちらです。

于 2009-10-20T14:17:35.547 に答える
0

You can't, not with the JMS API. The internal JBossMessaging API may expose that information, but you'll have to go looking through that documentation to find it.

于 2009-10-20T14:18:17.970 に答える