Problem:
On a 19c RAC environment, When one node crashed; a session connecting through a service that supports Application Continuity (AC) option failed to fail over to the other active RAC nodes and got disconnected with below error:
ORA-41429: non-replayable side effect on failed connection
Analysis:
Starting from Oracle 12.2 Application Continuity (AC) feature on RAC environment allows the sessions to failover from the crashed/stopped Node instance to the active RAC Node without losing the current running Queries or DMLs except DDLs, DDLs will not be able to fail over throwing ORA-41429 error.
Moreover,; If a session has ran a DDL in the past during its lifetime; it will not be able to fail over and will throw ORA-41429 error; even if it was running a replayable statement like a Query or a DML during the failover.
In case you face this error while testing a service for the Application Continuity feature, make sure to not run any DDLs from that session in order to get accurate failover results.
Looks weird! But this is how it works!