Overview

Application Continuity is a new feature and enhancement of the TAF and FCF. Application continuity is composed by two components:

Transactional Guard

Transactional Replay

In a nutshell, you will no more wonder if you have to redo your changes if a session is killed or the instance is terminated. Up to now, all your session data (including your transactional data) was wiped, once the instance is destroyed. However from Oracle Database 12c, you can configure a service to record your changes and replay them next time you connect as follows:

Service Creation

Create service actest

Status & Startup

We can check the configuration of the service as follows. Remember to put the database name.

Status and Start the service

Now that we have the service, let's run the simple application. The application itself is one, but we will run it with different connection settings:

Application Source

Below you can see the source which I have used:

Application Source

Now that we have the code, we can run it one in a two ways:

Noreplay Mode

We can run that application standard without any application continuity as follows:

No Repluay Mode

Where the connection properties are as follows:

Connection properties

That way, the application WILL NOT take advantage of the Application Continuity and it will fail if the connection gets interrupted:

Interrupted Connection

Replay Mode

In order to make the application aware of the feature, we have to start it with the Universal Connection pooling using the replay option. To do that, we can use THE SAME application but with different connection properties:

Connection Properties

The properties are 99.9% the same, with the only difference of the: “datasource=oracle.jdbc.replay.OracleDataSourceImpl” property in the replay one:

Difference between Replay and No replay

That way, the application will be able to reconnect after interrupted connection:

Interrupted Connection