public class TransactionAwareConnectionFactoryProxy extends DelegatingConnectionFactory
ConnectionFactory
EE のプロキシ。Spring 管理のトランザクションの認識を追加します。Java EE サーバーによって提供されるトランザクション JNDI ConnectionFactory に似ています。Spring のデータアクセスサポートを認識しないままにする必要があるデータアクセスコードは、このプロキシと連携して、Spring 管理のトランザクションにシームレスに参加できます。トランザクションマネージャー、たとえば CciLocalTransactionManager
は、このプロキシではなく、基礎となる ConnectionFactory で動作する必要があることに注意してください。
TransactionAwareConnectionFactoryProxy が ConnectionFactory プロキシ / アダプターのチェーンの最も外側の ConnectionFactory であることを確認してください。TransactionAwareConnectionFactoryProxy は、ターゲット接続プールに直接、または ConnectionSpecConnectionFactoryAdapter
などの中間プロキシ / アダプターに委譲できます。
CciLocalTransactionManager
によって管理されているスレッドバインドされたトランザクションに自動的に参加するための ConnectionFactoryUtils
へのデリゲート。返された接続での getConnection
呼び出しと close
呼び出しは、トランザクション内で適切に動作します。つまり、常にトランザクション接続で動作します。トランザクション内にない場合、通常の ConnectionFactory の動作が適用されます。
このプロキシを使用すると、データアクセスコードがプレーンな JCA CCI API で動作し、Java EE/JTA 環境の CCI コードと同様に、Spring 管理のトランザクションに参加できます。ただし、可能であれば、Spring の ConnectionFactoryUtils、CciTemplate、CCI 操作オブジェクトを使用して、ターゲット ConnectionFactory のプロキシがなくてもトランザクションに参加できるため、最初にそのようなプロキシを定義する必要がありません。
注意 : この ConnectionFactory プロキシは、クローズ呼び出しを適切に処理するために、ラップされた接続を返す必要があります。返された接続をネイティブの CCI 接続型または接続プール実装型にキャストすることはできません。
コンストラクターと説明 |
---|
TransactionAwareConnectionFactoryProxy() 新しい TransactionAwareConnectionFactoryProxy を作成します。 |
TransactionAwareConnectionFactoryProxy(ConnectionFactoryEE targetConnectionFactory) 新しい TransactionAwareConnectionFactoryProxy を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
ConnectionEE | getConnection() Spring 管理のトランザクションに自動的に参加する ConnectionFactoryUtils に委譲します。 |
protected ConnectionEE | getTransactionAwareConnectionProxy(ConnectionEE target, ConnectionFactoryEE cf) すべてのメソッド呼び出しを委譲するが、 close 呼び出しは ConnectionFactoryUtils に委譲するプロキシを使用して、指定された接続をラップします。 |
afterPropertiesSet, getConnection, getMetaData, getRecordFactory, getReference, getTargetConnectionFactory, obtainTargetConnectionFactory, setReference, setTargetConnectionFactory
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public TransactionAwareConnectionFactoryProxy()
public TransactionAwareConnectionFactoryProxy(ConnectionFactoryEE targetConnectionFactory)
targetConnectionFactory
- ターゲット ConnectionFactorypublic ConnectionEE getConnection() throws ResourceExceptionEE
ConnectionFactoryEE
の getConnectionEE
DelegatingConnectionFactory
の getConnection
ResourceExceptionEE
ConnectionFactoryUtils.doGetConnection(javax.resource.cci.ConnectionFactory)
protected ConnectionEE getTransactionAwareConnectionProxy(ConnectionEE target, ConnectionFactoryEE cf)
close
呼び出しは ConnectionFactoryUtils に委譲するプロキシを使用して、指定された接続をラップします。target
- ラップする元の接続 cf
- 接続元の ConnectionFactoryConnection.close()
EE, ConnectionFactoryUtils.doReleaseConnection(javax.resource.cci.Connection, javax.resource.cci.ConnectionFactory)