Step-by-Step Guide: Configure Transparent Application Continuity (TAC) in Oracle RAC
Oracle’s Transparent Application Continuity (TAC) is a powerful feature that enhances high availability by automatically recovering failed database sessions without requiring application changes. In an Oracle RAC environment, TAC ensures uninterrupted transactions even during node failures.
This guide walks you through configuring TAC in an Oracle RAC environment with a Container Database (CDB) and Pluggable Database (PDB).
Environment Overview
– DB Name: prim
– CDB with PDB: pdbprim
– Nodes: prim1, prim2
– Service Name: fg_tac.learnomate.org
– SCAN Host: node-scan
– User: pdbuser
– Table for Demo: test_table
1. Create the TAC-Enabled Service
Run the following as the grid user:
srvctl add service -db prim \ -service fg_tac.learnomate.org \ -pdb pdbprim \ -preferred prim1 \ -available prim2 \ -failovertype TRANSACTION \ -failovermethod BASIC \ -commit_outcome TRUE \ -replay_init_time 1800 \ -retention 86400 \ -notification TRUE \ -tafpolicy BASIC
2. Verify the Service Configuration
srvctl config service -db prim -service fg_tac.learnomate.org
3. Start the Service
srvctl start service -db prim -service fg_tac.learnomate.org
4. Create TNS Entry (on Client Side)
In tnsnames.ora:
FG_TAC = (DESCRIPTION = (FAILOVER=ON) (LOAD_BALANCE=ON) (ADDRESS = (PROTOCOL = TCP)(HOST = node-scan)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = fg_tac.learnomate.org) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) (RETRIES = 180) (DELAY = 5) ) ) )
5. Simulate a Client Transaction
Login to the PDB as application user (pdbuser):
sqlplus pdbuser/password@FG_TAC
-- Run DML INSERT INTO test_table VALUES (1, 'Oracle TAC Demo'); -- DO NOT commit SELECT * FROM test_table;
6. Simulate Node Failure
Assuming prim1 is the current host:
srvctl stop instance -db prim -instance prim1 -force
7. Observe TAC Behavior
– Your SQL session will not get disconnected.
– DML operation will be replayed on prim2.
– No ORA-3113 or ORA-25408 errors.
– You can commit now:
COMMIT;
8. Verify Transparent Application Continuity
Run this on the new node:
SELECT FAILOVER_TYPE, FAILOVER_METHOD, SESSION_STATE FROM V$SESSION WHERE SERVICE_NAME = 'fg_tac.learnomate.org';
Expected Output:
FAILOVER_TYPE | FAILOVER_METHOD | SESSION_STATE |
---|---|---|
TRANSACTION | BASIC | REPLAYING |
Important Notes
– Application doesn’t require code changes but must use Oracle-supported drivers like JDBC, ODP.NET, Oracle Call Interface, etc.
– Replay buffers the session to memory; long idle sessions may not be eligible.
– Works best when the app uses services with TAC setup, not just SYSDBA logins.
Final Thoughts
Transparent Application Continuity (TAC) is a powerful feature for increasing uptime and user satisfaction. Whether it’s a planned maintenance or an unplanned outage, TAC ensures that your application doesn’t feel the impact.
If you want to learn more or practice this in a live environment, check out Learnomate Technologies for labs, videos, and expert guidance!
For better insights, don’t forget to visit our YouTube channel: www.youtube.com/@learnomate. Want to explore more about different technologies? Check out our blog section: https://learnomate.org/blogs/. Explore our website to know more about our courses and training: www.learnomate.org. Connect with me personally on LinkedIn: Ankush Thavali