public interface ConnectionFactory
ConnectionFactory
オブジェクトは、管理者が定義した一連の接続構成パラメーターをカプセル化します。クライアントはこれを使用して、Jakarta Messaging プロバイダーとの接続を作成します。ConnectionFactory
オブジェクトは Jakarta Messaging 管理対象オブジェクトであり、同時使用をサポートしています。
Jakarta Messaging 管理対象オブジェクトは、管理者が作成し、後で Jakarta Messaging クライアントが使用する構成情報を含むオブジェクトです。企業内で Jakarta Messaging API を管理するのが現実的です。
管理対象オブジェクトのインターフェースは、Java Naming and Directory Interface(JNDI)API に明示的に依存していませんが、Jakarta Messaging API は、Jakarta Messaging クライアントが JNDI 名前空間でルックアップすることにより、管理対象オブジェクトを見つけるという規則を確立します。
管理者は、名前空間の任意の場所に管理対象オブジェクトを配置できます。Jakarta Messaging API は命名ポリシーを定義していません。
Jakarta Messaging プロバイダーは、管理者が JNDI 名前空間で管理対象オブジェクトを作成および構成するために必要なツールを提供することが期待されています。管理対象オブジェクトの Jakarta Messaging プロバイダー実装は、すべての JNDI ネーミングコンテキストに格納できるように、javax.jndi.Referenceable
と java.io.Serializable
の両方にする必要があります。さらに、これらの実装は JavaBeans TM 設計パターンに従うことが推奨されます。
この戦略にはいくつかの利点があります。
管理対象オブジェクトは、リモートリソースを保持しないでください。そのルックアップでは、JNDI API 自体で使用されるもの以外のリモートリソースを使用しないでください。
クライアントは、管理対象オブジェクトをローカル Java オブジェクトと考える必要があります。調べると、隠れた副作用が発生したり、意外な量のローカルリソースを使用したりすることはできません。
Connection
, QueueConnectionFactory
, TopicConnectionFactory
修飾子と型 | メソッドと説明 |
---|---|
Connection | createConnection() デフォルトのユーザー ID で接続を作成します。 |
Connection | createConnection(StringSE userName, StringSE password) 指定されたユーザー ID で接続を作成します。 |
JMSContext | createContext() デフォルトのユーザー ID と未指定の sessionMode を使用して JMSContext を作成します。 |
JMSContext | createContext(int sessionMode) デフォルトのユーザー ID と指定されたセッションモードで JMSContext を作成します。 |
JMSContext | createContext(StringSE userName, StringSE password) 指定されたユーザー ID と指定されていない sessionMode を使用して JMSContext を作成します。 |
JMSContext | createContext(StringSE userName, StringSE password, int sessionMode) 指定されたユーザー ID と指定されたセッションモードで JMSContext を作成します。 |
Connection createConnection() throws JMSException
Connection.start
メソッドが明示的に呼び出されるまで、メッセージは配信されません。JMSException
- 内部エラーのために Jakarta Messaging プロバイダーが接続の作成に失敗した場合。JMSSecurityException
- 無効なユーザー名またはパスワードが原因でクライアント認証が失敗した場合。Connection createConnection(StringSE userName, StringSE password) throws JMSException
Connection.start
メソッドが明示的に呼び出されるまで、メッセージは配信されません。userName
- 呼び出し元のユーザー名 password
- 発信者のパスワード JMSException
- 内部エラーのために Jakarta Messaging プロバイダーが接続の作成に失敗した場合。JMSSecurityException
- 無効なユーザー名またはパスワードが原因でクライアント認証が失敗した場合。JMSContext createContext()
新しい JMSContext が使用する接続とセッションが作成されます。接続は停止モードで作成されますが、JMSConsumer が作成されると自動的に開始されます。
作成されるセッションの動作は、このメソッドが Java SE 環境で呼び出されるか、Jakarta EE アプリケーションクライアントコンテナーで呼び出されるか、Jakarta EE Web または EJB コンテナーで呼び出されるかによって異なります。このメソッドが Jakarta EE Web または EJB コンテナーで呼び出される場合、セッションの動作は、進行中のアクティブな JTA トランザクションがあるかどうかによっても異なります。
Java SE 環境または Jakarta EE アプリケーションクライアントコンテナー :
JMSContext.AUTO_ACKNOWLEDGE
の確認モードを使用して自動的に確認されます。この確認モードの意味の定義については、以下のリンクを参照してください。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがある場合 :
JMSContext
の commit
または rollback
メソッドを呼び出すことではなく、コミットまたはロールバックされます。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがない場合 :
JMSContext.AUTO_ACKNOWLEDGE
の確認モードを使用して自動的に確認されます。この確認モードの意味の定義については、以下のリンクを参照してください。JMSRuntimeException
- 内部エラーのために Jakarta Messaging プロバイダーが JMSContext の作成に失敗した場合 JMSSecurityRuntimeException
- 無効なユーザー名またはパスワードが原因でクライアント認証が失敗した場合。JMSContext.AUTO_ACKNOWLEDGE
, createContext(int)
, createContext(java.lang.String, java.lang.String)
, createContext(java.lang.String, java.lang.String, int)
, JMSContext.createContext(int)
JMSContext createContext(StringSE userName, StringSE password)
新しい JMSContext が使用する接続とセッションが作成されます。接続は停止モードで作成されますが、JMSConsumer が起動すると自動的に開始されます。
作成されるセッションの動作は、このメソッドが Java SE 環境で呼び出されるか、Jakarta EE アプリケーションクライアントコンテナーで呼び出されるか、Jakarta EE Web または EJB コンテナーで呼び出されるかによって異なります。このメソッドが Jakarta EE Web または EJB コンテナーで呼び出される場合、セッションの動作は、進行中のアクティブな JTA トランザクションがあるかどうかによっても異なります。
Java SE 環境または Jakarta EE アプリケーションクライアントコンテナー :
JMSContext.AUTO_ACKNOWLEDGE
の確認モードを使用して自動的に確認されます。この確認モードの意味の定義については、以下のリンクを参照してください。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがある場合 :
JMSContext
の commit
または rollback
メソッドを呼び出すことではなく、コミットまたはロールバックされます。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがない場合 :
JMSContext.AUTO_ACKNOWLEDGE
の確認モードを使用して自動的に確認されます。この確認モードの意味の定義については、以下のリンクを参照してください。userName
- 呼び出し元のユーザー名 password
- 発信者のパスワード JMSRuntimeException
- 内部エラーのために Jakarta Messaging プロバイダーが JMSContext の作成に失敗した場合 JMSSecurityRuntimeException
- 無効なユーザー名またはパスワードが原因でクライアント認証が失敗した場合。JMSContext.AUTO_ACKNOWLEDGE
, createContext()
, createContext(int)
, createContext(java.lang.String, java.lang.String, int)
, JMSContext.createContext(int)
JMSContext createContext(StringSE userName, StringSE password, int sessionMode)
新しい JMSContext が使用する接続とセッションが作成されます。JMSContext は停止モードで作成されますが、JMSConsumer が作成されると自動的に開始されます。
sessionMode
引数を設定する効果は、このメソッドが Java SE 環境で呼び出されるか、Jakarta EE アプリケーションクライアントコンテナーで呼び出されるか、Jakarta EE Web または EJB コンテナーで呼び出されるかによって異なります。このメソッドが Jakarta EE Web または EJB コンテナーで呼び出された場合、sessionMode
引数を設定する効果は、アクティブな JTA トランザクションが進行中かどうかによっても異なります。
Java SE 環境または Jakarta EE アプリケーションクライアントコンテナー :
sessionMode
が JMSContext.SESSION_TRANSACTED
に設定されている場合、セッションはローカルトランザクションを使用します。ローカルトランザクションは、JMSContext
の commit
または rollback
メソッドを呼び出すことにより、後でコミットまたはロールバックできます。sessionMode
が JMSContext.CLIENT_ACKNOWLEDGE
、JMSContext.AUTO_ACKNOWLEDGE
、JMSContext.DUPS_OK_ACKNOWLEDGE
のいずれかに設定されている場合。その後、セッションは非トランザクションになり、このセッションで受信されたメッセージは sessionMode
の値に従って確認されます。これらの確認応答モードの意味の定義については、以下のリンクを参照してください。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがある場合 :
sessionMode
は無視されます。セッションは JTA トランザクションに参加し、JMSContext
の commit
または rollback
メソッドを呼び出すことではなく、そのトランザクションがコミットまたはロールバックされるときにコミットまたはロールバックされます。引数は無視されるため、開発者はこのメソッドの代わりに createContext(String userName, String password)
を使用することをお勧めします。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがない場合 :
acknowledgeMode
は、JMSContext.AUTO_ACKNOWLEDGE
または JMSContext.DUPS_OK_ACKNOWLEDGE
のいずれかに設定する必要があります。セッションは非トランザクションであり、このセッションで受信されたメッセージは acknowledgeMode
の値に従って自動的に確認されます。これらの確認応答モードの意味の定義については、以下のリンクを参照してください。JMSContext.SESSION_TRANSACTED
および JMSContext.CLIENT_ACKNOWLEDGE
の値は使用できません。userName
- 呼び出し元のユーザー名 password
- 発信者のパスワード sessionMode
- 4 つの可能なセッションモードのどれが使用されるかを示します。JMSContext.SESSION_TRANSACTED
、JMSContext.CLIENT_ACKNOWLEDGE
、JMSContext.AUTO_ACKNOWLEDGE
、JMSContext.DUPS_OK_ACKNOWLEDGE
です。JMSContext.AUTO_ACKNOWLEDGE
および JMSContext.DUPS_OK_ACKNOWLEDGE
です。この場合、値 JMSContext.TRANSACTED
および JMSContext.CLIENT_ACKNOWLEDGE
は許可されません。JMSRuntimeException
- 内部エラーのために Jakarta Messaging プロバイダーが JMSContext の作成に失敗した場合 JMSSecurityRuntimeException
- 無効なユーザー名またはパスワードが原因でクライアント認証が失敗した場合。JMSContext.SESSION_TRANSACTED
, JMSContext.CLIENT_ACKNOWLEDGE
, JMSContext.AUTO_ACKNOWLEDGE
, JMSContext.DUPS_OK_ACKNOWLEDGE
, createContext()
, createContext(int)
, createContext(java.lang.String, java.lang.String)
, JMSContext.createContext(int)
JMSContext createContext(int sessionMode)
新しい JMSContext が使用する接続とセッションが作成されます。JMSContext は停止モードで作成されますが、JMSConsumer が作成されると自動的に開始されます。
sessionMode
引数を設定する効果は、このメソッドが Java SE 環境で呼び出されるか、Jakarta EE アプリケーションクライアントコンテナーで呼び出されるか、Jakarta EE Web または EJB コンテナーで呼び出されるかによって異なります。このメソッドが Jakarta EE Web または EJB コンテナーで呼び出された場合、sessionMode
引数を設定する効果は、アクティブな JTA トランザクションが進行中かどうかによっても異なります。
Java SE 環境または Jakarta EE アプリケーションクライアントコンテナー :
sessionMode
が JMSContext.SESSION_TRANSACTED
に設定されている場合、セッションはローカルトランザクションを使用します。ローカルトランザクションは、JMSContext
の commit
または rollback
メソッドを呼び出すことにより、後でコミットまたはロールバックできます。sessionMode
が JMSContext.CLIENT_ACKNOWLEDGE
、JMSContext.AUTO_ACKNOWLEDGE
、JMSContext.DUPS_OK_ACKNOWLEDGE
のいずれかに設定されている場合。その後、セッションは非トランザクションになり、このセッションで受信されたメッセージは sessionMode
の値に従って確認されます。これらの確認応答モードの意味の定義については、以下のリンクを参照してください。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがある場合 :
sessionMode
は無視されます。セッションは JTA トランザクションに参加し、JMSContext
の commit
または rollback
メソッドを呼び出すことではなく、そのトランザクションがコミットまたはロールバックされるときにコミットまたはロールバックされます。引数は無視されるため、開発者はこのメソッドの代わりに createContext()
を使用することをお勧めします。Jakarta EE Web または EJB コンテナーで、進行中のアクティブな JTA トランザクションがない場合 :
acknowledgeMode
は、JMSContext.AUTO_ACKNOWLEDGE
または JMSContext.DUPS_OK_ACKNOWLEDGE
のいずれかに設定する必要があります。セッションは非トランザクションであり、このセッションで受信されたメッセージは acknowledgeMode
の値に従って自動的に確認されます。これらの確認応答モードの意味の定義については、以下のリンクを参照してください。JMSContext.SESSION_TRANSACTED
および JMSContext.CLIENT_ACKNOWLEDGE
の値は使用できません。sessionMode
- 4 つの可能なセッションモードのどれが使用されるかを示します。JMSContext.SESSION_TRANSACTED
、JMSContext.CLIENT_ACKNOWLEDGE
、JMSContext.AUTO_ACKNOWLEDGE
、JMSContext.DUPS_OK_ACKNOWLEDGE
です。JMSContext.AUTO_ACKNOWLEDGE
および JMSContext.DUPS_OK_ACKNOWLEDGE
です。この場合、値 JMSContext.TRANSACTED
および JMSContext.CLIENT_ACKNOWLEDGE
は許可されません。JMSRuntimeException
- 内部エラーのために Jakarta Messaging プロバイダーが JMSContext の作成に失敗した場合 JMSSecurityRuntimeException
- 無効なユーザー名またはパスワードが原因でクライアント認証が失敗した場合。JMSContext.SESSION_TRANSACTED
, JMSContext.CLIENT_ACKNOWLEDGE
, JMSContext.AUTO_ACKNOWLEDGE
, JMSContext.DUPS_OK_ACKNOWLEDGE
, createContext()
, createContext(java.lang.String, java.lang.String)
, createContext(java.lang.String, java.lang.String, int)
, JMSContext.createContext(int)
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.