クラス ConnectionFactoryUtils

java.lang.ObjectSE
org.springframework.jms.connection.ConnectionFactoryUtils

public abstract class ConnectionFactoryUtils extends ObjectSE
JMS ConnectionFactoryEE を管理するためのヘルパークラス、特に特定の ConnectionFactory のトランザクション JMS リソースを取得するためのヘルパークラス。

主にフレームワーク内での内部使用のため。JmsTemplate および DefaultMessageListenerContainer で使用されます。

導入:
2.0
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • 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

      public static SessionEE getTargetSession(SessionEE session)
      指定されたセッションの最も内側のターゲットセッションを返します。指定されたセッションがプロキシの場合、非プロキシセッションが見つかるまでラップ解除されます。それ以外の場合、渡されたセッションはそのまま返されます。
      パラメーター:
      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 リソースの抽出または作成に使用する ResourceFactory
      startConnection - メッセージの受信を可能にするために、基盤となる JMS 接続アプローチを開始する必要があるかどうか。このフラグが false であっても、再利用された Connection は以前にすでに開始されている可能性があることに注意してください。
      戻り値:
      トランザクションセッション、または見つからない場合は null 
      例外:
      JMSExceptionEE - JMS 障害の場合