EJB: распространение удаленных транзакций в свободе веб-сферы - PullRequest
0 голосов
/ 26 января 2020

Я работаю над переносом приложения ejb с традиционной веб-сферы 9 на свободу.

Исходный код моего приложения использует распространение удаленных транзакций. Поддерживается ли распространение удаленных транзакций в свободе веб-сферы? Есть обходные пути?

1 Ответ

1 голос
/ 27 января 2020

Нет, Liberty не поддерживает распространение транзакций. Проверьте эту страницу - Использование корпоративных JavaBeans с удаленными интерфейсами в Liberty .

Liberty не поддерживает распространение исходящих или входящих транзакций ... Клиент может запустить EJB, если EJB изменено для использования атрибутов транзакции RequiresNew или NotSupported. Однако транзакционная работа, выполняемая EJB, не является частью транзакций клиента.

Поэтому мои типичные рекомендации для такого случая:

  • проверьте, действительно ли вам нужны удаленные интерфейсы - это часто устаревший код, который по умолчанию имел удаленные интерфейсы, но в действительности все вызовы являются локальными (одно и то же приложение / jvm) - если true, то переключитесь на локальные интерфейсы
  • check если вы можете «безопасно» изменить Required на RequiresNew или NotSupported, не влияя на логику приложения c
  • , если вы не можете использовать что-либо из вышеперечисленного, вам придется перепроектировать / реархитировать свое приложение или добавьте некоторый пользовательский код для обработки этих транзакций вручную, который теперь будет отдельным.
...