当我们在IBM WebSphere服务器中运行服务时,我们得到了下面的错误。你能告诉我为什么会出现下面的错误吗?
[10/5/16 5:58:28:812 UTC] 00000007 XARecoveryDat A WTRN0146I: Obtained 0 xid(s) from xa recover on XAResource: XYZ of which 0 will be processed by this server
[10/5/16 5:58:28:814 UTC] 00000007 XARecoveryDat A WTRN0151I: Preparing to call xa recover on XAResource: ABC
[10/5/16 5:58:28:872 UTC] 00000007 WSRdbXaResour E DSRA0304E: XAException occurred. XAException contents and details are: "".
[10/5/16 5:58:28:872 UTC] 00000007 WSRdbXaResour E DSRA0302E: XAException occurred. Error code is: XAER_RMERR (-3). Exception is: <null>
[10/5/16 5:58:28:872 UTC] 00000007 XARminst E WTRN0037W: The transaction service encountered an error on an xa_recover operation. The resource was com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl@4966bf0a. The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:730)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:1105)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:141)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:716)
at com.ibm.tx.jta.impl.PartnerLogTable.recover(PartnerLogTable.java:432)
at com.ibm.tx.jta.impl.RecoveryManager.resync(RecoveryManager.java:1542)
at com.ibm.tx.jta.impl.RecoveryManager.performResync(RecoveryManager.java:2275)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:119)
at com.ibm.tx.jta.impl.RecoveryManager.run(RecoveryManager.java:2228)
at java.lang.Thread.run(Thread.java:784)
发布于 2016-10-05 16:05:34
XA是使用两阶段提交处理分布式事务的Oracle实现。上述错误表示WAS正在尝试对已定义为XA类型数据源数据源调用XA恢复操作。调用失败,可能是因为数据库未启用以支持外部事务管理器(在本例中为WAS)。
如果不需要使用XA事务,可以从WAS中删除事务日志以消除错误(profile_root/tranlog文件夹)。如果您的应用程序需要XA支持,那么可以使用Oracle DB附带的initxa.sql
脚本在Oracle端启用它。
https://stackoverflow.com/questions/39867225
复制相似问题