インターフェース 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
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 ConnectionConsumercreateConnectionConsumer(Queue queue, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages)この接続の接続コンシューマーを作成します(オプションの操作)。QueueSessioncreateQueueSession(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