我正在使用 WSA 8.5、JDK 6、JDBC 11。我收到 XAException。我已按照其他帖子的建议设置了授予权限,但没有解决我的问题。
请您帮忙。此问题在负载测试下创建巨大的日志文件并导致应用程序挂起。
我在 SystemOut.log 中收到以下错误
[11/19/15 18:02:41:029 IST] 0000003d WSRdbXaResour E DSRA0304E: XAException occurred. XAException contents and details are: The cause is : null.
[11/19/15 18:02:41:030 IST] 0000003d WSRdbXaResour E DSRA0302E: XAException occurred. Error code is: XAER_RMERR (-3). Exception is: <null>
[11/19/15 18:02:41:030 IST] 0000003d XARminst E WTRN0037W: The transaction service encountered an error on an xa_recover operation. The resource was com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl@cc24166c. The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:703)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:1116)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:141)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:715)
at com.ibm.tx.jta.impl.PartnerLogTable.recover(PartnerLogTable.java:431)
at com.ibm.tx.jta.impl.RecoveryManager.resync(RecoveryManager.java:1534)
at com.ibm.tx.jta.impl.RecoveryManager.performResync(RecoveryManager.java:2267)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:117)
at com.ibm.tx.jta.impl.RecoveryManager.run(RecoveryManager.java:2220)
at java.lang.Thread.run(Thread.java:770)
最佳答案
IBM 建议在与 Oracle 和 WAS XA 数据源进行交易时向 Oracle 用户授予特殊权限。
这是必需的赠款:
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_system to <user>; (If using Oracle 10.2.0.3 or lower JDBC driver)
grant execute on dbms_xa to <user>; (If using Oracle 10.2.0.4 or higher JDBC driver)
IBM 支持网站有很好的解释和可能的解决方案。
我也回答过类似的问题,然后才可能有所帮助。 stackoverflow
关于websphere - WTRN0037W : The transaction service encountered an error on an xa_recover operation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33804310/