0

サブスクライバーが非常に遅いトピックに大量のメッセージを投稿した場合。geronimosの[JMSリソース]タブの[キューサイズ]は0のままです。トピックの代わりにJMSキューを使用すると、サイズが大きくなっていることがわかります。どちらのシナリオでも、すべてのメッセージが配信されます。

トピックの「キューサイズ」が常に0と表示されるのはなぜですか?

4

1 に答える 1

2

トピックはパブリッシュ/サブスクライブ モデルを表し、リッスンしているサブスクライバーがいない場合、メッセージは消えます。したがって、トピック サイズに関するクエリは常にゼロです。

トピックには複数のサブスクライバーを含めることができるため、そのトピックを「リッスン」している複数のクライアントでメッセージを読むことができます。

一方、キューは、クライアントが次のメッセージを要求するまでメッセージを保持します。ここでは、現在保持されているメッセージの量のサイズを照会できます。メッセージは 1 つのクライアントのみが取得できます。

Oracle によるJMS API の基本概念も参照してください。

ここでは、理想的な状況について説明しますが、永続的なトピックと一時的なキューは考慮されていません。

于 2012-10-31T21:42:37.443 に答える