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
メソッドを使用した場合と同じ効果があります。関数には同じです。
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) 配信モード、優先度、有効期間を指定して、身元不明のメッセージプロデューサーのトピックにメッセージを発行します。 |
close, getDeliveryDelay, getDeliveryMode, getDestination, getDisableMessageID, getDisableMessageTimestamp, getPriority, getTimeToLive, send, send, send, send, send, send, send, send, setDeliveryDelay, setDeliveryMode, setDisableMessageID, setDisableMessageTimestamp, setPriority, setTimeToLive
Topic getTopic() throws JMSException
TopicPublisher
に関連付けられているトピックを取得します。JMSException
- Jakarta Messaging プロバイダーが、内部エラーのためにこの TopicPublisher
のトピックを取得できない場合。void publish(Message message) throws JMSException
TopicPublisher
のデフォルトの配信モード、優先度、存続時間を使用します。message
- 公開するメッセージ JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの公開に失敗した場合。MessageFormatException
- 無効なメッセージが指定された場合。InvalidDestinationException
- クライアントが無効なトピックを持つ TopicPublisher
でこのメソッドを使用する場合。UnsupportedOperationExceptionSE
- クライアントが、作成時にトピックを指定しなかった TopicPublisher
でこのメソッドを使用する場合。MessageProducer.getDeliveryMode()
, MessageProducer.getTimeToLive()
, MessageProducer.getPriority()
void publish(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
message
- 公開するメッセージ deliveryMode
- 使用する配信モード priority
- このメッセージの優先度 timeToLive
- メッセージの存続期間 (ミリ秒単位)JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの公開に失敗した場合。MessageFormatException
- 無効なメッセージが指定された場合。InvalidDestinationException
- クライアントが無効なトピックを持つ TopicPublisher
でこのメソッドを使用する場合。UnsupportedOperationExceptionSE
- クライアントが、作成時にトピックを指定しなかった TopicPublisher
でこのメソッドを使用する場合。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()
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
- クライアントが無効なトピックでこのメソッドを使用する場合。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.