インターフェース QueueConnection
- すべてのスーパーインターフェース:
AutoCloseableSE
,Connection
- すべての既知のサブインターフェース:
XAQueueConnection
public interface QueueConnection extends Connection
QueueConnection
オブジェクトは、ポイントツーポイントの Jakarta Messaging プロバイダーへのアクティブな接続です。クライアントはQueueConnection
オブジェクトを使用して、メッセージを生成および消費するための 1 つ以上のQueueSession
オブジェクトを作成します。QueueConnection
を使用してQueueSession
を作成でき、そこから特殊なキュー関連オブジェクトを作成できます。より一般的で推奨されるアプローチは、Connection
オブジェクトを使用することです。QueueConnection
オブジェクトは、すでに使用されている既存のコードをサポートするために使用する必要があります。QueueConnection
を使用して、パブリッシュ / サブスクライブドメインに固有のオブジェクトを作成することはできません。createDurableConnectionConsumer
メソッドはConnection
から継承しますが、QueueConnection
から使用する場合はIllegalStateException
をスローする必要があります。- 導入:
- JMS 1.0
- バージョン:
- Jakarta Messaging 2.0
- 関連事項:
Connection
,ConnectionFactory
,QueueConnectionFactory
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 ConnectionConsumer
createConnectionConsumer(Queue queue, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages)
この接続の接続コンシューマーを作成します(オプションの操作)。QueueSession
createQueueSession(boolean transacted, int acknowledgeMode)
transacted
およびacknowledgeMode
を指定して、QueueSession
オブジェクトを作成します。インターフェース jakarta.jms.Connection から継承されたメソッド
close, createConnectionConsumer, createDurableConnectionConsumer, createSession, createSession, createSession, createSharedConnectionConsumer, createSharedDurableConnectionConsumer, getClientID, getExceptionListener, getMetaData, setClientID, setExceptionListener, start, stop
メソッドの詳細
createQueueSession
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
の作成に失敗した場合- いくつかの内部エラー
- 特定のトランザクションと確認応答モードのサポートの欠如、または
- このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されており、この接続に対してアクティブなセッションがすでに存在しているためです。
- 導入:
- JMS 1.1
- 関連事項:
Session.AUTO_ACKNOWLEDGE
,Session.CLIENT_ACKNOWLEDGE
,Session.DUPS_OK_ACKNOWLEDGE
createConnectionConsumer
ConnectionConsumer createConnectionConsumer(Queue queue, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) throws JMSException
この接続の接続コンシューマーを作成します(オプションの操作)。これは、通常の Jakarta Messaging クライアントでは使用されないエキスパート機能です。- パラメーター:
queue
- アクセスするキューmessageSelector
- メッセージセレクター式に一致するプロパティを持つメッセージのみが配信されます。null または空の文字列の値は、メッセージコンシューマーにメッセージセレクタがないことを示します。sessionPool
- この接続コンシューマーに関連付けるサーバーセッションプールmaxMessages
- 一度にサーバーセッションに割り当てることができるメッセージの最大数- 戻り値:
- 接続コンシューマー
- 例外:
JMSException
-sessionPool
およびmessageSelector
の内部エラーまたは無効な引数のために、QueueConnection
オブジェクトが接続コンシューマーの作成に失敗した場合。InvalidDestinationException
- 無効なキューが指定された場合。InvalidSelectorException
- メッセージセレクタが無効な場合。- 関連事項:
ConnectionConsumer