public abstract class ConnectionFactoryUtils extends ObjectSE
ConnectionFactory
EE を管理するためのヘルパークラス、特に特定の ConnectionFactory のトランザクション JMS リソースを取得するためのヘルパークラス。 主にフレームワーク内での内部使用のため。JmsTemplate
および DefaultMessageListenerContainer
で使用されます。
SmartConnectionFactory
修飾子と型 | クラスと説明 |
---|---|
static interface | ConnectionFactoryUtils.ResourceFactory リソース作成用のコールバックインターフェース。 |
コンストラクターと説明 |
---|
ConnectionFactoryUtils() |
修飾子と型 | メソッドと説明 |
---|---|
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) 指定された接続を解放し、必要に応じて停止し、最終的に閉じます。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static void releaseConnection(@Nullable ConnectionEE con, @Nullable ConnectionFactoryEE cf, boolean started)
SmartConnectionFactory.shouldStop(javax.jms.Connection)
をチェックします(可能な場合)。これは本質的に JmsUtils.closeConnection(javax.jms.Connection)
のより洗練されたバージョンです。
con
- リリースする接続 (これが null
の場合、呼び出しは無視されます)cf
- 接続が取得された ConnectionFactory (null
の場合があります)started
- 接続がアプリケーションによって開始された可能性があるかどうか SmartConnectionFactory.shouldStop(javax.jms.Connection)
, JmsUtils.closeConnection(javax.jms.Connection)
public static SessionEE getTargetSession(SessionEE session)
session
- アンラップするセッションプロキシ SessionProxy.getTargetSession()
public static boolean isSessionTransactional(@Nullable SessionEE session, @Nullable ConnectionFactoryEE cf)
session
- チェックする JMS セッション cf
- セッションが発生した JMS ConnectionFactory@Nullable public static SessionEE getTransactionalSession(ConnectionFactoryEE cf, @Nullable ConnectionEE existingCon, boolean synchedLocalTransactionAllowed) throws JMSExceptionEE
cf
- ConnectionFactory がセッションを取得する existingCon
- セッションを取得するための既存の JMS 接続 (null
の場合があります)synchedLocalTransactionAllowed
- Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。null
JMSExceptionEE
- JMS 障害の場合 @Nullable public static QueueSessionEE getTransactionalQueueSession(QueueConnectionFactoryEE cf, @Nullable QueueConnectionEE existingCon, boolean synchedLocalTransactionAllowed) throws JMSExceptionEE
主に JMS 1.0.2 API での使用を目的としています。
cf
- ConnectionFactory がセッションを取得する existingCon
- セッションを取得するための既存の JMS 接続 (null
の場合があります)synchedLocalTransactionAllowed
- Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。null
JMSExceptionEE
- JMS 障害の場合 @Nullable public static TopicSessionEE getTransactionalTopicSession(TopicConnectionFactoryEE cf, @Nullable TopicConnectionEE existingCon, boolean synchedLocalTransactionAllowed) throws JMSExceptionEE
主に JMS 1.0.2 API での使用を目的としています。
cf
- ConnectionFactory がセッションを取得する existingCon
- セッションを取得するための既存の JMS 接続 (null
の場合があります)synchedLocalTransactionAllowed
- Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。null
JMSExceptionEE
- JMS 障害の場合 @Nullable public static SessionEE doGetTransactionalSession(ConnectionFactoryEE connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory) throws JMSExceptionEE
この doGetTransactionalSession
バリアントは、メッセージの受信にセッションが使用されると想定して、常に基礎となる JMS 接続を開始します。
connectionFactory
- バインドする JMS ConnectionFactory (TransactionSynchronizationManager キーとして使用)resourceFactory
- JMS リソースの抽出または作成に使用する ResourceFactorynull
JMSExceptionEE
- JMS 障害の場合 doGetTransactionalSession(javax.jms.ConnectionFactory, ResourceFactory, boolean)
@Nullable public static SessionEE doGetTransactionalSession(ConnectionFactoryEE connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory, boolean startConnection) throws JMSExceptionEE
connectionFactory
- バインドする JMS ConnectionFactory (TransactionSynchronizationManager キーとして使用)resourceFactory
- JMS リソースの抽出または作成に使用する ResourceFactorystartConnection
- メッセージの受信を可能にするために、基盤となる JMS 接続アプローチを開始する必要があるかどうか。このフラグが false
であっても、再利用された Connection は以前にすでに開始されている可能性があることに注意してください。null
JMSExceptionEE
- JMS 障害の場合