public interface Connection extends AutoCloseableSE
Connection
オブジェクトは、Jakarta Messaging プロバイダーへのクライアントのアクティブな接続です。通常、Java 仮想マシン(JVM)の外部にプロバイダーリソースを割り当てます。接続は同時使用をサポートします。
接続にはいくつかの目的があります。
ConnectionMetaData
オブジェクトを提供します。ExceptionListener
オブジェクトをサポートします。接続の作成には認証と通信の設定が含まれるため、接続は比較的重いオブジェクトです。ほとんどのクライアントは、単一の接続ですべてのメッセージングを実行します。他のより高度なアプリケーションは、いくつかの接続を使用する場合があります。Jakarta Messaging API は、複数の接続を使用する理由を設計していません。ただし、そのための運用上の理由がある場合があります。
Jakarta Messaging クライアントは通常、接続、1 つ以上のセッション、いくつかのメッセージプロデューサーとコンシューマーを作成します。接続が作成されると、停止モードになります。つまり、メッセージは配信されていません。
セットアップが完了するまで(つまり、すべてのメッセージコンシューマーが作成されるまで)、接続を停止モードのままにするのが一般的です。その時点で、クライアントは接続の start
メソッドを呼び出し、メッセージが接続のコンシューマーに到着し始めます。このセットアップ規則により、クライアントがまだセットアップを行っている間に非同期メッセージが配信されることによるクライアントの混乱を最小限に抑えることができます。
接続はすぐに開始でき、セットアップは後で行うことができます。これを行うクライアントは、セットアップの処理中に非同期メッセージ配信を処理できるように準備する必要があります。
メッセージプロデューサーは、接続が停止しているときにメッセージを送信できます。
ConnectionFactory
, QueueConnection
, TopicConnection
修飾子と型 | メソッドと説明 |
---|---|
void | close() 接続を閉じます。 |
ConnectionConsumer | createConnectionConsumer(Destination destination, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) 特定の宛先にこの接続(オプションの操作)の接続コンシューマーを作成します。 |
ConnectionConsumer | createDurableConnectionConsumer(Topic topic, StringSE subscriptionName, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) 指定された名前の非共有永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。 |
Session | createSession() 引数を指定せずに Session オブジェクトを作成します。 |
Session | createSession(boolean transacted, int acknowledgeMode) transacted および acknowledgeMode を指定して、Session オブジェクトを作成します。 |
Session | createSession(int sessionMode) sessionMode を指定して、Session オブジェクトを作成します。 |
ConnectionConsumer | createSharedConnectionConsumer(Topic topic, StringSE subscriptionName, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) 指定された名前の共有非永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。 |
ConnectionConsumer | createSharedDurableConnectionConsumer(Topic topic, StringSE subscriptionName, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) 指定した名前の共有永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。 |
StringSE | getClientID() この接続のクライアント識別子を取得します。 |
ExceptionListener | getExceptionListener() この接続の ExceptionListener オブジェクトを取得します。 |
ConnectionMetaData | getMetaData() この接続のメタデータを取得します。 |
void | setClientID(StringSE clientID) この接続のクライアント識別子を設定します。 |
void | setExceptionListener(ExceptionListener listener) この接続の例外リスナーを設定します。 |
void | start() 接続による受信メッセージの配信を開始(または再開)します。 |
void | stop() 接続による受信メッセージの配信を一時的に停止します。 |
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_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 の場合、この値が無視される上記の場合を除いて、セッションによって受信されたメッセージがどのように確認されるかを示します。JMSException
- Connection
オブジェクトが原因でセッションの作成に失敗した場合Session.AUTO_ACKNOWLEDGE
, Session.CLIENT_ACKNOWLEDGE
, Session.DUPS_OK_ACKNOWLEDGE
, createSession(int)
, 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_ACKNOWLEDGE
、Session.AUTO_ACKNOWLEDGE
、Session.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_TRANSACTED
、JMSContext.CLIENT_ACKNOWLEDGE
、JMSContext.AUTO_ACKNOWLEDGE
、JMSContext.DUPS_OK_ACKNOWLEDGE
です。JMSException
- Connection
オブジェクトが原因でセッションの作成に失敗した場合Session.SESSION_TRANSACTED
, Session.AUTO_ACKNOWLEDGE
, Session.CLIENT_ACKNOWLEDGE
, Session.DUPS_OK_ACKNOWLEDGE
, createSession(boolean, int)
, 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 トランザクションがある場合 :
commit
または rollback
メソッドを呼び出すことによってではなく、そのトランザクションがコミットまたはロールバックされるときにコミットまたはロールバックされます。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがない場合 :
Session.AUTO_ACKNOWLEDGE
の確認モードを使用して自動的に確認されます。この確認モードの意味の定義については、以下のリンクを参照してください。Jakarta EE Web および EJB コンテナーで実行されているアプリケーションは、接続ごとに複数のアクティブな(閉じられていない) Session
オブジェクトを作成しようとしてはなりません。この接続に対してアクティブな Session
オブジェクトがすでに存在しているときに、このメソッドが Jakarta EE Web または EJB コンテナーで呼び出されると、JMSException
がスローされる場合があります。
JMSException
- Connection
オブジェクトが原因でセッションの作成に失敗した場合Session.AUTO_ACKNOWLEDGE
, createSession(boolean, int)
, createSession(int)
StringSE getClientID() throws JMSException
この値は、Jakarta Messaging プロバイダーに固有です。これは、管理者が ConnectionFactory
オブジェクトで事前構成するか、setClientID
メソッドを呼び出してアプリケーションによって動的に割り当てられます。
JMSException
- 内部エラーのために、Jakarta Messaging プロバイダーがこの接続のクライアント ID を返せなかった場合。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 の設定に失敗した場合:InvalidClientIDException
- Jakarta Messaging クライアントが無効または重複したクライアント ID を指定した場合。IllegalStateException
- Jakarta Messaging クライアントが接続のクライアント ID を間違った時間に設定しようとした場合、または管理上構成されている場合。ConnectionMetaData getMetaData() throws JMSException
JMSException
- Jakarta Messaging プロバイダーがこの接続の接続メタデータの取得に失敗した場合。ConnectionMetaData
ExceptionListener getExceptionListener() throws JMSException
ExceptionListener
オブジェクトを取得します。すべての Connection
に ExceptionListener
が関連付けられているわけではありません。ExceptionListener
、または null。この接続に関連付けられている ExceptionListener
がない場合。JMSException
- Jakarta Messaging プロバイダーがこの接続の ExceptionListener
の取得に失敗した場合。setExceptionListener(jakarta.jms.ExceptionListener)
void setExceptionListener(ExceptionListener listener) throws JMSException
Jakarta Messaging プロバイダーは、接続に重大な問題を検出すると、接続の ExceptionListener
が登録されているかどうかを通知します。これを行うには、リスナーの onException
メソッドを呼び出し、問題を説明する JMSException
オブジェクトを渡します。
例外リスナーを使用すると、クライアントに問題を非同期的に通知できます。一部の接続はメッセージのみを消費するため、接続が失敗したことを知る方法が他にありません。
接続は、その ExceptionListener
の実行を直列化します。
Jakarta Messaging プロバイダーは、クライアントに通知する前に、接続の問題自体を解決する必要があります。
このメソッドは、Jakarta EE Web または EJB アプリケーションでは使用しないでください。保証されていませんが、JMSException
がスローされる可能性があります。
listener
- 例外リスナー JMSException
- Jakarta Messaging プロバイダーが次のいずれかの理由で例外リスナーの設定に失敗した場合:void start() throws JMSException
start
の呼び出しは無視されます。JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージ配信の開始に失敗した場合。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 プロバイダーが次のいずれかの理由でメッセージ配信の停止に失敗した場合:start()
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
をスローする必要があります。閉じた接続を閉じても、例外をスローしてはなりません。
AutoCloseableSE
の closeSE
IllegalStateException
-JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが接続を閉じることができない場合。例: リソースの解放またはソケット接続のクローズに失敗すると、この例外がスローされる可能性があります。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
の無効な引数またはConnectionConsumer
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
の無効な引数またはConnectionConsumer
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
の無効な引数またはConnectionConsumer
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
の無効な引数またはConnectionConsumer
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.