Use OraMTS Recovery Feature on Autonomous Database

Use Oracle MTS (OraMTS) Recovery Service to resolve an in-doubt Microsoft Transaction Server transaction.

About OraMTS Recovery Service

The Oracle MTS (OraMTS) Recovery Service resolves an in-doubt Microsoft Transaction Server transaction.

An Microsoft Transaction Server (MTS) is a COM-based transaction processing system that runs on an internet or network server.

An Oracle MTS Recovery Service is automatically installed with Oracle Services For Microsoft Transaction Server. The Oracle MTS (OraMTS) Recovery Service resolves in-doubt transactions on the computer that started the failed transaction. A scheduled recovery job for each MTS-enabled database lets the OraMTS Recovery Service resolve in-doubt transactions.

To use MTS with an Oracle database, distributed transaction capabilities are necessary.

When any of these components fails, Oracle transactions connected to Microsoft Transaction Server become in-doubt transactions:

  • Microsoft Transaction Server application

  • Network

  • Microsoft Distributed Transaction Coordinator (MS DTC)

See Using Microsoft Transaction Server with Oracle Database for more information.

The Oracle MTS (OraMTS) Recovery Service resolves an in-doubt Microsoft Transaction Server transaction in this order:
  1. The DBMS recovery job detects an in-doubt MTS-related transaction.

  2. The DBMS recovery job extracts the recovery service's endpoint address from the XID of the in-doubt transaction and requests the recovery service for the outcome of the MTS/MS DTC transaction.

  3. The recovery service requests its MS DTC for transaction outcome.

  4. The recovery service reports transaction outcome to the DBMS job process.

  5. The DBMS recovery job commits or terminates the in-doubt transaction based on the outcome reported by MS DTC.

Note:

Each computer can only have one instance of Oracle MTS (OraMTS) Recovery Service installed.

Prerequisites to Enable OraMTS Recovery Service on Autonomous Database

Lists the prerequisites to enable OraMTS Recovery Service for an Autonomous Database.

To enable Oracle MTS Recovery Service on an Autonomous Database:

  • You must configure your database on a private endpoint.

  • For your OraMTS Recovery Service, you must deploy the VM in the same private network as the database.

  • You must configure an OCI Private Load Balancer (LBaaS) and the Load Balancer (LBaaS) must be able to access the VM on port 2030. See Load Balancer Management for more information.

  • Your database must be able to communicate with the Load Balancer (LBaaS) on port 443. To enable this you need an egress rule for port 443 in VCN's security list or in the network security group.

  • Your Load Balancer (LBaaS) must also be able to receive the communication from the database. To enable this you need an ingress rule for your Load Balancer (LBaaS) for port 443.

  • Reserve a domain name with a domain provider.

  • Generate an SSL certificate for the domain.

  • You must configure a secure HTTPS endpoint using OCI Load Balancer to ensure that the communication between the Autonomous Database and the MTS server uses HTTPS protocol with SSL encryption. See Configure Network Access with Private Endpoints and Submit an HTTP Request to a Private Host with UTL_HTTP for more information.

Enable OraMTS Recovery Service on an Autonomous Database

Describes steps to enable OraMTS Recovery Service on an Autonomous Database.

To enable OraMTS Recovery Service on your Autonomous Database, you must be logged in as the ADMIN user or have the EXECUTE object privilege on DBMS_CLOUD_ADMIN.

Run DBMS_CLOUD_ADMIN.ENABLE_FEATURE to enable OraMTS Recovery Service on your Autonomous Database.

Example to Enable and Verify the OraMTS Recovery Service:

BEGIN 
   DBMS_CLOUD_ADMIN.ENABLE_FEATURE(
        feature_name => 'ORAMTS',   
        params       => JSON_OBJECT('location_uri' VALUE 'https://mymtsserver.mycorp.com')
   );
END;
/
SELECT property_value FROM database_properties WHERE property_name = 'ORAMTS_SERVER';

The first example enables the OraMTS Recovery Service on your Autonomous Database.

The feature_name parameter specifies the name of the feature to enable. The ORAMTS value indicates that you are enabling the OraMTS recovery service feature for your database.

The location_uri parameter specifies the HTTPS URL for the OraMTS server in a customer network.

The second example is a SQL statement that you can run to verify that the OraMTS Recovery Service is enabled for your Autonomous Database.

See ENABLE_FEATURE Procedure for more information.

Disable OraMTS Recovery Service on an Autonomous Database

Describes steps to disable OraMTS Recovery Service for an Autonomous Database.

To disable OraMTS Recovery Service on your Autonomous Database, you must be logged in as the ADMIN user or have the EXECUTE object privilege on DBMS_CLOUD_ADMIN.

Run DBMS_CLOUD_ADMIN.DISABLE_FEATURE to disable OraMTS Recovery Service on your Autonomous Database.

Example to disable the OraMTS Recovery Service:

BEGIN 
DBMS_CLOUD_ADMIN.DISABLE_FEATURE(
    feature_name => 'ORAMTS');   
END;
/

This disables the OraMTS Recovery feature on your Autonomous Database.

The feature_name parameter specifies the name of the feature to disable. The ORAMTS value indicates that you are disabling the OraMTS recovery service feature for your database.

See DISABLE_FEATURE Procedure for more information.