パッケージ jakarta.jms

インターフェース QueueConnection

  • すべてのスーパーインターフェース:
    AutoCloseableSEConnection
    すべての既知のサブインターフェース:
    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
    • メソッドの詳細

      • 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_ACKNOWLEDGESession.AUTO_ACKNOWLEDGESession.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