クラス TransactionAwareConnectionFactoryProxy
- 実装されたすべてのインターフェース:
ConnectionFactoryEE
、QueueConnectionFactoryEE
、TopicConnectionFactoryEE
ConnectionFactory
EE のプロキシ。Spring 管理のトランザクションの認識を追加します。Jakarta EE アプリケーションサーバーによって提供されるトランザクション JNDI ConnectionFactory に似ています。Spring の JMS サポートを認識しないままにする必要があるメッセージングコードは、このプロキシと連携して、Spring 管理のトランザクションにシームレスに参加できます。トランザクションマネージャー、たとえば JmsTransactionManager
は、このプロキシではなく、基礎となる ConnectionFactory で動作する必要があることに注意してください。
TransactionAwareConnectionFactoryProxy が ConnectionFactory プロキシ / アダプターのチェーンの最も外側の ConnectionFactory であることを確認してください。TransactionAwareConnectionFactoryProxy は、ターゲットファクトリに直接委譲することも、UserCredentialsConnectionFactoryAdapter
などの中間アダプターに委譲することもできます。
JmsTransactionManager
によって管理されているスレッドバインドされたトランザクションに自動的に参加するための ConnectionFactoryUtils
へのデリゲート。返されたセッションの createSession
呼び出しと close
呼び出しは、トランザクション内で適切に動作します。つまり、常にトランザクションセッションで動作します。トランザクション内にない場合、通常の ConnectionFactory の動作が適用されます。
トランザクション JMS セッションは、接続ごとに登録されることに注意してください。トランザクション間で同じ JMS セッションを共有するには、ハンドルを再利用するか、その SingleConnectionFactory
を構成することにより、同じ JMS 接続ハンドルを操作するようにしてください。
返されたトランザクションセッションプロキシは、SessionProxy
インターフェースを実装して、基になるターゲットセッションにアクセスできるようにします。これは、ベンダー固有のセッション API へのアクセスまたはテスト目的(手動のトランザクション制御を実行するなど)のみを目的としています。一般的なアプリケーションの目的には、標準の JMS セッションインターフェースを使用するだけです。
Spring Framework 5 の時点で、このクラスは JMS 2.0 JMSContext
呼び出しを委譲するため、実行時に JMS 2.0 API が存在する必要があります。それでも、アプリケーションのセットアップによって実際の JMS 2.0 呼び出しがトリガーされない限り、JMS 1.1 ドライバー(JMS 2.0 API にバインドされている)に対して実行できます。
- 導入:
- 2.0
- 作成者:
- Juergen Hoeller
- 関連事項:
コンストラクターのサマリー
コンストラクターコンストラクター説明新しい TransactionAwareConnectionFactoryProxy を作成します。TransactionAwareConnectionFactoryProxy
(ConnectionFactoryEE targetConnectionFactory) 新しい TransactionAwareConnectionFactoryProxy を作成します。メソッドのサマリー
修飾子と型メソッド説明createConnection
(StringSE username, StringSE password) createContext
(int sessionMode) createContext
(StringSE userName, StringSE password) createContext
(StringSE userName, StringSE password, int sessionMode) createQueueConnection
(StringSE username, StringSE password) createTopicConnection
(StringSE username, StringSE password) protected ConnectionFactoryEE
この ConnectionFactory が委譲するターゲット ConnectionFactory を返します。protected ConnectionEE
すべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、トランザクション対応の方法でセッションのルックアップを処理します。protected boolean
Spring 管理のトランザクションと同期するローカル JMS トランザクションを許可するかどうかを返します。void
setSynchedLocalTransactionAllowed
(boolean synchedLocalTransactionAllowed) Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうかを設定します。JMS トランザクションはメイントランザクションの直後にコミットします。final void
setTargetConnectionFactory
(ConnectionFactoryEE targetConnectionFactory) この ConnectionFactory が委譲するターゲット ConnectionFactory を設定します。
コンストラクターの詳細
TransactionAwareConnectionFactoryProxy
public TransactionAwareConnectionFactoryProxy()新しい TransactionAwareConnectionFactoryProxy を作成します。TransactionAwareConnectionFactoryProxy
新しい TransactionAwareConnectionFactoryProxy を作成します。- パラメーター:
targetConnectionFactory
- ターゲット ConnectionFactory
メソッドの詳細
setTargetConnectionFactory
この ConnectionFactory が委譲するターゲット ConnectionFactory を設定します。getTargetConnectionFactory
この ConnectionFactory が委譲するターゲット ConnectionFactory を返します。setSynchedLocalTransactionAllowed
public void setSynchedLocalTransactionAllowed(boolean synchedLocalTransactionAllowed) Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうかを設定します。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。デフォルトは「false」: 基になる JMS ConnectionFactory を含むマネージトランザクション内にない場合、標準のセッションが返されます。このフラグをオンにすると、ローカル JMS トランザクションがメイントランザクションと同期され、Spring 管理のトランザクションに参加できるようになります。
isSynchedLocalTransactionAllowed
protected boolean isSynchedLocalTransactionAllowed()Spring 管理のトランザクションと同期するローカル JMS トランザクションを許可するかどうかを返します。createConnection
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateConnection
- 例外:
JMSExceptionEE
createConnection
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateConnectionEE
- 例外:
JMSExceptionEE
createQueueConnection
- 次で指定:
- インターフェース
QueueConnectionFactoryEE
のcreateQueueConnection
- 例外:
JMSExceptionEE
createQueueConnection
public QueueConnectionEE createQueueConnection(StringSE username, StringSE password) throws JMSExceptionEE - 次で指定:
- インターフェース
QueueConnectionFactoryEE
のcreateQueueConnectionEE
- 例外:
JMSExceptionEE
createTopicConnection
- 次で指定:
- インターフェース
TopicConnectionFactoryEE
のcreateTopicConnection
- 例外:
JMSExceptionEE
createTopicConnection
public TopicConnectionEE createTopicConnection(StringSE username, StringSE password) throws JMSExceptionEE - 次で指定:
- インターフェース
TopicConnectionFactoryEE
のcreateTopicConnectionEE
- 例外:
JMSExceptionEE
createContext
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateContext
createContext
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateContextEE
createContext
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateContextEE
createContext
- 次で指定:
- インターフェース
ConnectionFactoryEE
のcreateContextEE
getTransactionAwareConnectionProxy
すべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、トランザクション対応の方法でセッションのルックアップを処理します。- パラメーター:
target
- ラップする元の接続- 戻り値:
- ラップされた接続