При использовании распределенных транзакций в IBM WAS с Oracle DB возникают ошибки XAER_RMERR. Ниже покажем, как их чиниить. Описание Логи забиваются сообщениями об ошибках:
2013-06-04 13:58:57,363 ERROR [com.ibm.ws.Transaction.JTA.XARminst] v9.2.0.184049 (vyp2-was2 Default : DMN0) WTRN0037W: Служба транзакций обнаружила ошибку в операции xa_recover.
Ресурс: com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl@15971597.
Код ошибки: XAER_RMERR.
Трассировка стека исключительной ситуации: javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:709)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:1088)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:141)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:626)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1530)
at com.ibm.tx.jta.RecoveryManager.performResync(RecoveryManager.java:2265)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:114)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2218)
at java.lang.Thread.run(Thread.java:736)
2013-06-04 13:58:57,363 WARN [com.ibm.tx.jta.XARecoveryData] v9.2.0.184049 (vyp2-was2 Default : DMN0) WTRN0146I: Получены 0 xid от xa_recover в XAResource: paymentsDataSource, 0 из которых будут обработаны сервером
Oracle требуются специальные права для выполнения очистки после ошибки транзакции.
выполнить команды как пользователь SYS:
grant select on pending_trans$ to <user>;
grant select on dba_2pc_pending to <user>;
grant select on dba_pending_transactions to <user>;
grant execute on dbms_xa to <user>;
(If using Oracle 10.2.0.4 or higher JDBC driver)
где <user> - имя пользователя в используемом источнике данных. Вариант с переменными подстановки:
define u = '<user>';
GRANT SELECT ON pending_trans$ TO &&u;
GRANT SELECT ON dba_2pc_pending TO &&u;
GRANT SELECT ON dba_pending_transactions TO &&u;
GRANT EXECUTE ON dbms_xa TO &&u;
Подробнее: http://www-01.ibm.com/support/docview.wss?uid=swg21196663