インターフェース Connection
- すべてのスーパーインターフェース:
AutoCloseableSE
- すべての既知のサブインターフェース:
QueueConnection、TopicConnection、XAConnection、XAQueueConnection、XATopicConnection
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
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明voidclose()接続を閉じます。createConnectionConsumer(Destination destination, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) 特定の宛先にこの接続(オプションの操作)の接続コンシューマーを作成します。createDurableConnectionConsumer(Topic topic, StringSE subscriptionName, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) 指定された名前の非共有永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。引数を指定せずにSessionオブジェクトを作成します。createSession(boolean transacted, int acknowledgeMode) transactedおよびacknowledgeModeを指定して、Sessionオブジェクトを作成します。createSession(int sessionMode) sessionModeを指定して、Sessionオブジェクトを作成します。createSharedConnectionConsumer(Topic topic, StringSE subscriptionName, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) 指定された名前の共有非永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。createSharedDurableConnectionConsumer(Topic topic, StringSE subscriptionName, StringSE messageSelector, ServerSessionPool sessionPool, int maxMessages) 指定した名前の共有永続サブスクリプションを使用して、特定のトピックでこの接続(オプションの操作)の接続コンシューマーを作成します。この接続のクライアント識別子を取得します。この接続のExceptionListenerオブジェクトを取得します。この接続のメタデータを取得します。voidsetClientID(StringSE clientID) この接続のクライアント識別子を設定します。voidsetExceptionListener(ExceptionListener listener) この接続の例外リスナーを設定します。voidstart()接続による受信メッセージの配信を開始(または再開)します。voidstop()接続による受信メッセージの配信を一時的に停止します。
メソッドの詳細
createSession
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オブジェクトが原因でセッションの作成に失敗した場合- いくつかの内部エラー
- 特定のトランザクションと確認応答モードのサポートの欠如、または
- このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されており、この接続に対してアクティブなセッションがすでに存在しているためです。
- 導入:
- JMS 1.1
- 関連事項:
createSession
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オブジェクトが原因でセッションの作成に失敗した場合- いくつかの内部エラー
- 特定のトランザクションと確認応答モードのサポートの欠如、または
- このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されており、この接続に対してアクティブなセッションがすでに存在しているためです。
- 導入:
- JMS 2.0
- 関連事項:
createSession
引数を指定せずに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
- 関連事項:
- セッションは処理されず、受信メッセージは
getClientID
この接続のクライアント識別子を取得します。この値は、Jakarta Messaging プロバイダーに固有です。これは、管理者が
ConnectionFactoryオブジェクトで事前構成するか、setClientIDメソッドを呼び出してアプリケーションによって動的に割り当てられます。- 戻り値:
- 一意のクライアント識別子
- 例外:
JMSException- 内部エラーのために、Jakarta Messaging プロバイダーがこの接続のクライアント ID を返せなかった場合。
setClientID
この接続のクライアント識別子を設定します。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
この接続のメタデータを取得します。- 戻り値:
- 接続メタデータ
- 例外:
JMSException- Jakarta Messaging プロバイダーがこの接続の接続メタデータの取得に失敗した場合。- 関連事項:
getExceptionListener
この接続のExceptionListenerオブジェクトを取得します。すべてのConnectionにExceptionListenerが関連付けられているわけではありません。- 戻り値:
- この接続の
ExceptionListener、または null。この接続に関連付けられているExceptionListenerがない場合。 - 例外:
JMSException- Jakarta Messaging プロバイダーがこの接続のExceptionListenerの取得に失敗した場合。- 関連事項:
setExceptionListener
この接続の例外リスナーを設定します。Jakarta Messaging プロバイダーは、接続に重大な問題を検出すると、接続の
ExceptionListenerが登録されているかどうかを通知します。これを行うには、リスナーのonExceptionメソッドを呼び出し、問題を説明するJMSExceptionオブジェクトを渡します。例外リスナーを使用すると、クライアントに問題を非同期的に通知できます。一部の接続はメッセージのみを消費するため、接続が失敗したことを知る方法が他にありません。
接続は、その
ExceptionListenerの実行を直列化します。Jakarta Messaging プロバイダーは、クライアントに通知する前に、接続の問題自体を解決する必要があります。
このメソッドは、Jakarta EE Web または EJB アプリケーションでは使用しないでください。保証されていませんが、
JMSExceptionがスローされる可能性があります。- パラメーター:
listener- 例外リスナー- 例外:
JMSException- Jakarta Messaging プロバイダーが次のいずれかの理由で例外リスナーの設定に失敗した場合:- 内部エラーが発生した、または
- このメソッドは Jakarta EE Web または EJB アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
start
接続による受信メッセージの配信を開始(または再開)します。すでに開始されている接続でのstartの呼び出しは無視されます。- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージ配信の開始に失敗した場合。- 関連事項:
stop
接続による受信メッセージの配信を一時的に停止します。接続の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 アプリケーションで呼び出されました (この場合、例外がスローされることは保証されていませんが)
- 関連事項:
close
接続を閉じます。プロバイダーは通常、接続に代わって 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のclose - 例外:
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
- 関連事項:
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
- 関連事項: