クラス ConnectionFactoryUtils

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

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

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

導入:
2.0
作成者:
Juergen Hoeller
関連事項:
  • ネストされたクラスの要約

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static interface
    リソース作成用のコールバックインターフェース。
  • コンストラクターの概要

    コンストラクター
    コンストラクター
    説明
  • 方法の概要

    修飾子と型
    メソッド
    説明
    static @Nullable jakarta.jms.Session
    doGetTransactionalSession(jakarta.jms.ConnectionFactory connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory)
    現在のトランザクションと同期している JMS セッションを取得します(ある場合)。
    static @Nullable jakarta.jms.Session
    doGetTransactionalSession(jakarta.jms.ConnectionFactory connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory, boolean startConnection)
    現在のトランザクションと同期している JMS セッションを取得します(ある場合)。
    static jakarta.jms.Session
    getTargetSession(jakarta.jms.Session session)
    指定されたセッションの最も内側のターゲットセッションを返します。
    static @Nullable jakarta.jms.QueueSession
    getTransactionalQueueSession(jakarta.jms.QueueConnectionFactory cf, @Nullable jakarta.jms.QueueConnection existingCon, boolean synchedLocalTransactionAllowed)
    現在のトランザクションと同期されている JMS QueueSession を取得します(ある場合)。
    static @Nullable jakarta.jms.Session
    getTransactionalSession(jakarta.jms.ConnectionFactory cf, @Nullable jakarta.jms.Connection existingCon, boolean synchedLocalTransactionAllowed)
    現在のトランザクションと同期している JMS セッションを取得します(ある場合)。
    static @Nullable jakarta.jms.TopicSession
    getTransactionalTopicSession(jakarta.jms.TopicConnectionFactory cf, @Nullable jakarta.jms.TopicConnection existingCon, boolean synchedLocalTransactionAllowed)
    現在のトランザクションと同期されている JMS TopicSession を取得します(ある場合)。
    static boolean
    isSessionTransactional(@Nullable jakarta.jms.Session session, @Nullable jakarta.jms.ConnectionFactory cf)
    指定された JMS セッションがトランザクション対応かどうか、つまり、Spring のトランザクション機能によって現在のスレッドにバインドされているかどうかを判断します。
    static void
    releaseConnection(@Nullable jakarta.jms.Connection con, @Nullable jakarta.jms.ConnectionFactory cf, boolean started)
    指定された接続を解放し、必要に応じて停止し、最終的に閉じます。

    クラス ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • コンストラクターの詳細

    • ConnectionFactoryUtils

      public ConnectionFactoryUtils()
  • メソッドの詳細

    • releaseConnection

      public static void releaseConnection(@Nullable jakarta.jms.Connection con, @Nullable jakarta.jms.ConnectionFactory cf, boolean started)
      指定された接続を解放し、必要に応じて停止し、最終的に閉じます。

      SmartConnectionFactory.shouldStop(Connection) をチェックします(可能な場合)。これは本質的に JmsUtils.closeConnection(Connection) のより洗練されたバージョンです。

      パラメーター:
      con - リリースする接続 (これが null の場合、呼び出しは無視されます)
      cf - 接続が取得された ConnectionFactory (null の場合があります)
      started - 接続がアプリケーションによって開始された可能性があるかどうか
      関連事項:
    • getTargetSession

      public static jakarta.jms.Session getTargetSession(jakarta.jms.Session session)
      指定されたセッションの最も内側のターゲットセッションを返します。指定されたセッションがプロキシの場合、非プロキシセッションが見つかるまでラップ解除されます。それ以外の場合、渡されたセッションはそのまま返されます。
      パラメーター:
      session - アンラップするセッションプロキシ
      戻り値:
      最も内側のターゲットセッション、またはプロキシがない場合は渡されたセッション
      関連事項:
    • isSessionTransactional

      public static boolean isSessionTransactional(@Nullable jakarta.jms.Session session, @Nullable jakarta.jms.ConnectionFactory cf)
      指定された JMS セッションがトランザクション対応かどうか、つまり、Spring のトランザクション機能によって現在のスレッドにバインドされているかどうかを判断します。
      パラメーター:
      session - チェックする JMS セッション
      cf - セッションが発生した JMS ConnectionFactory
      戻り値:
      セッションがトランザクションかどうか
    • getTransactionalSession

      public static @Nullable jakarta.jms.Session getTransactionalSession(jakarta.jms.ConnectionFactory cf, @Nullable jakarta.jms.Connection existingCon, boolean synchedLocalTransactionAllowed) throws jakarta.jms.JMSException
      現在のトランザクションと同期している JMS セッションを取得します(ある場合)。
      パラメーター:
      cf - ConnectionFactory がセッションを取得する
      existingCon - セッションを取得するための既存の JMS 接続 (null の場合があります)
      synchedLocalTransactionAllowed - Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。
      戻り値:
      トランザクションセッション、または見つからない場合は null 
      例外:
      jakarta.jms.JMSException - JMS 障害の場合
    • getTransactionalQueueSession

      public static @Nullable jakarta.jms.QueueSession getTransactionalQueueSession(jakarta.jms.QueueConnectionFactory cf, @Nullable jakarta.jms.QueueConnection existingCon, boolean synchedLocalTransactionAllowed) throws jakarta.jms.JMSException
      現在のトランザクションと同期されている JMS QueueSession を取得します(ある場合)。

      主に JMS 1.0.2 API での使用を目的としています。

      パラメーター:
      cf - ConnectionFactory がセッションを取得する
      existingCon - セッションを取得するための既存の JMS 接続 (null の場合があります)
      synchedLocalTransactionAllowed - Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。
      戻り値:
      トランザクションセッション、または見つからない場合は null 
      例外:
      jakarta.jms.JMSException - JMS 障害の場合
    • getTransactionalTopicSession

      public static @Nullable jakarta.jms.TopicSession getTransactionalTopicSession(jakarta.jms.TopicConnectionFactory cf, @Nullable jakarta.jms.TopicConnection existingCon, boolean synchedLocalTransactionAllowed) throws jakarta.jms.JMSException
      現在のトランザクションと同期されている JMS TopicSession を取得します(ある場合)。

      主に JMS 1.0.2 API での使用を目的としています。

      パラメーター:
      cf - ConnectionFactory がセッションを取得する
      existingCon - セッションを取得するための既存の JMS 接続 (null の場合があります)
      synchedLocalTransactionAllowed - Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうか。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。
      戻り値:
      トランザクションセッション、または見つからない場合は null 
      例外:
      jakarta.jms.JMSException - JMS 障害の場合
    • doGetTransactionalSession

      public static @Nullable jakarta.jms.Session doGetTransactionalSession(jakarta.jms.ConnectionFactory connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory) throws jakarta.jms.JMSException
      現在のトランザクションと同期している JMS セッションを取得します(ある場合)。

      この doGetTransactionalSession バリアントは、メッセージの受信にセッションが使用されると想定して、常に基礎となる JMS 接続を開始します。

      パラメーター:
      connectionFactory - バインドする JMS ConnectionFactory (TransactionSynchronizationManager キーとして使用)
      resourceFactory - JMS リソースの抽出または作成に使用する ResourceFactory
      戻り値:
      トランザクションセッション、または見つからない場合は null 
      例外:
      jakarta.jms.JMSException - JMS 障害の場合
      関連事項:
    • doGetTransactionalSession

      public static @Nullable jakarta.jms.Session doGetTransactionalSession(jakarta.jms.ConnectionFactory connectionFactory, ConnectionFactoryUtils.ResourceFactory resourceFactory, boolean startConnection) throws jakarta.jms.JMSException
      現在のトランザクションと同期している JMS セッションを取得します(ある場合)。
      パラメーター:
      connectionFactory - バインドする JMS ConnectionFactory (TransactionSynchronizationManager キーとして使用)
      resourceFactory - JMS リソースの抽出または作成に使用する ResourceFactory
      startConnection - メッセージの受信を可能にするために、基盤となる JMS 接続アプローチを開始する必要があるかどうか。このフラグが false であっても、再利用された Connection は以前にすでに開始されている可能性があることに注意してください。
      戻り値:
      トランザクションセッション、または見つからない場合は null 
      例外:
      jakarta.jms.JMSException - JMS 障害の場合