Oracle Application Continuity enables database requests to automatically replay transactional or non-transactional operations in a non-disruptive and rapid manner in the event of a severed database session, which results in a recoverable error. Application Continuity improves end-user experience by masking planned and unplanned related errors. Applications can be developed without complex logic to handle exceptions, while automatically replaying database operations upon a recoverable error.
Without Application Continuity, it is almost impossible to mask outages in a safe and reliable manner. Common issues encountered include:
The client state remains at present time, with entered data, returned data, and variables cached, while the database state changes are lost.
If a transaction commit has occurred, the commit message is not durable. Moreover, checking a lost request does not guarantee that it will not commit after being checked.
Non-transactional database session state is lost.
If the request can continue, the database and the client session must be synchronized.
Application Continuity is a feature available with the Oracle Real Application Clusters (RAC), Oracle RAC One Node, Oracle Active Data Guard, and Oracle Autonomous Database in both Shared and Dedicated Infrastructure.
In Oracle Database 18c, Application Continuity improves transparent session and transactional state tracking and recording of the database session to enable recovery following recoverable outages. This enhancement is called Transparent Application Continuity (TAC). TAC has no reliance on application knowledge or application code changes, allowing it to be enabled for your applications. ODP.NET application transparency and failover are achieved by consuming the state-tracking information that captures and categorizes the session state usage as the application issues user calls.
ODP.NET and Application Continuity
ODP.NET, Unmanaged Driver first supported Application Continuity with version 12.2. While Application Continuity was first introduced in Oracle Database 12c Release 1 (12.1), ODP.NET requires a minimum of Oracle Database 12c Release 2 (12.2) server.
ODP.NET, Managed Driver and ODP.NET Core do not support Application Continuity and TAC.
With Application Continuity or TAC enabled, ODP.NET ensures all the application's executed statements are logged appropriately so that they can be replayed upon a recoverable error. This applies for all application SQL and PL/SQL, as well as any internal ODP.NET operations.
On the client side, Application Continuity or TAC is enabled by setting the ODP.NET connection string attribute,
Application Continuity is set to
true, but the database server does not enable Application Continuity or TAC, then ODP.NET will still create new connections. However, these connections will not be
Application Continuity enabled.