クラス TransactionAwareConnectionFactoryProxy
- 実装されているすべてのインターフェース:
- ConnectionFactoryEE、- QueueConnectionFactoryEE、- TopicConnectionFactoryEE
ConnectionFactoryEE のプロキシ。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 booleanSpring 管理のトランザクションと同期するローカル JMS トランザクションを許可するかどうかを返します。- void- setSynchedLocalTransactionAllowed- (boolean synchedLocalTransactionAllowed) Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうかを設定します。JMS トランザクションはメイントランザクションの直後にコミットします。- final void- setTargetConnectionFactory- (ConnectionFactoryEE targetConnectionFactory) この ConnectionFactory が委譲するターゲット ConnectionFactory を設定します。
- コンストラクターの詳細- TransactionAwareConnectionFactoryProxypublic TransactionAwareConnectionFactoryProxy()新しい TransactionAwareConnectionFactoryProxy を作成します。
- TransactionAwareConnectionFactoryProxy新しい TransactionAwareConnectionFactoryProxy を作成します。- パラメーター:
- targetConnectionFactory- ターゲット ConnectionFactory
 
 
- メソッドの詳細- setTargetConnectionFactoryこの ConnectionFactory が委譲するターゲット ConnectionFactory を設定します。
- getTargetConnectionFactoryこの ConnectionFactory が委譲するターゲット ConnectionFactory を返します。
- setSynchedLocalTransactionAllowedpublic void setSynchedLocalTransactionAllowed- (boolean synchedLocalTransactionAllowed) Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうかを設定します。JMS トランザクションはメイントランザクションの直後にコミットします。許可されていない場合、指定された ConnectionFactory はカバーでトランザクション登録を処理する必要があります。- デフォルトは「false」: 基になる JMS ConnectionFactory を含むマネージトランザクション内にない場合、標準のセッションが返されます。このフラグをオンにすると、ローカル JMS トランザクションがメイントランザクションと同期され、Spring 管理のトランザクションに参加できるようになります。 
- isSynchedLocalTransactionAllowedprotected boolean isSynchedLocalTransactionAllowed()Spring 管理のトランザクションと同期するローカル JMS トランザクションを許可するかどうかを返します。
- createConnection- 次で指定:
-  インターフェース ConnectionFactoryEEのcreateConnectionEE
- 例外:
- JMSExceptionEE
 
- createConnection- 次で指定:
-  インターフェース ConnectionFactoryEEのcreateConnectionEE
- 例外:
- JMSExceptionEE
 
- createQueueConnection- 次で指定:
-  インターフェース QueueConnectionFactoryEEのcreateQueueConnectionEE
- 例外:
- JMSExceptionEE
 
- createQueueConnectionpublic QueueConnectionEE createQueueConnection- (StringSE username, StringSE password) throws JMSExceptionEE - 次で指定:
-  インターフェース QueueConnectionFactoryEEのcreateQueueConnectionEE
- 例外:
- JMSExceptionEE
 
- createTopicConnection- 次で指定:
-  インターフェース TopicConnectionFactoryEEのcreateTopicConnectionEE
- 例外:
- JMSExceptionEE
 
- createTopicConnectionpublic TopicConnectionEE createTopicConnection- (StringSE username, StringSE password) throws JMSExceptionEE - 次で指定:
-  インターフェース TopicConnectionFactoryEEのcreateTopicConnectionEE
- 例外:
- JMSExceptionEE
 
- createContext- 次で指定:
-  インターフェース ConnectionFactoryEEのcreateContextEE
 
- createContext- 次で指定:
-  インターフェース ConnectionFactoryEEのcreateContextEE
 
- createContext- 次で指定:
-  インターフェース ConnectionFactoryEEのcreateContextEE
 
- createContext- 次で指定:
-  インターフェース ConnectionFactoryEEのcreateContextEE
 
- getTransactionAwareConnectionProxyすべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、トランザクション対応の方法でセッションのルックアップを処理します。- パラメーター:
- target- ラップする元の接続
- 戻り値:
- ラップされた接続