0

2 つの異なるデータベースでトランザクションを実装しようとしています。
現在、データベースごとに永続化ユニットがあり、同じトランザクションで、スキーマ SA に存在するテーブル A に書き込み、スキーマ SB にあるテーブル B に書き込みたいと考えていました。

私は weblogic と eclipselink を使用しています。

少し検索しましたが、同じトランザクションで複数の永続ユニットを使用する例は見つかりませんでした。

誰かがこれを行う正しい方法を教えてもらえますか?

ありがとうございました

4

1 に答える 1

0

これは、XA データソースを使用して実装する必要があることがわかりました。
各持続性ユニットは XA データソースを使用してから、2 フェーズ コミットに参加する必要があります。

私は今持っています:

  • ドライバを含む2つのデータソース: oracle.jdbc.xa.client.OracleXADataSourceおよび両方のデータベースにログインするための資格証明
  • 各持続性ユニットは ejb ファサードで呼び出され、それらの ejb ファサードはグローバル トランザクションで呼び出されます。
于 2012-11-16T15:18:27.220 に答える