レコードをあるデータベースから別のデータベースに移動したい。レコードは最初のデータベースから削除し、2番目のデータベースにアトミックに挿入する必要があります。実装方法j2eeで長期実行分散トランザクション
xa? 私はxaがリソースのブロックロックを必要とする2フェーズコミットアルゴリズムを使用すると考えています
ターゲットデータベースはEISデータベースですので、最小限の時間ロックする必要があります。
レコードをあるデータベースから別のデータベースに移動したい。レコードは最初のデータベースから削除し、2番目のデータベースにアトミックに挿入する必要があります。実装方法j2eeで長期実行分散トランザクション
xa? 私はxaがリソースのブロックロックを必要とする2フェーズコミットアルゴリズムを使用すると考えています
ターゲットデータベースはEISデータベースですので、最小限の時間ロックする必要があります。
XAはロック機構には何の入射もありません。 2つの別々のトランザクショナルリソースを更新しても、ACIDityが保持されるようにします。あなたのユースケースは、私が正しく理解していれば1つしか更新しないので、ここではXAは必要ありません。
xaでない場合、他には何ですか? –
ローカルトランザクション。 1つのデータベースを更新しています。データがGUIから来るのか、別のデータベースから来るのかは関係ありません。データベースを更新する他のユースケースとまったく同じように、ターゲットデータベースを使用します。 –
ローカルトランザクションを使用している場合、データはターゲットにコミットされるが、ソースからはクリアされない可能性があります。 –
XAは確かに2フェーズコミットブロックプロトコルですが、私のケースでは、最初のエンティティが非常に高速である2つのエンティティしか存在しません。 2PCは効率的に動作します。
より一般的なシナリオでは、3フェーズコミットを使用できます。それは非ブロッキングプロトコルです。どんなjava仕様も持っていないようだが。
また、BTPとhttp://jotm.objectweb.org/jotm-btp.html は、JDBCアダプタとどのように容易に融合できるかわかりません。
「長時間走っている」とはどういう意味ですか?時間?日々 ? –
両方のOracleデータベースですか?その場合は、dblinkを使用することもできます。このコネクションはあなたのdb層の中にあります。それは手続きやplsqlを通して呼び出すことができます。 – techuser