2つの選択肢があると思います
ユースケースで同じトランザクション内で両方のデータベースを更新する必要がない場合は、2つのJpaTransactionManagersを使用できますが、@Transactionalアプローチを使用できるかどうかはわかりません?このケースでは、例えば、トランザクション境界を定義するために、単純なTransactionProxyFactoryBeanを使用して、以前のメカニズムにフォールバックする必要があります:
<bean id="firstRealService" class="com.acme.FirstServiceImpl"/>
<bean id="firstService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="firstJpaTm"/>
<property name="target" ref="firstRealService"/>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- similar for your second service -->
あなたが両方のデータベースにまたがるトランザクションを必要としている場合、あなたはJTAを使用する必要がありますトランザクションマネージャ。 APIの状態は次のとおりです。
このトランザクションマネージャは、トランザクションデータアクセス用に1つのJPA EntityManagerFactoryを使用するアプリケーションに適しています。同じトランザクション内の複数のトランザクション・リソースにアクセスするには、JTA(通常はJtaTransactionManagerを使用)が必要です。 JPAプロバイダがJTAトランザクションに参加するには、JPAプロバイダを適切に設定する必要があることに注意してください。
これは、JTAトランザクションマネージャを提供する必要があることを意味します。
<tx:annotation-driven transaction-manager="txManager"/>
<bean id="txManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName" value="appserver/jndi/path" />
</bean>
あなたがアプリケーションサーバーの中に展開している場合は、その後、春JtaTransactionManagerは、アプリケーションサーバーが提供する本物のXA準拠のJTAトランザクションマネージャに検索を実行する必要があります。我々のアプリケーションでは、我々は次のような設定を使用します。しかし、スタンドアロンのJTAトランザクションマネージャを使用することもできます(まだ私自身はこれを試していません)。
Jpa永続性プロバイダの設定に関しては、あまりよく知られていません。どのJPA永続性プロバイダを使用していますか?
上記のコードは、HibernateのJPA実装とは対照的にネイティブなHibernateを使用していた我々のアプローチに基づいています。この場合、2つのHibernateTransactionManager Beanを取り除き、両方のSessionFactoriesに同じJTA TMが注入されていることを確認してから、tx:annotation-driven要素を使用することができました。あなたが一度にオープントランザクションの両方を持っていることはありませんならば、これは
複数のデータベースでjtaTransactionのサンプルコードまたはPOCを提供できますか? – dhroove
[Atomikosを使用したTomcatのJTA複数リソーストランザクションの例](http://www.javacodegeeks.com/2013/07/spring-jta-multiple-resource-transactions-in-tomcat-with-atomikos-example.html) – anasanjaria