インターフェース TopicPublisher
- すべてのスーパーインターフェース:
AutoCloseableSE
,MessageProducer
public interface TopicPublisher extends MessageProducer
クライアントはTopicPublisher
オブジェクトを使用して、トピックに関するメッセージを公開します。TopicPublisher
オブジェクトは、メッセージプロデューサーのパブリッシュ / サブスクライブ形式です。通常、
Topic
は、TopicPublisher
の作成時に指定されます。この場合、識別されていないTopicPublisher
にpublish
メソッドを使用しようとすると、java.lang.UnsupportedOperationException
がスローされます。識別されていない
Topic
を使用してTopicPublisher
が作成された場合、Topic
が識別されていると想定してpublish
メソッドを使用しようとすると、java.lang.UnsupportedOperationException
がスローされます。publish
メソッドの実行中、メッセージはクライアント内の他のスレッドによって変更されてはなりません。メッセージが変更された場合、publish
の結果は未定義です。メッセージを公開した後、クライアントは、公開されたメッセージに影響を与えることなく、メッセージを保持および変更できます。同じメッセージオブジェクトが複数回公開される場合があります。
次のメッセージヘッダーは、メッセージの公開の一部として設定されます:
JMSDestination
、JMSDeliveryMode
、JMSExpiration
、JMSPriority
、JMSMessageID
、JMSTimeStamp
。メッセージが公開されると、これらのヘッダーの値は無視されます。publish
の完了後、ヘッダーはメッセージを公開するメソッドによって指定された値を保持します。MessageProducer.setDisableMessageID
またはMessageProducer.setDisableMessageTimestamp
メソッドによってこれらのヘッダーの設定が明示的に無効にされている場合、publish
メソッドがJMSMessageID
およびJMSTimeStamp
を設定しない可能性があります。MessageProducer
の作成は、TopicPublisher
の作成と同じ機能を提供します。新しいコードを作成するときは、MessageProducer
オブジェクトをお勧めします。TopicPublisher
は、既存のコードをサポートするために提供されています。TopicPublisher
はMessageProducer
を継承するため、MessageProducer
インターフェースの一部であるsend
メソッドを継承します。send
メソッドを使用すると、publish
メソッドを使用した場合と同じ効果があります。関数には同じです。- 導入:
- JMS 1.0
- バージョン:
- Jakarta Messaging 2.0
- 関連事項:
Session.createProducer(Destination)
,TopicSession.createPublisher(Topic)
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 Topic
getTopic()
このTopicPublisher
に関連付けられているトピックを取得します。void
publish(Message message)
トピックにメッセージを公開します。void
publish(Message message, int deliveryMode, int priority, long timeToLive)
配信モード、優先度、有効期間を指定して、トピックにメッセージを発行します。void
publish(Topic topic, Message message)
身元不明のメッセージプロデューサーのトピックにメッセージを発行します。void
publish(Topic topic, Message message, int deliveryMode, int priority, long timeToLive)
配信モード、優先度、有効期間を指定して、身元不明のメッセージプロデューサーのトピックにメッセージを発行します。インターフェース jakarta.jms.MessageProducer から継承されたメソッド
close, getDeliveryDelay, getDeliveryMode, getDestination, getDisableMessageID, getDisableMessageTimestamp, getPriority, getTimeToLive, send, send, send, send, send, send, send, send, setDeliveryDelay, setDeliveryMode, setDisableMessageID, setDisableMessageTimestamp, setPriority, setTimeToLive
メソッドの詳細
getTopic
Topic getTopic() throws JMSException
このTopicPublisher
に関連付けられているトピックを取得します。- 戻り値:
- このパブリッシャーのトピック
- 例外:
JMSException
- Jakarta Messaging プロバイダーが、内部エラーのためにこのTopicPublisher
のトピックを取得できない場合。
publish
void publish(Message message) throws JMSException
トピックにメッセージを公開します。TopicPublisher
のデフォルトの配信モード、優先度、存続時間を使用します。- パラメーター:
message
- 公開するメッセージ- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの公開に失敗した場合。MessageFormatException
- 無効なメッセージが指定された場合。InvalidDestinationException
- クライアントが無効なトピックを持つTopicPublisher
でこのメソッドを使用する場合。UnsupportedOperationExceptionSE
- クライアントが、作成時にトピックを指定しなかったTopicPublisher
でこのメソッドを使用する場合。- 関連事項:
MessageProducer.getDeliveryMode()
,MessageProducer.getTimeToLive()
,MessageProducer.getPriority()
publish
void publish(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
配信モード、優先度、有効期間を指定して、トピックにメッセージを発行します。- パラメーター:
message
- 公開するメッセージdeliveryMode
- 使用する配信モードpriority
- このメッセージの優先度timeToLive
- メッセージの存続期間 (ミリ秒単位)- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの公開に失敗した場合。MessageFormatException
- 無効なメッセージが指定された場合。InvalidDestinationException
- クライアントが無効なトピックを持つTopicPublisher
でこのメソッドを使用する場合。UnsupportedOperationExceptionSE
- クライアントが、作成時にトピックを指定しなかったTopicPublisher
でこのメソッドを使用する場合。
publish
void publish(Topic topic, Message message) throws JMSException
不明なメッセージプロデューサーのトピックにメッセージを公開します。TopicPublisher
のデフォルトの配信モード、優先度、存続時間を使用します。通常、メッセージプロデューサーには作成時にトピックが割り当てられます。ただし、Jakarta Messaging API は、未確認のメッセージプロデューサーもサポートしているため、メッセージが公開されるたびにトピックを指定する必要があります。
- パラメーター:
topic
- このメッセージを公開するトピックmessage
- 公開するメッセージ- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの公開に失敗した場合。MessageFormatException
- 無効なメッセージが指定された場合。InvalidDestinationException
- クライアントが無効なトピックでこのメソッドを使用する場合。- 関連事項:
MessageProducer.getDeliveryMode()
,MessageProducer.getTimeToLive()
,MessageProducer.getPriority()
publish
void publish(Topic topic, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
配信モード、優先度、有効期間を指定して、身元不明のメッセージプロデューサーのトピックにメッセージを発行します。通常、メッセージプロデューサーには作成時にトピックが割り当てられます。ただし、Jakarta Messaging API は、未確認のメッセージプロデューサーもサポートしているため、メッセージが公開されるたびにトピックを指定する必要があります。
- パラメーター:
topic
- このメッセージを公開するトピックmessage
- 公開するメッセージdeliveryMode
- 使用する配信モードpriority
- このメッセージの優先度timeToLive
- メッセージの存続期間 (ミリ秒単位)- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの公開に失敗した場合。MessageFormatException
- 無効なメッセージが指定された場合。InvalidDestinationException
- クライアントが無効なトピックでこのメソッドを使用する場合。