Enable and Disable Application Continuity

Change the failover type on Autonomous Data Warehouse using the DBMS_CLOUD_ADMIN procedures to enable or to disable Application Continuity. New sessions use the new failover type from the time when you modify the current value.

Application Continuity masks outages from end users and applications by recovering the in-flight work for impacted database sessions following outages. Application Continuity performs this recovery beneath the application so that the outage appears to the application as a slightly delayed execution.

See Overview of Application Continuity for more information on Application Continuity.

Enabling Application Continuity requires Oracle Client software version 18.3 (or higher).

Application Continuity is enabled on a per database service level. You supply a value for the service_name.

Note:

By default Application Continuity is disabled.
  1. Obtain the value for the service_name parameter to supply when you enable or disable Application Continuity.

    Find the service_name using one of the following techniques:

    • Look in the tnsnames.ora file in the wallet.zip file you use to connect to your service. For example:
      service_name=nvt21_adb1_high.adwc.oraclecloud.com
    • Use a command similar to the following to SELECT from v$services on your database and identify the service where you want to enable Application Continuity:
      SELECT name, drain_timeout FROM v$services;
      NAME                                                    DRAIN_TIMEOUT
      ------------------------------------------------------- -------------
      nvt21_adb1_low.adwc.oraclecloud.com                     0
      nvt21_adb1_high.adwc.oraclecloud.com                    0
      nvt21_adb1_medium.adwc.oraclecloud.com                  0

    Notice the DRAIN_TIMEOUT for the high service has the value 0, indicating that Application Continuity is disabled.

  2. Use DBMS_CLOUD_ADMIN.ENABLE_APP_CONT to enable Application Continuity on the service you select.

    For example, to enable Application Continuity for the service named nvt21_adb1_high, run the following command:

    BEGIN
    	DBMS_CLOUD_ADMIN.ENABLE_APP_CONT(
    		service_name => 'nvt21_adb1_high.adwc.oraclecloud.com'
    	);
    END;
    /

    Check the output of the query on v$services to verify that Application Continuity is enabled.

    SELECT name, drain_timeout FROM v$services;
    NAME                                                    DRAIN_TIMEOUT
    ------------------------------------------------------- -------------
    nvt21_adb1_low.adwc.oraclecloud.com                     0
    nvt21_adb1_high.adwc.oraclecloud.com                    300
    nvt21_adb1_medium.adwc.oraclecloud.com                  0

    Notice the DRAIN_TIMEOUT for the high service is now a non-zero value, 300, indicating that Application Continuity is enabled.

If Application Continuity is enabled and you want to disable Application Continuity, use DBMS_CLOUD_ADMIN.DISABLE_APP_CONT. For example, if you enabled Application Continuity in the service named nvt21_adb1_high and you want to disable Application Continuity for this service, run the following command:

BEGIN
	DBMS_CLOUD_ADMIN.DISABLE_APP_CONT(
		service_name => 'nvt21_adb1_high.adwc.oraclecloud.com'
	);
END;
/

See ENABLE_APP_CONT Procedure for more information on DBMS_CLOUD_ADMIN.ENABLE_APP_CONT.

See DISABLE_APP_CONT Procedure for more information on DBMS_CLOUD_ADMIN.DISABLE_APP_CONT.