public interface QueueConnection extends Connection
QueueConnection
オブジェクトは、ポイントツーポイントの Jakarta Messaging プロバイダーへのアクティブな接続です。クライアントは QueueConnection
オブジェクトを使用して、メッセージを生成および消費するための 1 つ以上の QueueSession
オブジェクトを作成します。QueueConnection
を使用して QueueSession
を作成でき、そこから特殊なキュー関連オブジェクトを作成できます。より一般的で推奨されるアプローチは、Connection
オブジェクトを使用することです。
QueueConnection
オブジェクトは、すでに使用されている既存のコードをサポートするために使用する必要があります。
QueueConnection
を使用して、パブリッシュ / サブスクライブドメインに固有のオブジェクトを作成することはできません。createDurableConnectionConsumer
メソッドは Connection
から継承しますが、QueueConnection
から使用する場合は IllegalStateException
をスローする必要があります。
Connection
, ConnectionFactory
, QueueConnectionFactory
修飾子と型 | メソッドと説明 |
---|---|
ConnectionConsumer | createConnectionConsumer(Queue queue, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) この接続の接続コンシューマーを作成します(オプションの操作)。 |
QueueSession | createQueueSession(boolean transacted, int acknowledgeMode) transacted および acknowledgeMode を指定して、QueueSession オブジェクトを作成します。 |
close, createConnectionConsumer, createDurableConnectionConsumer, createSession, createSession, createSession, createSharedConnectionConsumer, createSharedDurableConnectionConsumer, getClientID, getExceptionListener, getMetaData, setClientID, setExceptionListener, start, stop
QueueSession createQueueSession(boolean transacted, int acknowledgeMode) throws JMSException
transacted
および acknowledgeMode
を指定して、QueueSession
オブジェクトを作成します。transacted
および acknowledgeMode
引数を設定する効果は、このメソッドが Java SE 環境で呼び出されるか、Jakarta EE アプリケーションクライアントコンテナーで呼び出されるか、Jakarta EE Web または EJB コンテナーで呼び出されるかによって異なります。このメソッドが Jakarta EE Web または EJB コンテナーで呼び出された場合、transacted} および acknowledgeMode
引数を設定した場合の効果は、アクティブな JTA トランザクションが進行中かどうかによっても異なります。
Java SE 環境または Jakarta EE アプリケーションクライアントコンテナー :
transacted
が true
に設定されている場合、セッションはローカルトランザクションを使用します。ローカルトランザクションは、セッションの commit
または rollback
メソッドを呼び出すことにより、後でコミットまたはロールバックできます。引数 acknowledgeMode
は無視されます。transacted
が false
に設定されている場合、セッションはトランザクションされません。この場合、引数 acknowledgeMode
を使用して、このセッションで受信したメッセージを確認する方法を指定します。許可される値は Session.CLIENT_ACKNOWLEDGE
、Session.AUTO_ACKNOWLEDGE
、Session.DUPS_OK_ACKNOWLEDGE
です。これらの確認応答モードの意味の定義については、以下のリンクを参照してください。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがある場合 :
transacted
と acknowledgeMode
はどちらも無視されます。セッションは JTA トランザクションに参加し、セッションの commit
または rollback
メソッドを呼び出すことによってではなく、そのトランザクションがコミットまたはロールバックされるときにコミットまたはロールバックされます。両方の引数が無視されるため、開発者はこのメソッドの代わりに、引数のない createSession()
を使用することをお勧めします。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがない場合 :
transacted
が false に設定され、acknowledgeMode
が JMSContext.AUTO_ACKNOWLEDGE
または Session.DUPS_OK_ACKNOWLEDGE
に設定されている場合、セッションは処理されず、メッセージは acknowledgeMode
の値に従って確認されます。transacted
が false に設定され、acknowledgeMode
が JMSContext.CLIENT_ACKNOWLEDGE
に設定されている場合、Jakarta Messaging プロバイダーは、指定されたパラメーターを無視して、代わりに非トランザクションの自動確認済みセッションを提供することをお勧めします。ただし、Jakarta Messaging プロバイダーは、代わりに非トランザクションセッションにクライアント確認を提供する場合があります。transacted
が true に設定されている場合、Jakarta Messaging プロバイダーは、指定されたパラメーターを無視して、代わりに非トランザクションの自動確認済みセッションを提供することをお勧めします。ただし、Jakarta Messaging プロバイダーは、代わりにローカルトランザクションセッションを提供できます。transacted
を false に設定して acknowledgeMode
を JMSContext.CLIENT_ACKNOWLEDGE
に設定したアプリケーションや transacted
を true に設定したアプリケーションは移植性がない可能性があるため、transacted
を false に設定し、acknowledgeMode
を JMSContext.AUTO_ACKNOWLEDGE
または Session.DUPS_OK_ACKNOWLEDGE
に設定することをお勧めします。Jakarta EE Web および EJB コンテナーで実行されているアプリケーションは、接続ごとに複数のアクティブな(閉じられていない) Session
オブジェクトを作成しようとしてはなりません。この接続に対してアクティブな Session
オブジェクトがすでに存在しているときに、このメソッドが Jakarta EE Web または EJB コンテナーで呼び出されると、JMSException
がスローされる場合があります。
transacted
- この値が無視される上記の場合を除いて、セッションがローカルトランザクションを使用するかどうかを示します。acknowledgeMode
- トランザクションが false の場合、この値が無視される上記の場合を除いて、セッションによって受信されたメッセージがどのように確認されるかを示します。QueueSession
JMSException
- QueueConnection
オブジェクトが原因で QueueSession
の作成に失敗した場合Session.AUTO_ACKNOWLEDGE
, Session.CLIENT_ACKNOWLEDGE
, Session.DUPS_OK_ACKNOWLEDGE
ConnectionConsumer createConnectionConsumer(Queue queue, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) throws JMSException
queue
- アクセスするキュー messageSelector
- メッセージセレクター式に一致するプロパティを持つメッセージのみが配信されます。null または空の文字列の値は、メッセージコンシューマーにメッセージセレクタがないことを示します。sessionPool
- この接続コンシューマーに関連付けるサーバーセッションプール maxMessages
- 一度にサーバーセッションに割り当てることができるメッセージの最大数 JMSException
- sessionPool
および messageSelector
の内部エラーまたは無効な引数のために、QueueConnection
オブジェクトが接続コンシューマーの作成に失敗した場合。InvalidDestinationException
- 無効なキューが指定された場合。InvalidSelectorException
- メッセージセレクタが無効な場合。ConnectionConsumer
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.