休止状態を使用していますが、休止状態を使用しているアプリケーションを追加したいと考えています。私が直面している問題は、その結合されたアプリケーションでグローバルトランザクションを実行したいときです。私はコンテナーとして weblogic を使用しています。問題は、休止状態が独自の接続を作成したことです。トップリンクでその接続のみを使用する必要があります...どうすればそれを達成できるか教えてもらえますか?????
2 に答える
Hibernate と TopLink の世界を分離し、Hibernate 側に 1 つの EJB Session Bean を使用し、TopLink 側に別の EJB Session Bean を使用することをお勧めします。
コンテナー管理トランザクションを使用し、WebLogic サーバーが両方のセッション Bean 呼び出しにわたってコミットを処理できるようにします。TopLink 作業用に 1 つのデータ ソース + 接続プールが必要な場合と、Hibernate 作業用に別のデータ ソース + 接続プールが必要な場合があります。
このようにして、2 つの ORM テクノロジ間でアーキテクチャを適切に分離できます。TopLink の作業から同じ接続を使用しようとして、それを Hibernate に渡す (またはその逆) は機能しないと思われます。これは、1 つのツールがコミットを呼び出すと、他のツールがロールバックを呼び出すことができないためです:-)
EJB レイヤーで何かを行うかどうかは、JTA を直接いじるよりも簡単です。コンテナーは、JTA の処理を行う必要があります。
複数の接続やトランザクションの組み合わせについて懸念がありますか? トップリンク コードとハイバネート コードでトランザクションを共有する場合は、おそらく JTA を調べてそれらを分散トランザクションに結合する必要があります。そうでなければ、あなたが何を達成しようとしているのかわかりません