2 Installing Oracle Services for Microsoft Transaction Server

This chapter describes installation requirements for the Microsoft Transaction Server and Oracle Database environment.

This chapter contains these topics:

Installation Introduction

You can install OraMTS as part of the Oracle Database Client. OraMTS service will be created for the Oracle Home you installed. Beginning in Oracle 12c, each Oracle Home has its own OraMTS recovery Windows service. Also, beginning in Oracle 12c, the OraMTS service runs as the Oracle Home user.

Oracle Home User is the owner of Oracle Services that run from Oracle Home and cannot be changed after installation. It can be a Windows built-in account or a Windows User Account. For enhanced security, Oracle recommends choosing the standard Windows User Account as Oracle Home User for Oracle Database installations rather than a Windows built-in account. The primary purpose of Oracle Home User is to run Windows services with Windows User Account. However, this user account (Oracle Home User) must be a low-privileged user account that should not be used for database administration. This ensures that Oracle Database services running under Oracle Home User have only the minimal privileges required to run Oracle products. The Windows User Account can be a Local User, a Domain User, or a Managed Services Account.

In some cases, such as a software-only install, clone cycles, or an AddNode operation on the database, you may need to manually create the OraMTS service. For more information, see "Manually Creating an Oracle MTS Recovery Service".

This section describes the Oracle and non-Oracle products you must install for OraMTS. Additional installation requirements include:

Installation Requirements for Microsoft Transaction Server

The Windows computer where Microsoft Transaction Server is installed has the following product requirements:

Oracle Products


  • Oracle ODBC Driver, ODP.NET, Oracle Provider for OLE DB, and OCI are only required if you are building or using components with which they are required.

  • Depending on the installation, you are prompted to enter the port number on which the Oracle MTS Recovery Service will listen for requests to resolve in-doubt transactions

Non-Oracle Products

  • Windows operating system

  • Microsoft Distributed Transaction Coordinator, which is part of the Windows operating system

Using Oracle Services for MTS with Oracle Data Provider for .NET, Managed Driver

Oracle Data Provider for .NET, Managed Driver is a fully managed data provider consisting of 100% native .NET code introduced with Oracle Database 12c. ODP.NET, Managed Driver incorporates Oracle Services for MTS entire enlistment and commit functionality, within Oracle.ManagedDataAccessDTC.dll installed with the managed driver, allowing those functions to execute using managed code. The Oracle Services for MTS recovery service remains unmanaged.

The Oracle.ManagedDataAccessDTC.dll must be deployed with Oracle.ManagedDataAccess.dll for any ODP.NET, Managed Driver applications using distributed transactions. It can run alongside the unmanaged Oracle Services for MTS version if unmanaged data access drivers, such as ODBC, are also using distributed transactions on the same computer.

There are two versions of Oracle.ManagedDataAccessDTC.dll, one for 32-bit .NET Framework and one for 64-bit .NET Framework, installed with ODP.NET, Managed Driver. While both versions of Oracle.ManagedDataAccessDTC.dll are fully managed, they must be platform-specific, because the MS DTC application programming interfaces are unmanaged code. Thus, ODP.NET, Managed Driver enlistment and commit functions call either the 32-bit or 64-bit MS DTC, depending on the platform.

The two versions of Oracle.ManagedDataAccessDTC.dll are located in the following directories:

  • 32-bit .NET Framework located in: OH\odp.net\managed\x86

  • 64-bit .NET Framework located in: OH\odp.net\managed\x64

Deploy the Oracle.ManagedDataAccessDTC.dll from the directory appropriate for your .NET application's target platform, 32-bit or 64-bit.

Oracle.ManagedDataAccessDTC.dll should not be directly referenced by a .NET application. It will be implicitly loaded by ODP.NET, Managed Driver when using distributed transactions.

The Oracle Services for MTS recovery service does not need to run in the same computer as ODP.NET, Managed Driver. Administrators can specify the host computer name that has a running recovery service in the .NET config file of the application.

Manually Creating an Oracle MTS Recovery Service

Starting with Oracle Database 12c, Oracle Database on Windows software includes the oramtsctl.exe utility to enable manual creation of the OraMTS recovery service. Because ODP.NET, Managed Driver does not automatically create the OraMTS recovery service, running this utility creates the service. When run, the service will be created for the current Oracle home and runs as the Oracle Home User.If ODP.NET, Managed Driver can access an existing OraMTS recovery service running on the same computer or another computer, it is not necessary to run this utility.

To manually create an Oracle MTS Recovery Service:

  1. Install an Oracle Database.

  2. Open the command prompt.

  3. Run this command:

    oramtsctl -new

To delete an Oracle MTS Recovery Service run:

oramtsctl -delete


oramtsctl <-new|-delete|-start|-stop|-status|-config|-passwd|-trace|-trcdir>
          [-host    <hostname|IP_address> ...]
          [-port    <number>]
          [-ip      <IP_address>]
          [-dtchost <DTC_hostname>]
          [-cluster <on|off>]

Create and start a new Oracler1MTSRecoveryService service.

 -delete [Oracle_home_directory]

Delete Oracler1MTSRecoveryService of current home or specified home.


Start Oracler1MTSRecoveryService service.


Stop Oracler1MTSRecoveryService service.

 -status Query Oracler1MTSRecoveryService

service status.

 -config [-port <number>] [-ip <IP_address>] [-dtchost <DTC_hostname>]
         [-cluster <on|off>] [-default]

Show or set Oracler1MTSRecoveryService service configuration.

Use -default to reset Oracler1MTSRecoveryService configuration.


Update Oracler1MTSRecoveryService service user password.

 -trace  [0-5]

Show traces or set trace level. Set level 0 to turn off tracing.

 -trcdir [trace_directory]

Show or set trace directory.

 -host   <hostname|IP_address> ...

Execute operation on host(s) identified by name(s) or IP address(es).

Local host is used if option not specified.

 -port   <number>

Execute -new or -config with this option to specify a service port.

Service port is configured automatically if option not specified.

 -ip     <IP_address>

Execute -new or -config with this option to specify an IP address.


Execute -new or -config with this option to set default configuration.

oramtsctl -new -host host1 host2.domain.com host3 -port 2033


Install the service with automatic configuration:

oramtsctl -new

Install the service on port 2032:

oramtsctl -new -port 2032

Configure the service to use port 2033:

oramtsctl -config -port 2033

Update the service user password:

oramtsctl -passwd

Install the service on several hosts and use uniform port 2033:

oramtsctl -new -host host1 host2.domain.com host3 -port 2033