• Topic
  • Discussion
  • UdaWikiWeb.OracleConfigXASupport(Last) -- Owiki? , 2016-08-19 15:00:41 Edit owiki 2016-08-19 15:00:41

    Configuring Oracle for XA support

    XA support has been tested against Oracle version 9i and 10g

    Granting SELECT Privilege on V$XATRANS$ & DBA_PENDING_TRANSACTIONS Views

    You must grant SELECT privilege to the V$XATRANS$ view for all Oracle accounts that XA applications will use. Otherwise, xa_recover will fail, in the event that TM needs to perform a recovery. If the view does not already exist in your Oracle installation, it can be manually loaded using the following SQL script which should be included in your Oracle installation:

    $ORACLE_HOME/rdbms/admin/xaview.sql
    


    The example below shows an extract from an Oracle XA Library trace file. Oracle returns error ORA-00942 : table or view does not exist, because user scott does not have the necessary SELECT privilege on the V$XATRANS$ view.

    ORACLE XA: Version 10.1.0.0.0. RM name = 'Oracle_XA'.
    
    113956.2352:536.536.1:
    xaoopen: xa_info=ORACLE_XA+Threads=true+SesTm=60+Acc=P/scott/tiger+DB=DB01BA5BF8+SQLNET=ORCL+DbgFl=0x1+LogDir=c:/,rmid=1,flags=0x0
    
    113956.2352:536.536.1:
    xaolgn_help: version#: 168821248 banner: Personal Oracle Database 10g Release 10.1.0.2.0 - Production
    With the Partitioning, OLAP and Data Mining options
    
    113956.2352:536.536.1:
    xaoopen: return 0
    
    113959.2352:536.536.1:
    xaorecover: xids=0xf8f8f8, count=10, rmid=1, flags=0x1000000
    
    113959.2352:536.536.1:
    ORA-00942: table or view does not exist
    
    113959.2352:536.536.1:
    xaorecover: xaofetch rtn -3.
    
    113959.2352:536.536.1:
    xaoclose: xa_info=DSN=au49-ora10-carlv;UID=scott;PWD=tiger;+DB=DB01BA5BF8, rmid=1769209857, flags=0x0
    
    113959.2352:536.536.1:
    xaoclose: rtn 0
    


    The syntax for adding the grant privilege to the 'scott' user is:

    grant select on V$XATRANS$ to scott;
    


    In addition, the "ORA-00942: table or view does not exist" error also occurs if select privileges are not granted on the DBA_PENDING_TRANSACTIONS view, requiring the following command to be executed as a DBA user:

    GRANT SELECT ON DBA_PENDING_TRANSACTIONS TO PUBLIC
    


    Note: The V$XATRANS$ did not exist nor did the DBA_PENDING_TRANSACTIONS view have appropriate select privileges in Unix Oracle installations, although they are included in Windows installations by default.


    Referenced by...