Прозрачная конфигурация транзакций с использованием атомарных транзакций Web-сервисов и EJB-компонентов в WebSphere Application Server - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь внедрить атомарные транзакции Web-сервисов в WebSphere Application Server (вынужден использовать версию 7.0, но также пробовал 8.5).

По сути, у меня есть две службы JAX-WS (CallerService иCalleeService) вызывая друг друга, что-то записывая в источник данных XA (Oracle).CallerService вызывает CallerBean EJB, который вставляет строку в таблицу Oracle, затем вызывает CalleeService, который выполняет такую ​​же вставку в БД.

CallerBean имеет @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW), а CalleeBean имеет @TransactionAttribute(TransactionAttributeType.MANDATORY).Второй сбой с ошибкой Global tx is required, поэтому транзакция не работает.

Я добавил политики WSAT в WSDL и настроил политики транзакций в WebSphere в соответствии с https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/cjta_wstran.html и включил отправку контекста WSAT вibm-ejb-jar-ext.xml.

Код можно найти по адресу https://github.com/ike3/lkp_transactions/tree/was7. У меня есть другая ветвь с такой же конфигурацией аннотаций, которая отлично работает на сервере приложений WildFly без какой-либо настройки.

Поддерживается ли это что-то в Websphere Application Server? Могу ли я использовать прозрачную конфигурацию транзакций как на WebServices, так и на EJB?

...