パッケージ jakarta.jms

インターフェース TopicPublisher

すべてのスーパーインターフェース:
AutoCloseableSEMessageProducer

public interface TopicPublisher extends MessageProducer
クライアントは TopicPublisher オブジェクトを使用して、トピックに関するメッセージを公開します。TopicPublisher オブジェクトは、メッセージプロデューサーのパブリッシュ / サブスクライブ形式です。

通常、Topic は、TopicPublisher の作成時に指定されます。この場合、識別されていない TopicPublisher に publish メソッドを使用しようとすると、java.lang.UnsupportedOperationException がスローされます。

識別されていない Topic を使用して TopicPublisher が作成された場合、Topic が識別されていると想定して publish メソッドを使用しようとすると、java.lang.UnsupportedOperationException がスローされます。

publish メソッドの実行中、メッセージはクライアント内の他のスレッドによって変更されてはなりません。メッセージが変更された場合、publish の結果は未定義です。

メッセージを公開した後、クライアントは、公開されたメッセージに影響を与えることなく、メッセージを保持および変更できます。同じメッセージオブジェクトが複数回公開される場合があります。

次のメッセージヘッダーは、メッセージの公開の一部として設定されます: JMSDestinationJMSDeliveryModeJMSExpirationJMSPriorityJMSMessageIDJMSTimeStamp。メッセージが公開されると、これらのヘッダーの値は無視されます。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
関連事項:
  • メソッドの詳細

    • 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 でこのメソッドを使用する場合。
      関連事項:
    • 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 - クライアントが無効なトピックでこのメソッドを使用する場合。
      関連事項:
    • 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 - クライアントが無効なトピックでこのメソッドを使用する場合。