Планировщик веб-сферы

Планировщик Websphere использует драйвер XA источника данных планировщика. Когда задача выполняется планировщиком, она запускает глобальную транзакцию, но в нашем приложении мы создаем новое соединение с другой базой данных, явно фиксируем данные и закрываем соединение. Этот источник данных настроен с использованием источника данных драйвера, отличного от XA. Для приложения мы также включили эвристический риск «Принять» (расширение поддержки последнего участника). Теперь при запуске планировщика мы получаем исключение DSRA9350E: Operation Connection.commit не разрешена во время глобальной транзакции.

Может ли кто-нибудь помочь мне в этом


person Dileep81    schedule 31.03.2010    source источник
comment
Почему вы явно фиксируете другой ресурс? Он зачисляется в транзакцию, запускаемую планировщиком; он автоматически зафиксируется, когда зафиксируется транс.   -  person Brett Kail    schedule 18.04.2010


Ответы (1)


Ваша задача выполняется в транзакции, и, вероятно, вы вызываете фиксацию в этой транзакции. Таким образом, вы должны вызывать свои операции с БД, фиксировать и закрывать БД вне этой транзакции. Создание компонента сеанса транзакций, управляемого компонентом

@TransactionManagement(TransactionManagementType.BEAN)

и переместите db и код, связанный с транзакцией, в новый компонент.

person ondrej kosatka    schedule 23.04.2010