サブスクライバーが非常に遅いトピックに大量のメッセージを投稿した場合。geronimosの[JMSリソース]タブの[キューサイズ]は0のままです。トピックの代わりにJMSキューを使用すると、サイズが大きくなっていることがわかります。どちらのシナリオでも、すべてのメッセージが配信されます。
トピックの「キューサイズ」が常に0と表示されるのはなぜですか?
トピックはパブリッシュ/サブスクライブ モデルを表し、リッスンしているサブスクライバーがいない場合、メッセージは消えます。したがって、トピック サイズに関するクエリは常にゼロです。
トピックには複数のサブスクライバーを含めることができるため、そのトピックを「リッスン」している複数のクライアントでメッセージを読むことができます。
一方、キューは、クライアントが次のメッセージを要求するまでメッセージを保持します。ここでは、現在保持されているメッセージの量のサイズを照会できます。メッセージは 1 つのクライアントのみが取得できます。
Oracle によるJMS API の基本概念も参照してください。
ここでは、理想的な状況について説明しますが、永続的なトピックと一時的なキューは考慮されていません。