インターフェース TopicSubscriber
- すべてのスーパーインターフェース:
AutoCloseableSE,MessageConsumer
public interface TopicSubscriber extends MessageConsumer
クライアントはTopicSubscriberオブジェクトを使用して、トピックに公開されたメッセージを受信します。TopicSubscriberオブジェクトは、メッセージコンシューマーのパブリッシュ / サブスクライブフォームです。Session.createConsumerを使用してMessageConsumerを作成できます。TopicSessionでは、トピックごとに複数のTopicSubscriberオブジェクトを作成できます。トピックの各メッセージを、それを受信する資格がある各サブスクライバーに配信します。メッセージの各コピーは、完全に別個のメッセージとして扱われます。1 つのコピーで行われた作業が他のコピーに影響を与えることはありません。一方を認めても、他方を認めない。1 つのメッセージはすぐに配信され、別のメッセージはサブスクライバーがその前のメッセージを処理するのを待ちます。通常の
TopicSubscriberオブジェクトは耐久性がありません。彼らはアクティブな間に公開されたメッセージのみを受け取ります。サブスクライバーのメッセージセレクターによってフィルターで除外されたメッセージは、サブスクライバーに配信されることはありません。サブスクライバーの観点からは、それらは存在しません。
場合によっては、接続がトピックをパブリッシュおよびサブスクライブすることがあります。サブスクライバー
NoLocal属性を使用すると、サブスクライバーは、自身の接続によって発行されたメッセージの配信を禁止できます。サブスクライバーが非アクティブである間に公開されたメッセージを含め、トピックで公開されたすべてのメッセージをクライアントが受信する必要がある場合、クライアントは永続的な
TopicSubscriberを使用します。Jakarta Messaging プロバイダーは、この永続サブスクリプションの記録を保持し、トピックのパブリッシャーからのすべてのメッセージが、この永続サブスクライバーによって承認されるか、期限が切れるまで保持されるようにします。永続サブスクライバーとのセッションは、常に同じクライアント ID を提供する必要があります。さらに、各クライアントは、作成する各永続サブスクリプションを(クライアント識別子内で)一意に識別する名前を指定する必要があります。特定の永続サブスクリプションに対して
TopicSubscriberを持つことができるのは、一度に 1 つのセッションだけです。クライアントは、同じ名前の新しい
TopicSubscriberと新しいトピックまたはメッセージセレクター、あるいはその両方を作成することにより、既存の永続サブスクリプションを変更できます。永続サブスクリプションを変更することは、古いサブスクリプションを登録解除(削除)し、新しいサブスクリプションを作成することと同じです。unsubscribeメソッドは、永続サブスクリプションを削除するために使用されます。unsubscribeメソッドは、SessionまたはTopicSessionレベルで使用できます。このメソッドは、プロバイダーによってサブスクライバーに代わって維持されている状態を削除します。MessageConsumerの作成は、TopicSubscriberの作成と同じ機能を提供します。恒久サブスクライバーを作成するには、Session.CreateDurableSubscriberの使用をお勧めします。TopicSubscriberは、既存のコードをサポートするために提供されています。- 導入:
- JMS 1.0
- バージョン:
- Jakarta Messaging 2.0
- 関連事項:
Session.createConsumer(jakarta.jms.Destination),Session.createDurableSubscriber(jakarta.jms.Topic, java.lang.String),TopicSession,TopicSession.createSubscriber(jakarta.jms.Topic),MessageConsumer
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 booleangetNoLocal()このサブスクライバーのNoLocal属性を取得します。TopicgetTopic()このサブスクライバーに関連付けられているTopicを取得します。インターフェース jakarta.jms.MessageConsumer から継承されたメソッド
close, getMessageListener, getMessageSelector, receive, receive, receiveNoWait, setMessageListener
メソッドの詳細
getTopic
Topic getTopic() throws JMSException
このサブスクライバーに関連付けられているTopicを取得します。- 戻り値:
- このサブスクライバーの
Topic - 例外:
JMSException- 内部エラーのために、Jakarta Messaging プロバイダーがこのトピックサブスクライバーのトピックを取得できなかった場合。
getNoLocal
boolean getNoLocal() throws JMSExceptionこのサブスクライバーのNoLocal属性を取得します。この属性のデフォルト値は false です。- 戻り値:
- ローカルに発行されたメッセージが禁止されている場合は true
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがこのトピックサブスクライバーのNoLocal属性の取得に失敗した場合