0

私は、weblogic サーバー 10.3 と ejb 3.0、および ORM 用の Toplink を使用しているアプリケーションを持っています。現在、トランザクションは UnitOfWork.commit() を使用して、createXX()、deleteXX() などの EJB リモート コンポーネント インターフェースに記述された特定のアクションをコミットしています。

uow.commit(); にコメントしようとすると 私のコードで ejb-jar.xml を宣言的に変更して、問題の特定の EJB モジュールがコンテナを持つようにし、createXX() メソッドに @TransactionAttribute(value=REQUIRES_NEW) を使用しました。理想的には、コンテナはしかし、それはコミットしていません。エラーはありません。参考までに、weblogic サーバー コンソールのチェックボックスで [グローバル トランザクションのサポート] がオフのままになっています。

プロンプトにはレコードが正常に作成されたと表示されますが (私のビジネスメッセージに従って)、ログをチェックインしている間、実際のコミットは uow.uow.registerNewObject(EntityObject); の後に発生していません。実行されます。

4

1 に答える 1

0

TopLinkとWebLogic JTAが統合されていることを確認してください(サーバー・プラットフォームをweblogicに設定し、weblogic jtaデータソースを設定してください)。

また、Session.getActiveUnitOfWork() または acquireUnitOfWork() を使用する必要があり、uow.commit() を呼び出さないでください。

于 2011-06-23T13:08:27.457 に答える