パッケージ jakarta.jms

インターフェース Connection

  • すべてのスーパーインターフェース:
    AutoCloseableSE
    すべての既知のサブインターフェース:
    QueueConnectionTopicConnectionXAConnectionXAQueueConnectionXATopicConnection

    public interface Connection
    extends AutoCloseableSE
    Connection オブジェクトは、Jakarta Messaging プロバイダーへのクライアントのアクティブな接続です。通常、Java 仮想マシン(JVM)の外部にプロバイダーリソースを割り当てます。

    接続は同時使用をサポートします。

    接続にはいくつかの目的があります。

    • これは、Jakarta Messaging プロバイダーとのオープン接続をカプセル化します。これは通常、クライアントとサービスプロバイダーソフトウェア間の開いている TCP/IP ソケットを表します。
    • その作成は、クライアント認証が行われる場所です。
    • 一意のクライアント識別子を指定できます。
    • ConnectionMetaData オブジェクトを提供します。
    • オプションの ExceptionListener オブジェクトをサポートします。

    接続の作成には認証と通信の設定が含まれるため、接続は比較的重いオブジェクトです。ほとんどのクライアントは、単一の接続ですべてのメッセージングを実行します。他のより高度なアプリケーションは、いくつかの接続を使用する場合があります。Jakarta Messaging API は、複数の接続を使用する理由を設計していません。ただし、そのための運用上の理由がある場合があります。

    Jakarta Messaging クライアントは通常、接続、1 つ以上のセッション、いくつかのメッセージプロデューサーとコンシューマーを作成します。接続が作成されると、停止モードになります。つまり、メッセージは配信されていません。

    セットアップが完了するまで(つまり、すべてのメッセージコンシューマーが作成されるまで)、接続を停止モードのままにするのが一般的です。その時点で、クライアントは接続の start メソッドを呼び出し、メッセージが接続のコンシューマーに到着し始めます。このセットアップ規則により、クライアントがまだセットアップを行っている間に非同期メッセージが配信されることによるクライアントの混乱を最小限に抑えることができます。

    接続はすぐに開始でき、セットアップは後で行うことができます。これを行うクライアントは、セットアップの処理中に非同期メッセージ配信を処理できるように準備する必要があります。

    メッセージプロデューサーは、接続が停止しているときにメッセージを送信できます。

    導入:
    JMS 1.0
    バージョン:
    Jakarta Messaging 2.0
    関連事項:
    ConnectionFactory, QueueConnection, TopicConnection
    • メソッドの詳細

      • createSession

        Session createSession​(boolean transacted,
                              int acknowledgeMode)
                       throws JMSException
        transacted および acknowledgeMode を指定して、Session オブジェクトを作成します。

        このメソッドは、単一の引数を使用して同じ情報を指定するメソッド createSession(int sessionMode) と、Jakarta EE JTA トランザクションで使用するためのメソッド createSession() に置き換えられました。アプリケーションは、このメソッドの代わりにこれらのメソッドの使用を検討する必要があります。

        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 の場合、この値が無視される上記の場合を除いて、セッションによって受信されたメッセージがどのように確認されるかを示します。
        戻り値:
        新しく作成されたセッション
        例外:
        JMSException - Connection オブジェクトが原因でセッションの作成に失敗した場合
        • いくつかの内部エラー
        • 特定のトランザクションと確認応答モードのサポートの欠如、または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されており、この接続に対してアクティブなセッションがすでに存在しているためです。
        導入:
        JMS 1.1
        関連事項:
        Session.AUTO_ACKNOWLEDGE, Session.CLIENT_ACKNOWLEDGE, Session.DUPS_OK_ACKNOWLEDGE, createSession(int), createSession()
      • createSession

        Session createSession​(int sessionMode)
                       throws JMSException
        sessionMode を指定して、Session オブジェクトを作成します。

        sessionMode 引数を設定する効果は、このメソッドが Java SE 環境で呼び出されるか、Jakarta EE アプリケーションクライアントコンテナーで呼び出されるか、Jakarta EE Web または EJB コンテナーで呼び出されるかによって異なります。このメソッドが Jakarta EE Web または EJB コンテナーで呼び出された場合、sessionMode 引数を設定する効果は、アクティブな JTA トランザクションが進行中かどうかによっても異なります。

        Java SE 環境または Jakarta EE アプリケーションクライアントコンテナー :

        • sessionMode が Session.SESSION_TRANSACTED に設定されている場合、セッションはローカルトランザクションを使用します。ローカルトランザクションは、セッションの commit または rollback メソッドを呼び出すことにより、後でコミットまたはロールバックできます。
        • sessionMode が Session.CLIENT_ACKNOWLEDGESession.AUTO_ACKNOWLEDGESession.DUPS_OK_ACKNOWLEDGE のいずれかに設定されている場合。その後、セッションは非トランザクションになり、このセッションで受信されたメッセージは sessionMode の値に従って確認されます。これらの確認応答モードの意味の定義については、以下のリンクを参照してください。

        Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがある場合 :

        • 引数 sessionMode は無視されます。セッションは JTA トランザクションに参加し、セッションの commit または rollback メソッドを呼び出すことによってではなく、そのトランザクションがコミットまたはロールバックされるときにコミットまたはロールバックされます。引数は無視されるため、このメソッドの代わりに、引数のない createSession() を使用することをお勧めします。

        Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがない場合 :

        • sessionMode が Session.AUTO_ACKNOWLEDGE または Session.DUPS_OK_ACKNOWLEDGE に設定されている場合、セッションは処理されず、メッセージは sessionMode の値に従って確認されます。
        • sessionMode が Session.CLIENT_ACKNOWLEDGE に設定されている場合、Jakarta Messaging プロバイダーは、指定されたパラメーターを無視して、代わりに非トランザクションの自動確認済みセッションを提供することをお勧めします。ただし、JMS プロバイダーは、代わりに非トランザクションセッションにクライアント確認を提供する場合があります。
        • sessionMode が Session.SESSION_TRANSACTED に設定されている場合、Jakarta Messaging プロバイダーは、指定されたパラメーターを無視し、代わりに非トランザクションの自動確認済みセッションを提供することをお勧めします。ただし、JMS プロバイダーは、代わりにローカルトランザクションセッションを提供する場合があります。
        • Session.CLIENT_ACKNOWLEDGE または Session.SESSION_TRANSACTED を使用するアプリケーションは移植できない場合があるため、アプリケーションでは値 Session.AUTO_ACKNOWLEDGE および Session.DUPS_OK_ACKNOWLEDGE のみを使用することをお勧めします。

        Jakarta EE Web および EJB コンテナーで実行されているアプリケーションは、接続ごとに複数のアクティブな(閉じられていない) Session オブジェクトを作成しようとしてはなりません。この接続に対してアクティブな Session オブジェクトがすでに存在しているときに、このメソッドが Jakarta EE Web または EJB コンテナーで呼び出されると、JMSException がスローされる場合があります。

        パラメーター:
        sessionMode - この値が無視される上記の場合を除いて、使用されるセッションモードを指定します。有効な値は JMSContext.SESSION_TRANSACTEDJMSContext.CLIENT_ACKNOWLEDGEJMSContext.AUTO_ACKNOWLEDGEJMSContext.DUPS_OK_ACKNOWLEDGE です。
        戻り値:
        新しく作成されたセッション
        例外:
        JMSException - Connection オブジェクトが原因でセッションの作成に失敗した場合
        • いくつかの内部エラー
        • 特定のトランザクションと確認応答モードのサポートの欠如、または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されており、この接続に対してアクティブなセッションがすでに存在しているためです。
        導入:
        JMS 2.0
        関連事項:
        Session.SESSION_TRANSACTED, Session.AUTO_ACKNOWLEDGE, Session.CLIENT_ACKNOWLEDGE, Session.DUPS_OK_ACKNOWLEDGE, createSession(boolean, int), createSession()
      • createSession

        Session createSession()
                       throws JMSException
        引数を指定せずに Session オブジェクトを作成します。

        作成されるセッションの動作は、このメソッドが Java SE 環境で呼び出されるか、Jakarta EE アプリケーションクライアントコンテナーで呼び出されるか、Jakarta EE Web または EJB コンテナーで呼び出されるかによって異なります。このメソッドが Jakarta EE Web または EJB コンテナーで呼び出される場合、セッションの動作は、進行中のアクティブな JTA トランザクションがあるかどうかによっても異なります。

        Java SE 環境または Jakarta EE アプリケーションクライアントコンテナー :

        • セッションは処理されず、受信メッセージは Session.AUTO_ACKNOWLEDGE の確認モードを使用して自動的に確認されます。この確認モードの意味の定義については、以下のリンクを参照してください。

        Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがある場合 :

        • セッションは JTA トランザクションに参加し、セッションの commit または rollback メソッドを呼び出すことによってではなく、そのトランザクションがコミットまたはロールバックされるときにコミットまたはロールバックされます。

        Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがない場合 :

        • セッションは処理されず、受信メッセージは Session.AUTO_ACKNOWLEDGE の確認モードを使用して自動的に確認されます。この確認モードの意味の定義については、以下のリンクを参照してください。

        Jakarta EE Web および EJB コンテナーで実行されているアプリケーションは、接続ごとに複数のアクティブな(閉じられていない) Session オブジェクトを作成しようとしてはなりません。この接続に対してアクティブな Session オブジェクトがすでに存在しているときに、このメソッドが Jakarta EE Web または EJB コンテナーで呼び出されると、JMSException がスローされる場合があります。

        戻り値:
        新しく作成されたセッション
        例外:
        JMSException - Connection オブジェクトが原因でセッションの作成に失敗した場合
        • 内部エラーまたは
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されており、この接続に対してアクティブなセッションがすでに存在しているためです。
        導入:
        JMS 2.0
        関連事項:
        Session.AUTO_ACKNOWLEDGE, createSession(boolean, int), createSession(int)
      • getClientID

        StringSE getClientID()
                    throws JMSException
        この接続のクライアント識別子を取得します。

        この値は、Jakarta Messaging プロバイダーに固有です。これは、管理者が ConnectionFactory オブジェクトで事前構成するか、setClientID メソッドを呼び出してアプリケーションによって動的に割り当てられます。

        戻り値:
        一意のクライアント識別子
        例外:
        JMSException - 内部エラーのために、Jakarta Messaging プロバイダーがこの接続のクライアント ID を返せなかった場合。
      • setClientID

        void setClientID​(StringSE clientID)
                  throws JMSException
        この接続のクライアント識別子を設定します。

        Jakarta Messaging クライアントのクライアント ID を割り当てるための推奨される方法は、クライアント固有の ConnectionFactory オブジェクトで構成し、それが作成する Connection オブジェクトに透過的に割り当てることです。

        あるいは、クライアントはプロバイダー固有の値を使用して接続のクライアント識別子を設定できます。接続のクライアント識別子を明示的に設定する機能は、管理上構成された識別子を上書きするメカニズムではありません。管理上指定された識別子が存在しない場合のために提供されています。存在する場合、それを設定して変更しようとすると、IllegalStateException をスローする必要があります。クライアントがクライアント識別子を明示的に設定する場合は、接続を作成した直後で、接続で他のアクションが実行される前に設定する必要があります。この後、クライアント識別子の設定は IllegalStateException をスローするプログラミングエラーになります。

        クライアント識別子の目的は、接続とそのオブジェクトを、プロバイダーによってクライアントに代わって維持される状態に関連付けることです。Jakarta Messaging API によって識別される唯一のそのような状態は、永続的なサブスクリプションをサポートするために必要なものです。

        このメソッドが呼び出されたときに同じ clientID との別の接続がすでに実行されている場合、Jakarta Messaging プロバイダーは重複する ID を検出して InvalidClientIDException をスローする必要があります。

        このメソッドは、Jakarta EE Web または EJB アプリケーションでは使用しないでください。保証されていませんが、JMSException がスローされる可能性があります。

        パラメーター:
        clientID - 一意のクライアント識別子
        例外:
        JMSException - 次のいずれかの理由により、Jakarta Messaging プロバイダーが接続のクライアント ID の設定に失敗した場合:
        • 内部エラーが発生した、または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
        InvalidClientIDException - Jakarta Messaging クライアントが無効または重複したクライアント ID を指定した場合。
        IllegalStateException - Jakarta Messaging クライアントが接続のクライアント ID を間違った時間に設定しようとした場合、または管理上構成されている場合。
      • getMetaData

        ConnectionMetaData getMetaData()
                                throws JMSException
        この接続のメタデータを取得します。
        戻り値:
        接続メタデータ
        例外:
        JMSException - Jakarta Messaging プロバイダーがこの接続の接続メタデータの取得に失敗した場合。
        関連事項:
        ConnectionMetaData
      • getExceptionListener

        ExceptionListener getExceptionListener()
                                        throws JMSException
        この接続の ExceptionListener オブジェクトを取得します。すべての Connection に ExceptionListener が関連付けられているわけではありません。
        戻り値:
        この接続の ExceptionListener、または null。この接続に関連付けられている ExceptionListener がない場合。
        例外:
        JMSException - Jakarta Messaging プロバイダーがこの接続の ExceptionListener の取得に失敗した場合。
        関連事項:
        setExceptionListener(jakarta.jms.ExceptionListener)
      • setExceptionListener

        void setExceptionListener​(ExceptionListener listener)
                           throws JMSException
        この接続の例外リスナーを設定します。

        Jakarta Messaging プロバイダーは、接続に重大な問題を検出すると、接続の ExceptionListener が登録されているかどうかを通知します。これを行うには、リスナーの onException メソッドを呼び出し、問題を説明する JMSException オブジェクトを渡します。

        例外リスナーを使用すると、クライアントに問題を非同期的に通知できます。一部の接続はメッセージのみを消費するため、接続が失敗したことを知る方法が他にありません。

        接続は、その ExceptionListener の実行を直列化します。

        Jakarta Messaging プロバイダーは、クライアントに通知する前に、接続の問題自体を解決する必要があります。

        このメソッドは、Jakarta EE Web または EJB アプリケーションでは使用しないでください。保証されていませんが、JMSException がスローされる可能性があります。

        パラメーター:
        listener - 例外リスナー
        例外:
        JMSException - Jakarta Messaging プロバイダーが次のいずれかの理由で例外リスナーの設定に失敗した場合:
        • 内部エラーが発生した、または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
      • start

        void start()
            throws JMSException
        接続による受信メッセージの配信を開始(または再開)します。すでに開始されている接続での start の呼び出しは無視されます。
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージ配信の開始に失敗した場合。
        関連事項:
        stop()
      • stop

        void stop()
           throws JMSException
        接続による受信メッセージの配信を一時的に停止します。接続の start メソッドを使用して配信を再開できます。接続が停止すると、すべての接続のメッセージコンシューマーへの配信が禁止されます。同期受信ブロックであり、メッセージはメッセージリスナーに配信されません。

        接続を停止しても、メッセージを送信する機能には影響しません。すでに停止している接続での stop の呼び出しは無視されます。

        stop の呼び出しは、メッセージの配信が一時停止するまで戻りません。つまり、クライアントは、そのメッセージリスナーが呼び出されず、receive 呼び出しが戻るのを待っているすべての制御スレッドが、接続が再開されるまでメッセージを返さないという事実に依存できます。停止した接続の受信タイマーは進み続けるため、接続が停止している間は受信がタイムアウトする場合があります。

        stop が呼び出されたときにメッセージリスナーが実行されている場合、stop 呼び出しは、すべてのリスナーが戻るまで待機してから戻る必要があります。これらのメッセージリスナーが完了する間、それらは利用可能な接続の完全なサービスを持っている必要があります。

        ただし、独自の接続でメッセージリスナーから stop メソッドが呼び出されると、失敗して jakarta.jms.IllegalStateException がスローされるか、成功して接続が停止し、実行中の他のすべてのメッセージリスナーが戻るまでブロックされます。

        この場合、2 つの代替動作が許可されているため、移植性がないため、アプリケーションは自身の Connection のメッセージリスナーから stop を呼び出さないようにする必要があります。

        誤解を避けるために、stop が呼び出されたときにこの接続の例外リスナーが実行されている場合、stop 呼び出しが例外リスナーが戻るまで待機する必要はありません。

        このメソッドは、Jakarta EE Web または EJB アプリケーションでは使用しないでください。保証されていませんが、JMSException がスローされる可能性があります。

        例外:
        IllegalStateException - このメソッドは、独自の Connection 上の MessageListener によって呼び出されました
        JMSException - Jakarta Messaging プロバイダーが次のいずれかの理由でメッセージ配信の停止に失敗した場合:
        • 内部エラーが発生した、または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
        関連事項:
        start()
      • close

        void close()
            throws JMSException
        接続を閉じます。

        プロバイダーは通常、接続に代わって JVM の外部に重要なリソースを割り当てるため、クライアントはこれらのリソースが不要になったときに閉じる必要があります。これらのリソースを最終的に再利用するためにガベージコレクションに依存することは、十分なタイミングではない場合があります。

        閉じられた接続のセッション、プロデューサー、コンシューマーを閉じる必要はありません。

        接続を閉じると、すべての一時的な宛先が削除されます。

        このメソッドが呼び出された場合、メッセージ処理が正常な方法でシャットダウンされるまで、メソッドは復帰しません。これは、実行されていた可能性のあるすべてのメッセージリスナーが返され、保留中のすべての受信が返されたことを意味します。

        ただし、独自の接続でメッセージリスナーから close メソッドが呼び出されると、失敗して jakarta.jms.IllegalStateException がスローされるか、成功して接続が閉じられ、実行中の他のすべてのメッセージリスナーが返されるまでブロックされます。保留中のすべての受信呼び出しが完了しました。クローズが成功し、セッションの確認応答モードが AUTO_ACKNOWLEDGE に設定されている場合、onMessage 呼び出しが完了すると、現在のメッセージは引き続き自動的に確認応答されます。この場合、2 つの代替動作が許可されているため、移植性がないため、アプリケーションは独自の接続でメッセージリスナーから close を呼び出すことを避ける必要があります。

        close は、接続のセッションのコンシューマーで保留中のすべてのメッセージ受信を終了します。receive は、クローズ時に使用可能なメッセージがあったかどうかに応じて、メッセージまたは null を返します。接続の close が呼び出されたときに、1 つ以上の接続のセッションのメッセージリスナーがメッセージを処理している場合、接続とそのセッションのすべての機能は、Jakarta Messaging プロバイダーに制御を返すまで、それらのリスナーが利用できるようにしておく必要があります。

        この Connection の不完全な非同期送信操作が完了し、 CompletionListener コールバックが返されるまで、このメソッドは返ってはなりません。エラーが発生しない限り、不完全な送信は正常に完了できるようにする必要があります。

        誤解を避けるために、close が呼び出されたときにこの接続の例外リスナーが実行されている場合、close 呼び出しが例外リスナーが戻るまで待機する必要はありません。

        接続を閉じると、進行中のセッションのトランザクションがロールバックされます。セッションの作業が外部トランザクションマネージャーによって調整される場合、セッションの commit および rollback メソッドは使用されず、閉じられたセッションの作業の結果は、後でトランザクションマネージャーによって決定されます。接続を閉じても、クライアント確認済みセッションの確認は強制されません。

        CompletionListener コールバックメソッドは、独自の Connection close を呼び出さないでください。これを行うと、 IllegalStateException がスローされます。

        閉じた接続のセッションから受信したメッセージの acknowledge メソッドを呼び出すには、IllegalStateException をスローする必要があります。閉じた接続を閉じても、例外をスローしてはなりません。

        次で指定:
        インターフェース AutoCloseableSEclose 
        例外:
        IllegalStateException -
        • このメソッドは、 MessageListener によって独自の接続で呼び出されています。
        • このメソッドは、独自の接続 CompletionListener コールバックメソッドによって呼び出されました。
        JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが接続を閉じることができない場合。例: リソースの解放またはソケット接続のクローズに失敗すると、この例外がスローされる可能性があります。
      • createConnectionConsumer

        ConnectionConsumer createConnectionConsumer​(Destination destination,
                                                    StringSE messageSelector,
                                                    ServerSessionPool sessionPool,
                                                    int maxMessages)
                                             throws JMSException
        特定の宛先にこの接続(オプションの操作)の接続コンシューマーを作成します。

        これは、通常の Jakarta Messaging クライアントでは使用されないエキスパート機能です。

        この方法は、Jakarta EE Web または Enterprise Bean アプリケーションでは使用しないでください。これを行うと、JMSException がスローされる可能性がありますが、これは保証されていません。

        パラメーター:
        destination - アクセス先
        messageSelector - メッセージセレクター式に一致するプロパティを持つメッセージのみが配信されます。null または空の文字列の値は、メッセージコンシューマーにメッセージセレクタがないことを示します。
        sessionPool - この接続コンシューマーに関連付けるサーバーセッションプール
        maxMessages - 一度にサーバーセッションに割り当てることができるメッセージの最大数
        戻り値:
        接続コンシューマー
        例外:
        InvalidDestinationException - 無効な宛先が指定された場合。
        InvalidSelectorException - メッセージセレクタが無効な場合。
        JMSException - 次のいずれかの理由で Connection オブジェクトが接続コンシューマーの作成に失敗した場合:
        • 内部エラーが発生
        • sessionPool および messageSelector の無効な引数または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
        導入:
        JMS 1.1
        関連事項:
        ConnectionConsumer
      • createSharedConnectionConsumer

        ConnectionConsumer createSharedConnectionConsumer​(Topic topic,
                                                          StringSE subscriptionName,
                                                          StringSE messageSelector,
                                                          ServerSessionPool sessionPool,
                                                          int maxMessages)
                                                   throws JMSException
        指定された名前の共有非永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。

        これは、通常の Jakarta Messaging クライアントでは使用されないエキスパート機能です。

        このメソッドは、Jakarta EE Web または EJB アプリケーションでは使用しないでください。保証されていませんが、JMSException がスローされる可能性があります。

        パラメーター:
        topic - アクセスするトピック
        subscriptionName - 共有の非永続サブスクリプションを識別するために使用される名前
        messageSelector - メッセージセレクター式に一致するプロパティを持つメッセージのみが配信されます。null または空の文字列の値は、メッセージコンシューマーにメッセージセレクタがないことを示します。
        sessionPool - この接続コンシューマーに関連付けるサーバーセッションプール
        maxMessages - 一度にサーバーセッションに割り当てることができるメッセージの最大数
        戻り値:
        接続コンシューマー
        例外:
        IllegalStateException - QueueConnection で呼び出された場合
        InvalidDestinationException - 無効な宛先が指定された場合。
        InvalidSelectorException - メッセージセレクタが無効な場合。
        JMSException - 次のいずれかの理由で Connection オブジェクトが接続コンシューマーの作成に失敗した場合:
        • 内部エラーが発生
        • sessionPool および messageSelector の無効な引数または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
        導入:
        JMS 2.0
        関連事項:
        ConnectionConsumer
      • createDurableConnectionConsumer

        ConnectionConsumer createDurableConnectionConsumer​(Topic topic,
                                                           StringSE subscriptionName,
                                                           StringSE messageSelector,
                                                           ServerSessionPool sessionPool,
                                                           int maxMessages)
                                                    throws JMSException
        指定された名前の非共有永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。

        これは、通常の Jakarta Messaging クライアントでは使用されないエキスパート機能です。

        このメソッドは、Jakarta EE Web または EJB アプリケーションでは使用しないでください。保証されていませんが、JMSException がスローされる可能性があります。

        パラメーター:
        topic - アクセスするトピック
        subscriptionName - 非共有の永続サブスクリプションを識別するために使用される名前
        messageSelector - メッセージセレクター式に一致するプロパティを持つメッセージのみが配信されます。null または空の文字列の値は、メッセージコンシューマーにメッセージセレクタがないことを示します。
        sessionPool - この永続的な接続コンシューマーに関連付けるサーバーセッションプール
        maxMessages - 一度にサーバーセッションに割り当てることができるメッセージの最大数
        戻り値:
        耐久性のある接続コンシューマー
        例外:
        IllegalStateException - QueueConnection で呼び出された場合
        InvalidDestinationException - 無効な宛先が指定された場合。
        InvalidSelectorException - メッセージセレクタが無効な場合。
        JMSException - 次のいずれかの理由で Connection オブジェクトが接続コンシューマーの作成に失敗した場合:
        • 内部エラーが発生
        • sessionPool および messageSelector の無効な引数または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
        導入:
        JMS 1.1
        関連事項:
        ConnectionConsumer
      • createSharedDurableConnectionConsumer

        ConnectionConsumer createSharedDurableConnectionConsumer​(Topic topic,
                                                                 StringSE subscriptionName,
                                                                 StringSE messageSelector,
                                                                 ServerSessionPool sessionPool,
                                                                 int maxMessages)
                                                          throws JMSException
        指定した名前の共有永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。

        これは、通常の Jakarta Messaging クライアントでは使用されないエキスパート機能です。

        このメソッドは、Jakarta EE Web または EJB アプリケーションでは使用しないでください。保証されていませんが、JMSException がスローされる可能性があります。

        パラメーター:
        topic - アクセスするトピック
        subscriptionName - 共有永続サブスクリプションを識別するために使用される名前
        messageSelector - メッセージセレクター式に一致するプロパティを持つメッセージのみが配信されます。null または空の文字列の値は、メッセージコンシューマーにメッセージセレクタがないことを示します。
        sessionPool - この永続的な接続コンシューマーに関連付けるサーバーセッションプール
        maxMessages - 一度にサーバーセッションに割り当てることができるメッセージの最大数
        戻り値:
        耐久性のある接続コンシューマー
        例外:
        IllegalStateException - QueueConnection で呼び出された場合
        InvalidDestinationException - 無効な宛先が指定された場合。
        InvalidSelectorException - メッセージセレクタが無効な場合。
        JMSException - 次のいずれかの理由で Connection オブジェクトが接続コンシューマーの作成に失敗した場合:
        • 内部エラーが発生
        • sessionPool および messageSelector の無効な引数または
        • このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
        導入:
        JMS 2.0
        関連事項:
        ConnectionConsumer