Проблема при преобразовании приложения из BMT в CMT - PullRequest
0 голосов
/ 16 июня 2011

У меня есть приложение, которое использует сервер weblogic 10.3 и ejb 3.0, а также Toplink для ORM.В настоящее время транзакции используют UnitOfWork.commit () для совершения определенного действия, указанного в интерфейсе удаленного компонента EJB, такого как createXX (), deleteXX () и т. Д.

Теперь, когда я пытаюсь комментировать uow.совершить ();в моем коде и измените ejb-jar.xml так, чтобы конкретный рассматриваемый модуль EJB имел Container, и я использовал @TransactionAttribute (value = REQUIRES_NEW) для моего метода createXX (), в идеале контейнер должен автоматически фиксироваться как частьCMT. Но это не совершает.Там нет ошибки, и просто для информации, я флажок в консоли сервера weblogic остается не отмеченным для «Поддержка глобальных транзакций».

Пожалуйста, помогите мне с этим, как подсказка говорит, что запись создана успешно (согласно моей компанииmsg), но при проверке в журналах фактическая фиксация не происходит после uow.uow.registerNewObject (EntityObject);выполняется.

1 Ответ

0 голосов
/ 23 июня 2011

Убедитесь, что вы интегрировали TopLink с JTA WebLogic (установите серверную платформу на weblogic, установите источник данных jta weblogic jta).

Вам также следует использовать Session.getActiveUnitOfWork () или acquUnitOfWork () и не должен вызывать uow.commit ().

...