Troubleshooting Oracle transaction recovery messages
You must apply special grants for Oracle transaction recovery to work correctly.
About this task
Servers that are configured to use an Oracle database
might log the following errors in the SystemOut log
file:
[4/19/12 13:44:50:062 EDT] 00000007 WSRdbXaResour E DSRA0304E: XAException occurred. XAException contents and details are: The cause is : null.
[4/19/12 13:44:50:062 EDT] 00000007 WSRdbXaResour E DSRA0302E: XAException occurred. Error code is: XAER_RMERR (-3). Exception is: <null>
If there is a system failure, or the server was not stopped properly during a distributed transaction, the WebSphere Application Server transaction manager attempts to clean up any failed transactions that are found in the transaction logs. The Oracle database requires that you have special permissions for transaction recovery. The previous error occurs when a user that attempts to run the recover method does not have sufficient privileges.
To resolve these
issues, run the following commands as user SYS:
grant select on pending_trans$ to user_name; grant select on dba_2pc_pending to user_name; grant select on dba_pending_transactions to user_name;
- If you are using Oracle V10.2.0.3 or a previous version of the
JDBC driver:
grant execute on dbms_system to user_name;
- If you are using Oracle V10.2.0.4 or a more recent of the JDBC
driver:
grant execute on dbms_xa to user_name;
Repeat the previous steps for each Oracle user that is defined during deployment environment creation.