クラス ConnectionFactoryUtils
java.lang.ObjectSE
org.springframework.jms.connection.ConnectionFactoryUtils
JMS
ConnectionFactory
EE を管理するためのヘルパークラス、特に特定の ConnectionFactory のトランザクション JMS リソースを取得するためのヘルパークラス。 主にフレームワーク内での内部使用のため。JmsTemplate
および DefaultMessageListenerContainer
で使用されます。
- 導入:
- 2.0
- 作成者:
- Juergen Hoeller
- 関連事項:
ネストされたクラスのサマリー
ネストされたクラスコンストラクターのサマリー
コンストラクター方法の概要
修飾子と型メソッド説明static SessionEE
doGetTransactionalSession
(ConnectionFactoryEE connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory) 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。static SessionEE
doGetTransactionalSession
(ConnectionFactoryEE connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory, boolean startConnection) 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。static SessionEE
getTargetSession
(SessionEE session) 指定されたセッションの最も内側のターゲットセッションを返します。static QueueSessionEE
getTransactionalQueueSession
(QueueConnectionFactoryEE cf, QueueConnectionEE existingCon, boolean synchedLocalTransactionAllowed) 現在のトランザクションと同期されている JMS QueueSession を取得します(ある場合)。static SessionEE
getTransactionalSession
(ConnectionFactoryEE cf, ConnectionEE existingCon, boolean synchedLocalTransactionAllowed) 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。static TopicSessionEE
getTransactionalTopicSession
(TopicConnectionFactoryEE cf, TopicConnectionEE existingCon, boolean synchedLocalTransactionAllowed) 現在のトランザクションと同期されている JMS TopicSession を取得します(ある場合)。static boolean
isSessionTransactional
(SessionEE session, ConnectionFactoryEE cf) 指定された JMS セッションがトランザクション対応かどうか、つまり、Spring のトランザクション機能によって現在のスレッドにバインドされているかどうかを判断します。static void
releaseConnection
(ConnectionEE con, ConnectionFactoryEE cf, boolean started) 指定された接続を解放し、必要に応じて停止し、最終的に閉じます。
コンストラクターの詳細
ConnectionFactoryUtils
public ConnectionFactoryUtils()
メソッドの詳細
releaseConnection
public static void releaseConnection(@Nullable ConnectionEE con, @Nullable ConnectionFactoryEE cf, boolean started) 指定された接続を解放し、必要に応じて停止し、最終的に閉じます。SmartConnectionFactory.shouldStop(jakarta.jms.Connection)
をチェックします(可能な場合)。これは本質的にJmsUtils.closeConnection(jakarta.jms.Connection)
のより洗練されたバージョンです。- パラメーター:
con
- リリースする接続 (これがnull
の場合、呼び出しは無視されます)cf
- 接続が取得された ConnectionFactory (null
の場合があります)started
- 接続がアプリケーションによって開始された可能性があるかどうか- 関連事項:
getTargetSession
指定されたセッションの最も内側のターゲットセッションを返します。指定されたセッションがプロキシの場合、非プロキシセッションが見つかるまでラップ解除されます。それ以外の場合、渡されたセッションはそのまま返されます。- パラメーター:
session
- アンラップするセッションプロキシ- 戻り値:
- 最も内側のターゲットセッション、またはプロキシがない場合は渡されたセッション
- 関連事項:
isSessionTransactional
public static boolean isSessionTransactional(@Nullable SessionEE session, @Nullable ConnectionFactoryEE cf) 指定された JMS セッションがトランザクション対応かどうか、つまり、Spring のトランザクション機能によって現在のスレッドにバインドされているかどうかを判断します。- パラメーター:
session
- チェックする JMS セッションcf
- セッションが発生した JMS ConnectionFactory- 戻り値:
- セッションがトランザクションかどうか
getTransactionalSession
@Nullable public static SessionEE getTransactionalSession(ConnectionFactoryEE cf, @Nullable ConnectionEE existingCon, boolean synchedLocalTransactionAllowed) throws JMSExceptionEE 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。- パラメーター:
cf
- ConnectionFactory がセッションを取得するexistingCon
- セッションを取得するための既存の JMS 接続 (null
の場合があります)synchedLocalTransactionAllowed
- Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。- 戻り値:
- トランザクションセッション、または見つからない場合は
null
- 例外:
JMSExceptionEE
- JMS 障害の場合
getTransactionalQueueSession
@Nullable public static QueueSessionEE getTransactionalQueueSession(QueueConnectionFactoryEE cf, @Nullable QueueConnectionEE existingCon, boolean synchedLocalTransactionAllowed) throws JMSExceptionEE 現在のトランザクションと同期されている JMS QueueSession を取得します(ある場合)。主に JMS 1.0.2 API での使用を目的としています。
- パラメーター:
cf
- ConnectionFactory がセッションを取得するexistingCon
- セッションを取得するための既存の JMS 接続 (null
の場合があります)synchedLocalTransactionAllowed
- Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。- 戻り値:
- トランザクションセッション、または見つからない場合は
null
- 例外:
JMSExceptionEE
- JMS 障害の場合
getTransactionalTopicSession
@Nullable public static TopicSessionEE getTransactionalTopicSession(TopicConnectionFactoryEE cf, @Nullable TopicConnectionEE existingCon, boolean synchedLocalTransactionAllowed) throws JMSExceptionEE 現在のトランザクションと同期されている JMS TopicSession を取得します(ある場合)。主に JMS 1.0.2 API での使用を目的としています。
- パラメーター:
cf
- ConnectionFactory がセッションを取得するexistingCon
- セッションを取得するための既存の JMS 接続 (null
の場合があります)synchedLocalTransactionAllowed
- Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。- 戻り値:
- トランザクションセッション、または見つからない場合は
null
- 例外:
JMSExceptionEE
- JMS 障害の場合
doGetTransactionalSession
@Nullable public static SessionEE doGetTransactionalSession(ConnectionFactoryEE connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory) throws JMSExceptionEE 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。この
doGetTransactionalSession
バリアントは、メッセージの受信にセッションが使用されると想定して、常に基礎となる JMS 接続を開始します。- パラメーター:
connectionFactory
- バインドする JMS ConnectionFactory (TransactionSynchronizationManager キーとして使用)resourceFactory
- JMS リソースの抽出または作成に使用する ResourceFactory- 戻り値:
- トランザクションセッション、または見つからない場合は
null
- 例外:
JMSExceptionEE
- JMS 障害の場合- 関連事項:
doGetTransactionalSession
@Nullable public static SessionEE doGetTransactionalSession(ConnectionFactoryEE connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory, boolean startConnection) throws JMSExceptionEE 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。- パラメーター:
connectionFactory
- バインドする JMS ConnectionFactory (TransactionSynchronizationManager キーとして使用)resourceFactory
- JMS リソースの抽出または作成に使用する ResourceFactorystartConnection
- メッセージの受信を可能にするために、基盤となる JMS 接続アプローチを開始する必要があるかどうか。このフラグがfalse
であっても、再利用された Connection は以前にすでに開始されている可能性があることに注意してください。- 戻り値:
- トランザクションセッション、または見つからない場合は
null
- 例外:
JMSExceptionEE
- JMS 障害の場合