The Oracle Transparent Application Failover (TAF) feature allows application users to reconnect to surviving database instances if an existing connection fails. When such a failure happens, all uncommitted transactions will be rolled back and an identical connection will be established. The uncommitted transactions have to be resubmitted after reconnection. The TAF reconnect occurs automatically from within the OCI library.
To use all features of TAF, the application code may have to be modified. When your application is query-only, TAF can be used without any code changes. In general, TAF works well for reporting.
Server-Side vs. Client-Side TAF
TAF can be implemented either client-side or server-side. Service attributes are used server-side to hold the TAF configuration; client-side the TNS connect string must be changed to enable TAF. Settings configured server-side supersede their client-side counterparts if both methods are used. Server-side configuration of TAF is the preferred method.
You can configure TAF in two different failover modes. In the first mode, Select Failover, SELECT statements that are in progress during the failure are resumed over the new connection. In the second mode, Session Failover, lost connections and sessions are re-created.
- Select Selects will resume on the new connection
- Session When a connection is lost, a new connection is created automatically
When TAF is set up client-side, it can be configured to establish from the beginning a second connection to another (backup) instance. This eliminates the reconnection penalty but requires that the backup instance support all connections from all nodes set up this way.
- Basic Establishes connections only when failover occurs
- Preconnect Pre-establishes connections to the backup server