2016-04-22 16 views

答えて

0

-Bharat

これは、アプリケーションの実行(例えば、JBossのアプリケーションサーバー)コンテナで実行する必要がありますか、などBitronixのようないくつかの他のトランザクションマネージャにフックする必要があります。 JavaSEアプリケーションのすぐに使えるだけで、複数のデータソース間でトランザクションを管理する際に「ベストエフォート」の試みが行われます。

XAドライバを使用して両方のデータベースへの接続を定義し、トランザクションマネージャが2フェーズコミットを利用していることを確認する必要があります。

あなたがグローバル・トランザクションに精通していない場合は、ここで起動します。http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/transaction.html#transaction-global

+0

注:両方のデータベースに同時に関わるトランザクションがない場合は、Dineshの回答で十分です。 –

+0

返信いただきありがとうございます。私の要件では、どんなサーバーにも行きたくないので、スタンドアロンアプリケーションを作りたいと思います。 – Bharat

1

を次の2人の別々のTXNの管理者を指定することができます。あなたのセットアップを使用すると、TXNマネージャ指定するqualigierを使用することができます完了すると

<bean id="transactionManager1" 
    class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory1" /> 
    <qualifier value="account"/> 
</bean> 

<bean id="transactionManager2" 
    class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory2" /> 
    <qualifier value="businessData"/> 
</bean> 

:あなたは複数のデータソースを含む取引を探していると仮定すると、

​​
1

を、私は非常にあなたが記事のこのシリーズを与えるお勧めしますあなたのオプションのデビッド・Syer(スプリングリード)によって:

http://www.javaworld.com/article/2077963/open-source-tools/distributed-transactions-in-spring--with-and-without-xa.html

例えば、いくつかのデータベースでもDATにわたるトランザクションをサポート分散トランザクションのない特定の状況下でスキーマが優先されます(here参照)。

XA 2フェーズコミットトランザクションマネージャ以外のオプションもあります(オーバーヘッドと複雑さが大きくなります)が、トレードオフが異なります。

関連する問題