У меня проблемы с подключением к 2 единицам сохранения из одной транзакции с использованием следующего стека технологий,
WLS 10.3.x, Eclipselink 2.1, Oracle 11g JDBC driver, Informix 10 JDBC driver
Используя входные данные этого SO post Я сделал XA-источник данных Oracle совместимым, а Informix ds "Emulate 2-phase commit" - и все заработало. Однако теперь у меня странная проблема.
Я использую автономный Java-клиент для вызова моей SLSB ejb 3, которая в свою очередь вызывает сущности JPA. Проблема, с которой я сталкиваюсь, заключается в том, что она работает в первый раз, во второй раз она не выдает никаких исключений, но не обновляет данные ни в одной из баз данных, а в третий раз выдает исключение, в котором говорится, что «транзакция уже была принята», как если бы приложение Диспетчер транзакций сервера JTA удерживает исходный контекст транзакции. Обратите внимание, что эти 3 вызова являются отдельными и последовательными, при этом каждый вызов завершается, когда клиент выходит из процесса клиента. Проблема очень постоянна и возникает в той же последовательности каждый раз, когда я перезагружаю сервер приложений.
Цените любой вклад!