2 つの Spring アプリケーション A と B があり、それぞれが個別の EAR ファイル内にあります。今、私は A から B に、またはその逆に、おそらく A -> B -> A またはそれ以上に呼び出したいと思っています。
呼び出しはトランザクション的に安全でなければなりません。
推奨されるアプローチは何ですか?
2 つの Spring アプリケーション A と B があり、それぞれが個別の EAR ファイル内にあります。今、私は A から B に、またはその逆に、おそらく A -> B -> A またはそれ以上に呼び出したいと思っています。
呼び出しはトランザクション的に安全でなければなりません。
推奨されるアプローチは何ですか?
あるEARから別のEARへの同期トランザクション(2つのフェイスコミットを使用)呼び出しを行う唯一の方法は、リモートEJBを使用することです:(
あなたの場合、JMSを使用して非同期呼び出しを行うことが可能であれば、メッセージの送信はトランザクションと結合されますが、リモートEJBで可能であるため、受信者はトランザクションをロールバックできません。電話。
これを安全に保つ唯一の方法は、コンテナーによって管理される JTA トランザクションを使用することです。Spring は を介してこれらをサポートするJtaTransactionManager
ため、Spring の他のトランザクションと同じようにトランザクション ロジックを記述できます。すべてのデータ ソースは、アプリケーションではなくコンテナーで管理する必要があります。