1

みんなこんにちは、

同じトランザクションで、SQLやORACLEなどの異なるデータベースでCRUD操作を実行する必要があるなどの要件があります。それを達成する方法はありますか?

(1) 1 つの SessionFactory を使用してこれを達成することは可能ですか?

(2) 2 つの異なる Sessionfactory を使用してそれを行うことは可能ですか?

私が持っている唯一の条件は、挿入するために1つのクエリを起動するときであり、同時に両方のデータベースに挿入する必要があります。

私の質問が非常に明確であることを願っています。お返事を待って。

4

1 に答える 1

0

グローバル トランザクションを使用できます。これは、Java トランザクション API で指定されています。多くのアプリケーション サーバーは、セッション ファクトリで使用できる独自のトランザクション マネージャーを使用することをサポートしています。基礎となるアイデアは、データベースでサポートされている必要がある 2 フェーズ コミット プロトコルを使用することです (準備コマンドを理解する必要があります)。これらのドライバーは通常、XA 互換性を求めて見つかります。たとえば、Oracle の Weblogic アプリケーション サーバーには、XA 準拠の Oracle ドライバがすでに同梱されています。とにかく、これは他のアプリサーバーでは異なる場合があります。

JTA はXOpen XAに基づいています。全体像を把握するには、それを一読する必要があります。

G-Man は、アプリ サーバーが適切な TA マネージャーを提供していない場合、またはアプリ サーバーを使用したくない場合のために、Atomikos の構成に関する適切なリンクを提供しました。

于 2012-12-03T13:44:43.977 に答える