Previous Topic

Next Topic

Book Contents

Setting up Oracle XA transaction support

  1. Select the Prep Oracle checkbox, during the installation,.

    For more information, see Running the InForm software installation.

    Or

    Run the mtsora102.exe script during or after the Oracle installation, using the following syntax:

    MTSORA102.exe <OracleConnectionString> [OracleClientHomeKey]

    There are three options to run mtsora102.exe:

    MTSORA102.exe <DBInstance> <SysPID> [Oracle Home Key]

    MTSORA102.exe <DBInstance> /accountparams:<filename> [Oracle Home Key]

    MTSORA102.exe <DBInstance> /prompt [Oracle Home Key]

    For example:

    MTSORA102.exe trialpdb1 Hsgbu345! KEY_OraClient19Home1_32bit

    When prompted, enter the password for the Oracle database SYS user.

    You must run the mtsora102.exe script only if you are manually setting up XA Transaction Support.

    Note: In a multi-tier environment, select the Prep Oracle checkbox during the InForm installation on each InForm application server, and run mtsora102.exe script on each InForm database server. Restart the server if the script changes any of the MSDTC\Security or MSDTC\XADLL registry keys.

    The MTSORA102.exe file does the following:

    1. Runs the XAVIEW.sql script as SYS to create the V$XATRANS$ view:

      %ORACLE_HOME%\RDBMS\ADMIN\XAVIEW.SQL

    2. Grants SELECT access to the public on these views:

      Grant Select on V$XATRANS$ to public.

      Grant Select on sys.dba_pending_transactions to public.

    3. Modifies the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI registry keys:

      "OracleXaLib"= "oraclient11.dll"

      "OracleSqlLib" = "orasql11.dll"

      "OracleOciLib" = "oci.dll"

    4. Modifies the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security for registry keys:

      "NetworkDtcAccess"=dword:00000001

      "NetworkDtcAccessAdmin"=dword:00000001

      "NetworkDtcAccessTransactions"=dword:00000001

      "XaTransactions"=dword:00000001

      "NetworkDtcAccessOutbound"=dword:00000001

      "NetworkDtcAccessInbound"=dword:00000001

    5. Modifies the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL registry key:

      "mtxoci.dll"="C:\\WINDOWS\\system32\\mtxoci.dll"

  2. Run the oramtsadmin.sql command from the ...\oramts\admin folder of the Oracle Client home (where Oracle Services for Microsoft Transaction Server was installed).

    You must run it as the SYS user with the SYSDBA role. Run the script against all Oracle instances connected to the InForm Application Server.

  3. Log into SQLPlus as SYS user and run the following query:

    SELECT * FROM DBA_NETWORK_ACLS

    WHERE acl = '/sys/acls/OraMTSadmin.xml'

    AND acl_owner = 'SYS';

    • If a result is returned, run the following:

      Execute DBMS_NETWORK_ACL_ADMIN.DROP_ACL(acl => 'OraMTSadmin.xml');

    • If no results are returned, run the following:

      Execute DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('OraMTSadmin.xml', 'Allow usage to the UTL network packages', 'MTSSYS', TRUE, 'connect');

      Execute DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE('OraMTSadmin.xml' , 'MTSSYS', TRUE, 'resolve');

      Execute DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('OraMTSadmin.xml','*');

  4. Update the distributed_lock_timeout initialization parameter, if necessary.
    1. Go to Component Services, and then go to Component Services > Computers > My Computer > Properties > Options tab.
    2. Check the Transaction timeout value.

      This is normally set to 300 seconds.

    3. Check the distributed_lock_timeout value in the database.

      The value should be double that of the timeout value. After resetting the value, the database needs to be restarted.

  5. Set the following registry settings from 32-bit command windows (c:\Windows\SysWOW64\cmd.exe).

    set myKey=HKLM\Software\Oracle\KEY_OraClient19Home1_32bit

    REG ADD "%mykey%" /v ORAMTS_SESS_TXNTIMETOLIVE /t REG_SZ /d 2700

    REG QUERY "%mykey%" /v ORAMTS_SESS_TXNTIMETOLIVE

    REG ADD "%mykey%" /v ORAMTS_CONN_POOL_TIMEOUT /t REG_SZ /d 3150

    REG QUERY "%mykey%" /v ORAMTS_CONN_POOL_TIMEOUT

    REG ADD "HKLM\SOFTWARE\WOW6432Node\ODBC\ODBCINST.INI\Oracle in OraClient19Home1_32bit" /v CPTIMEOUT /d 3150 /f

Send Feedback