複数のサブスクライバーを持つ JMS 非永続トピックがあります (ActiveMQ を使用)。
各サブスクライバーは、個別の Tomcat インスタンスにデプロイされた Web アプリケーションです。メッセージが到着したら、すべてのサブスクライバーに配信する必要があります (分散キャッシュの実装のようなものです)。
メッセージが常にすべてのサブスクライバーに配信されるとは限らないことに気付きました。ActiveMQ 管理 UI を見ると、トピック サブスクライバーのリスト (および接続のリスト) が絶えず変化していることがわかります。たとえば、17 人のサブスクライバーが表示され、ActiveMQ 管理 UI を更新すると、19 人のサブスクライバーが表示され、もう一度更新すると、18 と表示されます。
どうしたの?私は、すべてのトムキャットが常に稼働していることを知っています。JMS トピックに関する私の理解では、アプリケーションが稼働している場合、メッセージは常に配信されるはずです。私は何かを誤解しましたか?このサブスクライバーが「点滅」する論理的な理由はわかりません。
PS 永続的なトピックは試したくない - アプリケーションが起動していない場合にメッセージを配信する必要はありません。