Pages

Showing posts with label Oracle Network. Show all posts
Showing posts with label Oracle Network. Show all posts

Wednesday, February 26, 2014

Configuring Transparent Application Failover (TAF)



Configuring Transparent Application Failover

The TAF policy can be configured either in the client-side TNS connection entry, defining the FAILOVER_MODE parameter within the CONNECT_DATA section, or at the server-side service attributes. When both methods are defined, the server-side service attributes take precedence.

The following table describes the parameters that are associated with the FAILOVER_MODE:

Parameter
Values
Description
TYPE
Session
When a user connection is lost due to an instance crash, a new session is automatically established on a surviving instance. This type of failover does not support replay of the queries that were in progress.
Select
Re-establishes the lost user connection on a surviving instance, and replays the queries that were in progress.
None
Is the default mode without failover functionality.
METHOD
Basic
Re-establishes the lost user connections at failover time. Doesn't require much work on the backup server until failover time.
Preconnect
Pre-establishes the connection on another instance to provide rapid failover facility.
DELAY

Specifies the amount of time (in seconds) to wait between connect attempts.
RETRIES

Specifies the number of re-attempts to connect after a failover.

The following types of transactions do not automatically fail over and must be restarted by TAF:

  • Transactional statements. Transactions involving INSERT, UPDATE, or DELETE statements are not supported by TAF.
  •  ALTER SESSION statements. ALTER SESSION and SQL*Plus SET statements do not fail over.
  • Transactions using temporary segments in the TEMP tablespace and global temporary tables do not fail over.
  • PL/SQL package states. PL/SQL package states are lost during failover.

EXECUTE DBMS_SERVICE.MODIFY_SERVICE (service_name => 'OLTP_SERVICE'
, aq_ha_notifications => TRUE
, failover_method => DBMS_SERVICE.FAILOVER_METHOD_BASIC
, failover_type => DBMS_SERVICE.FAILOVER_TYPE_SELECT
, failover_retries => 180
, failover_delay => 5
, clb_goal => DBMS_SERVICE.CLB_GOAL_LONG);