public class TransactionAwareConnectionFactoryProxy extends java.lang.Object implements ConnectionFactoryEE, QueueConnectionFactoryEE, TopicConnectionFactoryEE
ConnectionFactoryEE のプロキシ。Spring 管理のトランザクションの認識を追加します。Java 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 セッションインターフェースを使用するだけです。
UserCredentialsConnectionFactoryAdapter, SingleConnectionFactory| コンストラクターと説明 |
|---|
TransactionAwareConnectionFactoryProxy() 新しい TransactionAwareConnectionFactoryProxy を作成します。 |
TransactionAwareConnectionFactoryProxy(ConnectionFactoryEE targetConnectionFactory) 新しい TransactionAwareConnectionFactoryProxy を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
ConnectionEE | createConnection() |
ConnectionEE | createConnection(java.lang.String username, java.lang.String password) |
JMSContextEE | createContext() |
JMSContextEE | createContext(int sessionMode) |
JMSContextEE | createContext(java.lang.String userName, java.lang.String password) |
JMSContextEE | createContext(java.lang.String userName, java.lang.String password, int sessionMode) |
QueueConnectionEE | createQueueConnection() |
QueueConnectionEE | createQueueConnection(java.lang.String username, java.lang.String password) |
TopicConnectionEE | createTopicConnection() |
TopicConnectionEE | createTopicConnection(java.lang.String username, java.lang.String password) |
protected ConnectionFactoryEE | getTargetConnectionFactory() この ConnectionFactory が委譲するターゲット ConnectionFactory を返します。 |
protected ConnectionEE | getTransactionAwareConnectionProxy(ConnectionEE target) すべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、トランザクション対応の方法でセッションのルックアップを処理します。 |
protected boolean | isSynchedLocalTransactionAllowed()Spring 管理のトランザクションと同期するローカル JMS トランザクションを許可するかどうかを返します。 |
void | setSynchedLocalTransactionAllowed(boolean synchedLocalTransactionAllowed)Spring 管理のトランザクション(メイントランザクションは特定の DataSource の JDBC ベースのトランザクションなど)と同期するローカル JMS トランザクションを許可するかどうかを設定します。JMS トランザクションはメイントランザクションの直後にコミットします。 |
void | setTargetConnectionFactory(ConnectionFactoryEE targetConnectionFactory) この ConnectionFactory が委譲するターゲット ConnectionFactory を設定します。 |
public TransactionAwareConnectionFactoryProxy()
public TransactionAwareConnectionFactoryProxy(ConnectionFactoryEE targetConnectionFactory)
targetConnectionFactory - ターゲット ConnectionFactorypublic final void setTargetConnectionFactory(ConnectionFactoryEE targetConnectionFactory)
protected ConnectionFactoryEE getTargetConnectionFactory()
public void setSynchedLocalTransactionAllowed(boolean synchedLocalTransactionAllowed)
デフォルトは「false」: 基になる JMS ConnectionFactory を含むマネージトランザクション内にない場合、標準のセッションが返されます。このフラグをオンにすると、ローカル JMS トランザクションがメイントランザクションと同期され、Spring 管理のトランザクションに参加できるようになります。
protected boolean isSynchedLocalTransactionAllowed()
public ConnectionEE createConnection() throws JMSExceptionEE
ConnectionFactoryEE 内の createConnectionEE JMSExceptionEEpublic ConnectionEE createConnection(java.lang.String username, java.lang.String password) throws JMSExceptionEE
ConnectionFactoryEE 内の createConnectionEE JMSExceptionEEpublic QueueConnectionEE createQueueConnection() throws JMSExceptionEE
QueueConnectionFactoryEE 内の createQueueConnectionEE JMSExceptionEEpublic QueueConnectionEE createQueueConnection(java.lang.String username, java.lang.String password) throws JMSExceptionEE
QueueConnectionFactoryEE 内の createQueueConnectionEE JMSExceptionEEpublic TopicConnectionEE createTopicConnection() throws JMSExceptionEE
TopicConnectionFactoryEE 内の createTopicConnectionEE JMSExceptionEEpublic TopicConnectionEE createTopicConnection(java.lang.String username, java.lang.String password) throws JMSExceptionEE
TopicConnectionFactoryEE 内の createTopicConnectionEE JMSExceptionEEpublic JMSContextEE createContext()
ConnectionFactoryEE 内の createContextEE public JMSContextEE createContext(java.lang.String userName, java.lang.String password)
ConnectionFactoryEE 内の createContextEE public JMSContextEE createContext(java.lang.String userName, java.lang.String password, int sessionMode)
ConnectionFactoryEE 内の createContextEE public JMSContextEE createContext(int sessionMode)
ConnectionFactoryEE 内の createContextEE protected ConnectionEE getTransactionAwareConnectionProxy(ConnectionEE target)
target - ラップする元の接続