Oracle Services for MTS


Q: What are the Oracle Services for MTS?

A: The Oracle Services for MTS allow an Oracle database to perform as a resource manager in MTS/DTC transaction environments.

The Oracle Services for MTS consist of two main components: the proxy (associated with the database), and the client library (associated with the middle-tier). The proxy is an actual Windows service; the client library is a DLL. Both are installed as part of the Oracle Services for MTS product.

Q: What issues are addressed by the patch for the Oracle Services for MTS?

A: The patch allows distributed transactions involving multiple resource managers. Fixed bugs include

  • 1256860: OracleMTSService Error -2147167997 in distributed transactions
  • 1248443: Unable to successfully start ORAMTS with MTS user other than MTSSYS
Q: Is it possible to use the Microsoft OLE DB driver with the Oracle Services for MTS?

A: No. Please use the Oracle Provider for OLE DB in conjunction with the Oracle Services for MTS. It is also possible to use Oracle's OO4O and ODBC drivers.

If you must use the Microsoft OLEDB driver, you can still perform transactions with an Oracle database through Oracle's XA functionality; Microsoft provides a DLL for this.

Q: How many middle-tier instances of MTS can access a single Oracle database? How do I configure such an environment?

A: Any number of MTS instances in the middle-tier can access an Oracle database through the Oracle Services for MTS. Note that there is only one database proxy (i.e., one Oracle Service for MTS) per Oracle database, and that many middle-tier MTS instances may coordinate through this same service.

The following explains in greater detail, for the scenario of multiple middle-tier systems accessing a single Oracle database through OLEDB and MTS.

For each middle-tier system, you should install the Oracle Provider for OLEDB and the Oracle Services for MTS client library. The middle-tier systems are the application servers and probably have MTS/DTC on them.

In addition, an Oracle Services for MTS database proxy (i.e., one actual Oracle Service for MTS) must be installed and configured for the Oracle database. This service can be run on the database system, on one of the middle-tier systems, or on a separate system. The proxy should be considered part of the database, making the database a resource manager in the DTC environment. The proxy service can be set up with the Oracle Manager for MTS tool. The system containing the proxy probably has MTS/DTC on it.

When the proxy service is created, its location is stored in the database. The client library uses the database table to find the proxy. Therefore, the middle-tier systems can find the proxy without additional configuration.

The proxy service is involved only during the enlist, commit, abort, and recovery phases of transactions. Thus, the processing load for the service is low and should not significantly impact scalability. Furthermore, availability can be improved through failover.