sorab
sorab

Reputation: 353

WTRN0037W: The transaction service encountered an error on an xa_recover operation

I am using WSA 8.5 , JDK 6, JDBC 11. I am getting XAException. I have set the grant permission as suggested by other posts, but did not resolve my issue.

Can you please assist. This issue create huge log file under load testing and result in application to hang.

I am getting below error in 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)

Upvotes: 2

Views: 8419

Answers (2)

Adel Chepkunov
Adel Chepkunov

Reputation: 109

There are alternative receipt - remove transaction logs in files in was-profile

I found one here - https://albert-kuo.blogspot.com/2011/03/wtrn0037w-transaction-service.html - and one foxed same problem.

key steps is:

  • stop server,
  • delete partnerlog and tranlog from logs foldler: [WebSphere Application Server_install_root]\profiles\[PROFILE_NAME]\tranlog\[CELL_NAME]\[NODE_NAME]\[SERVER_NAME]\transaction
  • start server

Upvotes: 0

Anton N
Anton N

Reputation: 2375

IBM suggests to grant special permissions to an Oracle user when you have a deal with Oracle and WAS XA datasource.

This is required grants:

 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 support site has a good explanation and possible solution.

IBM support

Also I have answered to the similar question before it might help. stackoverflow

Upvotes: 5

Related Questions