クラス ConnectionFactoryUtils
java.lang.ObjectSE
org.springframework.jms.connection.ConnectionFactoryUtils
JMS
ConnectionFactoryEE を管理するためのヘルパークラス、特に特定の ConnectionFactory のトランザクション JMS リソースを取得するためのヘルパークラス。 主にフレームワーク内での内部使用のため。JmsTemplate および DefaultMessageListenerContainer で使用されます。
- 導入:
- 2.0
- 作成者:
- Juergen Hoeller
- 関連事項:
ネストされたクラスの要約
ネストされたクラスコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明static SessionEEdoGetTransactionalSession(ConnectionFactoryEE connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory) 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。static SessionEEdoGetTransactionalSession(ConnectionFactoryEE connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory, boolean startConnection) 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。static SessionEEgetTargetSession(SessionEE session) 指定されたセッションの最も内側のターゲットセッションを返します。static QueueSessionEEgetTransactionalQueueSession(QueueConnectionFactoryEE cf, QueueConnectionEE existingCon, boolean synchedLocalTransactionAllowed) 現在のトランザクションと同期されている JMS QueueSession を取得します(ある場合)。static SessionEEgetTransactionalSession(ConnectionFactoryEE cf, ConnectionEE existingCon, boolean synchedLocalTransactionAllowed) 現在のトランザクションと同期している JMS セッションを取得します(ある場合)。static TopicSessionEEgetTransactionalTopicSession(TopicConnectionFactoryEE cf, TopicConnectionEE existingCon, boolean synchedLocalTransactionAllowed) 現在のトランザクションと同期されている JMS TopicSession を取得します(ある場合)。static booleanisSessionTransactional(SessionEE session, ConnectionFactoryEE cf) 指定された JMS セッションがトランザクション対応かどうか、つまり、Spring のトランザクション機能によって現在のスレッドにバインドされているかどうかを判断します。static voidreleaseConnection(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 障害の場合