最初は、複数のデータ ソースに対して異なるトランザクション マネージャーを使用していました。しかし、データ ソースの 1 つにトランザクション エラーが発生した場合、すべてのデータ ソースのロールバックを管理するのに問題がありました。Spring で単一のトランザクション マネージャーを使用して複数のデータ ソースを管理したいと考えています。そこで、JOTM または Atomikos を使用することにしました。これらのトランザクション マネージャーはどちらもXA 接続プール (org.enhydra.jdbc.pool.StandardXAPoolDataSource)を使用します。しかし、私のプロジェクトでは、DBCP 2(org.apache.commons.dbcp.BasicDataSource) または Tomcat Connection Pool(org.apache.tomcat.jdbc.pool.DataSource)のみを使用することが許可されていました。この接続プールのいずれかを JOTM または Atomikos で使用することは可能ですか? 構成例とともに、誰かがこれについて私を助けてください。以下は私の設定の詳細です、
<
bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"/>
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction" ref="jotm" />
</bean>
<bean id="dataSource1" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
<property name="dataSource">
<bean class ="org.enhydra.jdbc.standard.StandardXADataSource " destroy-method ="shutdown">
<property name="transactionManager" ref="jotm" />
<property name="driverName" value="${jdbc.d1.driver}" />
<property name ="url" value = "${jdbc.d1.url}" />
</bean>
</property>
<property name="user" value="${jdbc.d1.username}" />
<property name = "password" value="${jdbc.d1.password}" />
</bean>
<bean id="dataSource2" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
<property name="dataSource">
<bean class ="org. enhydra.jdbc.standard.StandardXADataSource " destroy-method ="shutdown">
<property name="transactionManager" ref="jotm" />
<property name="driverName" value="${jdbc.d2.driver}" />
<property name="url" value="${jdbc.d2.url}" />
</bean>
</property>
<property name="user" value="${jdbc.d2.username}" />
<property name = "password" value ="${jdbc.d2.password}" />
</bean>
また、これを達成するための他の可能な方法があれば助けてください。