私はTopic Publisherとトピック数の可変数の間でJMS(ActiveMQ)を使用しています。パブ/サブパラダイム:加入者が生きているかどうか知ることができますか?
特定の瞬間に、一部の加入者が「オフライン」(切断、シャットダウン、通信不能など)であるかどうかを確認する必要があります。
JMSが発行者にどの登録者が「登録済み」であるかを知らせる方法はありますか?
今のところ、サブスクライバは特定のキュー(プロデューサとして機能する)で「生きている」メッセージを送信し、パブリッシャはそれらを受信します(コンシューマとして動作します)。 X秒(しきい値)の間「ping」しなかった場合、オフラインであるとみなされます。
が、私はこの機能は、特にそのように設計されて完全にメッセージングやパブリッシュ/サブスクライブパラダイムに関連し、私もそのパブ/サブを知られていないことを知っている...それは動作しますが、私は、車輪を再発明あれば知って興味がありましたパブリッシャーは、メッセージが誰にどこで消費されるのかを心配する必要はありません....しかし、私はそれが知りたければ、おそらく方法があったと思っていました。 結局、それは特に珍しい用途のようではありません....ありがとうございました。
このスレッドに表示されているような永続サブスクリプションを使用している可能性があります。http://stackoverflow.com/questions/4937262/how-to-find-out-all-subscribers-to-a-jms-topic-have-replied – Alfabravo
@Alfabravoこのスレッドに示されている解決策は、HornetQに固有です。また、DurableSubscriptionsは実際に私がチェックしたいものではありません、彼らは何ですか?彼らがやることは、メッセージを記憶して、「到達不能な」加入者に配信できるようにすることです。これは、その加入者のリストを私のプログラムに公開することはありません。 – mdm
いいえ、その設定はHornetQにバインドされていません。 http://docs.oracle.com/cd/E19798-01/821-1841/bncgd/index.html適切な回避策があれば、http://docs.oracle.com/cd/に役立つかもしれません。 E19798-01/821-1841/bncfx/index.html – Alfabravo