public interface TopicSession extends Session
TopicSession
オブジェクトは、TopicPublisher
、TopicSubscriber
、TemporaryTopic
オブジェクトを作成するためのメソッドを提供します。また、クライアントの永続サブスクライバーを削除する方法も提供します。TopicSession
は、Pub/Sub 固有のオブジェクトを作成するために使用されます。一般に、Session
オブジェクトを使用し、TopicSession
は既存のコードをサポートするためにのみ使用します。Session
オブジェクトを使用すると、プログラミングモデルが簡素化され、2 つのメッセージングドメイン間でトランザクションを使用できるようになります。
TopicSession
を使用して、ポイントツーポイントドメインに固有のオブジェクトを作成することはできません。次のメソッドは Session
を継承しますが、TopicSession
から使用する場合は、IllegalStateException
をスローする必要があります。
createBrowser
createQueue
createTemporaryQueue
Session
, Connection.createSession(boolean, int)
, TopicConnection.createTopicSession(boolean, int)
, XATopicSession.getTopicSession()
AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED
修飾子と型 | メソッドと説明 |
---|---|
TopicSubscriber | createDurableSubscriber(Topic topic, StringSE name) 指定されたトピックに共有されていない永続サブスクリプションを作成し(まだ存在しない場合)、その永続サブスクリプションにコンシューマーを作成します。 |
TopicSubscriber | createDurableSubscriber(Topic topic, StringSE name, StringSE messageSelector, boolean noLocal) メッセージセレクターと noLocal パラメーターを指定して、指定されたトピック(まだ存在しない場合)に非共有の永続サブスクリプションを作成し、その永続サブスクリプションにコンシューマーを作成します。 |
TopicPublisher | createPublisher(Topic topic) 指定されたトピックのパブリッシャーを作成します。 |
TopicSubscriber | createSubscriber(Topic topic) 指定されたトピックへの非永続サブスクライバーを作成します。 |
TopicSubscriber | createSubscriber(Topic topic, StringSE messageSelector, boolean noLocal) メッセージセレクターを使用するか、独自の接続によって公開されたメッセージをトピックに配信するかどうかを指定して、指定されたトピックへの非永続サブスクライバーを作成します。 |
TemporaryTopic | createTemporaryTopic() TemporaryTopic オブジェクトを作成します。 |
Topic | createTopic(StringSE topicName) Topic 名を指定してトピック ID を作成します。 |
void | unsubscribe(StringSE name) クライアントによって作成された永続サブスクリプションを登録解除します。 |
close, commit, createBrowser, createBrowser, createBytesMessage, createConsumer, createConsumer, createConsumer, createDurableConsumer, createDurableConsumer, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createQueue, createSharedConsumer, createSharedConsumer, createSharedDurableConsumer, createSharedDurableConsumer, createStreamMessage, createTemporaryQueue, createTextMessage, createTextMessage, getAcknowledgeMode, getMessageListener, getTransacted, recover, rollback, run, setMessageListener
Topic createTopic(StringSE topicName) throws JMSException
Topic
名を指定してトピック ID を作成します。この機能は、クライアントがトピック ID を動的に操作する必要があるまれなケースのために提供されています。これにより、プロバイダー固有の名前でトピック ID を作成できます。この機能に依存するクライアントは移植性がありません。
この方法は、物理的なトピックを作成するためのものではないことに注意してください。トピックの物理的な作成は管理タスクであり、Jakarta Messaging API によって開始されることはありません。唯一の例外は、一時的なトピックの作成です。これは、createTemporaryTopic
メソッドを使用して実行されます。
Session
の createTopic
topicName
- この Topic
の名前 Topic
JMSException
- 内部エラーが原因でセッションがトピックの作成に失敗した場合。TopicSubscriber createSubscriber(Topic topic) throws JMSException
クライアントは TopicSubscriber
オブジェクトを使用して、トピックに発行されたメッセージを受信します。
通常の TopicSubscriber
オブジェクトは耐久性がありません。彼らはアクティブな間に公開されたメッセージのみを受け取ります。
場合によっては、接続がトピックのパブリッシュとサブスクライブの両方を行うことがあります。サブスクライバーの NoLocal
属性を使用すると、サブスクライバーは、自身の接続によって発行されたメッセージの配信を禁止できます。この属性のデフォルト値は false です。
topic
- サブスクライブする Topic
JMSException
- 内部エラーが原因でセッションがサブスクライバーの作成に失敗した場合。InvalidDestinationException
- 無効なトピックが指定された場合。TopicSubscriber createSubscriber(Topic topic, StringSE messageSelector, boolean noLocal) throws JMSException
クライアントは TopicSubscriber
オブジェクトを使用して、トピックに発行されたメッセージを受信します。
通常の TopicSubscriber
オブジェクトは耐久性がありません。彼らはアクティブな間に公開されたメッセージのみを受け取ります。
サブスクライバーのメッセージセレクターによってフィルターで除外されたメッセージは、サブスクライバーに配信されることはありません。サブスクライバーの観点からは、それらは存在しません。
場合によっては、接続がトピックのパブリッシュとサブスクライブの両方を行うことがあります。サブスクライバーの NoLocal
属性を使用すると、サブスクライバーは、自身の接続によって発行されたメッセージの配信を禁止できます。この属性のデフォルト値は false です。
topic
- サブスクライブする Topic
messageSelector
- メッセージセレクター式に一致するプロパティを持つメッセージのみが配信されます。null または空の文字列の値は、メッセージコンシューマーにメッセージセレクタがないことを示します。noLocal
- 設定されている場合、独自の接続によって公開されたメッセージの配信を禁止します JMSException
- 内部エラーが原因でセッションがサブスクライバーの作成に失敗した場合。InvalidDestinationException
- 無効なトピックが指定された場合。InvalidSelectorException
- メッセージセレクタが無効な場合。TopicSubscriber createDurableSubscriber(Topic topic, StringSE name) throws JMSException
noLocal
値が false
の永続サブスクリプションを作成します。永続サブスクリプションは、アクティブなコンシューマーが関連付けられていないときにパブリッシュされたメッセージを含め、トピックでパブリッシュされたすべてのメッセージを受信する必要があるアプリケーションによって使用されます。Jakarta Messaging プロバイダーは、この永続サブスクリプションの記録を保持し、トピックのパブリッシャーからのすべてのメッセージが、この永続サブスクリプションのコンシューマーに配信されて確認されるまで、または期限が切れるまで保持されるようにします。
永続サブスクリプションは、unsubscribe
メソッドを使用して削除されるまでメッセージを蓄積し続けます。
この方法は、非共有の永続サブスクリプションでのみ使用できます。この方法を使用して作成された永続サブスクリプションはすべて非共有になります。これは、サブスクリプションのアクティブな(つまり閉じられていない)コンシューマーが一度に 1 つだけ存在する可能性があることを意味します。ここでの「コンシューマー」という用語は、任意のクライアントの TopicSubscriber
、MessageConsumer
、JMSConsumer
オブジェクトを意味します。
非共有の永続サブスクリプションは、クライアントによって指定された名前と、設定する必要のあるクライアント識別子によって識別されます。その後、その非共有の永続サブスクリプションでコンシューマーを作成することを希望するアプリケーションは、同じクライアント識別子を使用する必要があります。
共有されていない永続サブスクリプションが同じ名前とクライアント識別子、同じトピックとメッセージセレクターですでに存在し、永続サブスクリプションですでにアクティブな(つまり閉じられていない)コンシューマーがなく、そのサブスクリプションからの消費されたメッセージがまだ含まれていない場合保留中のトランザクション、またはセッションでまだ確認されていない場合、このメソッドは既存の永続サブスクリプションに TopicSubscriber
を作成します。
共有されていない永続サブスクリプションが同じ名前とクライアント識別子ですでに存在し、永続サブスクリプションですでにアクティブな(つまり閉じられていない)コンシューマーがある場合、またはそのサブスクリプションからの消費されたメッセージがまだ保留中のトランザクションの一部であるか、まだ確認されていない場合セッションでは、JMSException
がスローされます。
同じ名前とクライアント識別子でトピックが異なる非共有の永続サブスクリプションがすでに存在し、メッセージセレクターまたは noLocal
値が指定されており、永続サブスクリプションですでにアクティブな(つまり閉じられていない)コンシューマーがなく、そのサブスクリプションはまだ保留中のトランザクションの一部であるか、セッションでまだ確認されていない場合、永続サブスクリプションは削除され、新しいサブスクリプションが作成されます。
共有恒久サブスクリプションと非共有恒久サブスクリプションは、同じ名前とクライアント識別子を持つことはできません。同じ名前とクライアント識別子を持つ共有永続サブスクリプションがすでに存在する場合、JMSException
がスローされます。
同じ名前と clientId を持つ永続サブスクリプションと共有の非永続サブスクリプションに制限はありません。このようなサブスクリプションは完全に分離されます。
このメソッドは、コンシューマーを表すために MessageConsumer
ではなく TopicSubscriber
を返すことを除いて、対応する createDurableConsumer
メソッドと同じです。
Session
の createDurableSubscriber
topic
- サブスクライブする非一時的な Topic
name
- このサブスクリプションを識別するために使用される名前 InvalidDestinationException
- 無効なトピックが指定された場合。JMSException
-TopicSubscriber
の作成に失敗した場合TopicSubscriber createDurableSubscriber(Topic topic, StringSE name, StringSE messageSelector, boolean noLocal) throws JMSException
noLocal
パラメーターを指定して、指定されたトピック(まだ存在しない場合)に非共有の永続サブスクリプションを作成し、その永続サブスクリプションにコンシューマーを作成します。永続サブスクリプションは、アクティブなコンシューマーが関連付けられていないときにパブリッシュされたメッセージを含め、トピックでパブリッシュされたすべてのメッセージを受信する必要があるアプリケーションによって使用されます。Jakarta Messaging プロバイダーは、この永続サブスクリプションの記録を保持し、トピックのパブリッシャーからのすべてのメッセージが、この永続サブスクリプションのコンシューマーに配信されて確認されるまで、または期限が切れるまで保持されるようにします。
永続サブスクリプションは、unsubscribe
メソッドを使用して削除されるまでメッセージを蓄積し続けます。
この方法は、非共有の永続サブスクリプションでのみ使用できます。この方法を使用して作成された永続サブスクリプションはすべて非共有になります。これは、サブスクリプションのアクティブな(つまり閉じられていない)コンシューマーが一度に 1 つだけ存在する可能性があることを意味します。ここでの「コンシューマー」という用語は、任意のクライアントの TopicSubscriber
、MessageConsumer
、JMSConsumer
オブジェクトを意味します。
非共有の永続サブスクリプションは、クライアントによって指定された名前と、設定する必要のあるクライアント識別子によって識別されます。その後、その非共有の永続サブスクリプションでコンシューマーを作成することを希望するアプリケーションは、同じクライアント識別子を使用する必要があります。
共有されていない永続サブスクリプションが同じ名前とクライアント識別子、同じトピックとメッセージセレクターですでに存在し、永続サブスクリプションですでにアクティブな(つまり閉じられていない)コンシューマーがなく、そのサブスクリプションからの消費されたメッセージがまだ含まれていない場合保留中のトランザクション、またはセッションでまだ確認されていない場合、このメソッドは既存の永続サブスクリプションに TopicSubscriber
を作成します。
共有されていない永続サブスクリプションが同じ名前とクライアント識別子ですでに存在し、永続サブスクリプションですでにアクティブな(つまり閉じられていない)コンシューマーがある場合、またはそのサブスクリプションからの消費されたメッセージがまだ保留中のトランザクションの一部であるか、まだ確認されていない場合セッションでは、JMSException
がスローされます。
同じ名前とクライアント識別子でトピックが異なる非共有の永続サブスクリプションがすでに存在し、メッセージセレクターまたは noLocal
値が指定されており、永続サブスクリプションですでにアクティブな(つまり閉じられていない)コンシューマーがなく、そのサブスクリプションはまだ保留中のトランザクションの一部であるか、セッションでまだ確認されていない場合、永続サブスクリプションは削除され、新しいサブスクリプションが作成されます。
共有恒久サブスクリプションと非共有恒久サブスクリプションは、同じ名前とクライアント識別子を持つことはできません。同じ名前とクライアント識別子を持つ共有永続サブスクリプションがすでに存在する場合、JMSException
がスローされます。
noLocal
が true に設定されている場合、このセッションの接続、同じクライアント識別子を持つその他の接続を使用してトピックにパブリッシュされたメッセージは、永続サブスクリプションに追加されません。
同じ名前と clientId を持つ永続サブスクリプションと共有の非永続サブスクリプションに制限はありません。このようなサブスクリプションは完全に分離されます。
このメソッドは、コンシューマーを表すために MessageConsumer
ではなく TopicSubscriber
を返すことを除いて、対応する createDurableConsumer
メソッドと同じです。
Session
の createDurableSubscriber
topic
- サブスクライブする非一時的な Topic
name
- このサブスクリプションを識別するために使用される名前 messageSelector
- メッセージセレクター式に一致するプロパティを持つメッセージのみが永続サブスクリプションに追加されます。null または空の文字列の値は、永続サブスクリプションにメッセージセレクタがないことを示します。noLocal
- true の場合、このセッションの接続、同じクライアント識別子を持つその他の接続を使用してトピックにパブリッシュされたメッセージは、永続サブスクリプションに追加されません。InvalidDestinationException
- 無効なトピックが指定された場合。InvalidSelectorException
- メッセージセレクタが無効な場合。JMSException
-TopicSubscriber
の作成に失敗した場合TopicPublisher createPublisher(Topic topic) throws JMSException
クライアントは TopicPublisher
オブジェクトを使用して、トピックに関するメッセージを公開します。クライアントがトピックに TopicPublisher
を作成するたびに、以前に送信したメッセージと順序関連のないメッセージの新しいシーケンスを定義します。
topic
- 公開する Topic
、またはこれが不明なプロデューサーの場合は nullJMSException
- 内部エラーが原因でセッションがパブリッシャーの作成に失敗した場合。InvalidDestinationException
- 無効なトピックが指定された場合。TemporaryTopic createTemporaryTopic() throws JMSException
TemporaryTopic
オブジェクトを作成します。それが以前に削除されない限り、その存続期間は TopicConnection
の存続期間になります。Session
の createTemporaryTopic
JMSException
- 内部エラーのためにセッションが一時トピックの作成に失敗した場合。void unsubscribe(StringSE name) throws JMSException
このメソッドは、プロバイダーによってサブスクライバーに代わって維持されている状態を削除します。
サブスクリプションにアクティブな TopicSubscriber
がある場合、または消費されたメッセージが保留中のトランザクションの一部であるか、セッションで確認応答されていない場合、クライアントが永続サブスクリプションを削除するのは誤りです。
Session
の unsubscribe
name
- このサブスクリプションを識別するために使用される名前 JMSException
- 内部エラーのためにセッションが永続サブスクリプションへのサブスクライブに失敗した場合。InvalidDestinationException
- 無効なサブスクリプション名が指定された場合。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.