クラス SingleConnectionFactory
- 実装されたすべてのインターフェース:
ConnectionFactoryEE
、ExceptionListenerEE
、QueueConnectionFactoryEE
、TopicConnectionFactoryEE
、DisposableBean
、InitializingBean
、Lifecycle
- 既知の直属サブクラス
CachingConnectionFactory
createConnection()
呼び出しから同じ接続を返し、Connection.close()
EE への呼び出しを無視する JMS ConnectionFactory アダプター。JMS 接続モデルによると、これは完全にスレッドセーフです(JDBC などとは対照的)。例外が発生した場合、共有接続を自動的に回復できます。特定の JMS 接続を直接渡すか、このファクトリに特定のターゲット ConnectionFactory を介して遅延接続を作成させることができます。このファクトリは通常、JMS 1.1 と JMS 1.0.2 API で動作します。
JMS 1.0.2 API を使用する場合、この ConnectionFactory は実行時に使用される JMS API メソッドに従ってキュー / トピックモードに切り替わります。それぞれ createQueueConnection
および createTopicConnection
はキュー / トピックモードになります。一般的な createConnection
呼び出しは、両方のモードを提供できる JMS 1.1 接続につながります。
Spring Framework 5 の時点で、このクラスは JMS 2.0 JMSContext
呼び出しをサポートしているため、実行時に JMS 2.0 API が存在する必要があります。それでも、アプリケーションのセットアップによって実際の JMS 2.0 呼び出しがトリガーされない限り、JMS 1.1 ドライバー(JMS 2.0 API にバインドされている)に対して実行できます。
複数の JmsTemplate
呼び出しに同じ接続を使用し続け、そに ConnectionFactory をプールすることなく、テスト環境およびスタンドアロン環境で役立ちます。これは、トランザクションを同時に実行している場合でも、任意の数のトランザクションにまたがることがあります。
Spring のメッセージリスナーコンテナーは、各リスナーコンテナーインスタンス内での共有接続の使用をサポートすることに注意してください。SingleConnectionFactory を組み合わせて使用することは、 複数のリスナーコンテナー間で単一の JMS 接続を共有する場合にのみ意味があります。
- 導入:
- 1.1
- 作成者:
- Juergen Hoeller, Mark Pollack
- 関連事項:
フィールドサマリー
コンストラクターのサマリー
コンストラクター説明Bean スタイルの使用のために新しい SingleConnectionFactory を作成します。SingleConnectionFactory
(ConnectionEE targetConnection) 指定された接続を常に返す新しい SingleConnectionFactory を作成します。SingleConnectionFactory
(ConnectionFactoryEE targetConnectionFactory) 指定されたターゲット ConnectionFactory を介して遅延して作成される単一の接続を常に返す新しい SingleConnectionFactory を作成します。メソッドのサマリー
修飾子と型メソッド説明void
接続または ConnectionFactory が設定されていることを確認します。protected void
指定された接続を閉じます。createConnection
(StringSE username, StringSE password) createContext
(int sessionMode) createContext
(StringSE userName, StringSE password) createContext
(StringSE userName, StringSE password, int sessionMode) createQueueConnection
(StringSE username, StringSE password) protected SessionEE
createSession
(ConnectionEE con, IntegerSE mode) この ConnectionFactory のデフォルトセッションを作成し、必要に応じて JMS 1.0.2 スタイルのキュー / トピックモードに適応させます。createTopicConnection
(StringSE username, StringSE password) void
destroy()
基になる共有接続を閉じます。protected ConnectionEE
このテンプレートの ConnectionFactory を介して JMS 接続を作成します。protected StringSE
この ConnectionFactory によって作成および公開された単一の接続の JMS クライアント ID を返します(ある場合)。protected ConnectionEE
初期化された共有接続を取得します。protected ExceptionListenerEE
このファクトリによって作成された単一の接続に登録する必要がある JMS ExceptionListener 実装を返します(ある場合)。protected SessionEE
getSession
(ConnectionEE con, IntegerSE mode) (キャッシュされる可能性のある)セッションを取得するためのテンプレートメソッド。protected ConnectionEE
getSharedConnectionProxy
(ConnectionEE target) すべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、クローズ呼び出しを抑制します。存在する場合、単一の接続を遅延して作成するために使用されるターゲット ConnectionFactory を返します。void
基になる共有接続を初期化します。protected boolean
基本となる接続によって JMSException が報告されたときに、単一の接続を更新する必要があるかどうかを返します。boolean
現在基礎となる接続があるかどうかを確認します。void
基になる単一の接続を更新する例外リスナーコールバック。protected void
公開する前に、所定の接続を準備します。void
基礎となる共有接続をリセットして、次のアクセスで再初期化します。void
setClientId
(StringSE clientId) この ConnectionFactory によって作成および公開された単一の接続の JMS クライアント ID を指定します。void
setExceptionListener
(ExceptionListenerEE exceptionListener) このファクトリによって作成された単一の接続に登録する必要がある JMS ExceptionListener 実装を指定します。void
setReconnectOnException
(boolean reconnectOnException) 基礎となる接続によって JMSException が報告されたときに、単一の接続をリセットする(後で更新する)かどうかを指定します。void
setTargetConnectionFactory
(ConnectionFactoryEE targetConnectionFactory) 単一の接続を遅延して作成するために使用されるターゲット ConnectionFactory を設定します。void
start()
開始時に基礎となる共有接続を初期化します。void
stop()
停止時に基礎となる共有接続をリセットします。
フィールドの詳細
logger
コンストラクターの詳細
SingleConnectionFactory
public SingleConnectionFactory()Bean スタイルの使用のために新しい SingleConnectionFactory を作成します。SingleConnectionFactory
指定された接続を常に返す新しい SingleConnectionFactory を作成します。- パラメーター:
targetConnection
- 単一の接続
SingleConnectionFactory
指定されたターゲット ConnectionFactory を介して遅延して作成される単一の接続を常に返す新しい SingleConnectionFactory を作成します。- パラメーター:
targetConnectionFactory
- ターゲット ConnectionFactory
メソッドの詳細
setTargetConnectionFactory
単一の接続を遅延して作成するために使用されるターゲット ConnectionFactory を設定します。getTargetConnectionFactory
存在する場合、単一の接続を遅延して作成するために使用されるターゲット ConnectionFactory を返します。setClientId
この ConnectionFactory によって作成および公開された単一の接続の JMS クライアント ID を指定します。クライアント ID は、基盤となる JMS プロバイダーのすべてのアクティブな接続間で一意である必要があることに注意してください。さらに、クライアント ID は、元の ConnectionFactory がまだ割り当てていない場合にのみ割り当てることができます。
getClientId
この ConnectionFactory によって作成および公開された単一の接続の JMS クライアント ID を返します(ある場合)。setExceptionListener
このファクトリによって作成された単一の接続に登録する必要がある JMS ExceptionListener 実装を指定します。getExceptionListener
このファクトリによって作成された単一の接続に登録する必要がある JMS ExceptionListener 実装を返します(ある場合)。setReconnectOnException
public void setReconnectOnException(boolean reconnectOnException) 基礎となる接続によって JMSException が報告されたときに、単一の接続をリセットする(後で更新する)かどうかを指定します。デフォルトは "false" です。JMS プロバイダーの例外通知に基づいてリカバリを自動的にトリガーするには、これを "true" に切り替えます。
内部的には、これにより、特別な JMS ExceptionListener(この SingleConnectionFactory 自体)が基礎となる接続に登録されます。これは、必要に応じて、ユーザー指定の ExceptionListener と組み合わせることもできます。
isReconnectOnException
protected boolean isReconnectOnException()基本となる接続によって JMSException が報告されたときに、単一の接続を更新する必要があるかどうかを返します。afterPropertiesSet
public void afterPropertiesSet()接続または ConnectionFactory が設定されていることを確認します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
createConnection
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateConnectionEE
- 例外:
JMSExceptionEE
createConnection
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateConnectionEE
- 例外:
JMSExceptionEE
createQueueConnection
- 次で指定:
- インターフェース
QueueConnectionFactoryEE
のcreateQueueConnectionEE
- 例外:
JMSExceptionEE
createQueueConnection
public QueueConnectionEE createQueueConnection(StringSE username, StringSE password) throws JMSExceptionEE - 次で指定:
- インターフェース
QueueConnectionFactoryEE
のcreateQueueConnectionEE
- 例外:
JMSExceptionEE
createTopicConnection
- 次で指定:
- インターフェース
TopicConnectionFactoryEE
のcreateTopicConnectionEE
- 例外:
JMSExceptionEE
createTopicConnection
public TopicConnectionEE createTopicConnection(StringSE username, StringSE password) throws JMSExceptionEE - 次で指定:
- インターフェース
TopicConnectionFactoryEE
のcreateTopicConnectionEE
- 例外:
JMSExceptionEE
createContext
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateContextEE
createContext
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateContextEE
createContext
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateContextEE
createContext
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateContextEE
getConnection
初期化された共有接続を取得します。- 戻り値:
- 接続 (非
null
) - 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合- 関連事項:
onException
基になる単一の接続を更新する例外リスナーコールバック。- 次で指定:
- インターフェース
ExceptionListenerEE
のonExceptionEE
- 関連事項:
destroy
public void destroy()基になる共有接続を閉じます。この ConnectionFactory のプロバイダーは、適切なシャットダウンを行う必要があります。この Bean は DisposableBean を実装しているため、Bean ファクトリは、キャッシュされたシングルトンの破棄時にこれを自動的に呼び出します。
- 次で指定:
- インターフェース
DisposableBean
のdestroy
- 関連事項:
start
public void start()開始時に基礎となる共有接続を初期化します。stop
public void stop()停止時に基礎となる共有接続をリセットします。isRunning
public boolean isRunning()現在基礎となる接続があるかどうかを確認します。initConnection
基になる共有接続を初期化します。基礎となる接続がすでに存在する場合は、接続を閉じて再初期化します。
- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合- 関連事項:
doCreateConnection
このテンプレートの ConnectionFactory を介して JMS 接続を作成します。- 戻り値:
- 新しい JMS 接続
- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合
prepareConnection
公開する前に、所定の接続を準備します。デフォルトの実装では、ExceptionListener とクライアント ID が適用されます。サブクラスでオーバーライドできます。
- パラメーター:
con
- 準備する接続- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合- 関連事項:
getSession
(キャッシュされる可能性のある)セッションを取得するためのテンプレートメソッド。デフォルトの実装は常に
null
を返します。サブクラスは、特定のセッションハンドルを公開するためにこれをオーバーライドし、ラップされてここから返される生のセッションオブジェクトの作成のためにcreateSession(jakarta.jms.Connection, java.lang.Integer)
に委譲する場合があります。- パラメーター:
con
- 操作する JMS 接続mode
- セッション確認モード (Session.TRANSACTED
または共通モードの 1 つ)- 戻り値:
- 使用するセッション、または
null
は生の標準セッションの作成を示します - 例外:
JMSExceptionEE
- JMS API によってスローされた場合
createSession
この ConnectionFactory のデフォルトセッションを作成し、必要に応じて JMS 1.0.2 スタイルのキュー / トピックモードに適応させます。- パラメーター:
con
- 操作する JMS 接続mode
- セッション確認モード (Session.TRANSACTED
または共通モードの 1 つ)- 戻り値:
- 新しく作成されたセッション
- 例外:
JMSExceptionEE
- JMS API によってスローされた場合
resetConnection
public void resetConnection()基礎となる共有接続をリセットして、次のアクセスで再初期化します。closeConnection
指定された接続を閉じます。- パラメーター:
con
- 閉じる接続