Oracle and lower

NOTE: this tip was written with Oracle DBMS version

How can you know if your Oracle server is correctly configured for XA?

The simplest and usually the most effective way is the following:

  • logon to SQLPlus (or use another tool if you like); make sure to use the user/password that you are using for your application
  • execute the query: select * from SYS.DBA_PENDING_TRANSACTIONS;

If this works then XA is configured.

If not then you should do one or all of the following:

  1. run the oracle scripts 'initxa.sql' and 'xaview.sql' (or ask your DBA to do this for you).
  2. ask your DBA to grant select rights (to your user) on SYS.DBA_PENDING_TRANSACTIONS
  3. for the driver ojdbc14.jar, you also need execute rights on SYS.DBMS_SYSTEM

The last step is NOT needed for the older (JDK 1.2) drivers in classes12.jar

Oracle, 11g and higher

For Oracle and up, you no longer need execute rights on SYS.DBMS_SYSTEM. This was fixed in Oracle (BUG 5945463).

Make sure you are also using client driver ojdbc14 version and up.

If all else fails

Try this:

grant execute on dbms_xa to <user> ;
grant select on pending_trans$ to <user>; 
grant select on dba_2pc_pending to <user>;
grant select on dba_pending_transactions to <user>;

Contact Us

Atomikos Corporate Headquarters
Hoveniersstraat, 39/1, 2800
Mechelen, Belgium

T +3215613055

Subscribe to our newsletter

Never miss an update

Copyright 2020 Atomikos BVBA | Our Privacy Policy
By using this site you agree to our cookies. More info. That's Fine