Note: The issue with failover was fixed in 11gR1 with the introduction of a new database process, dia0, that independently from TCP, checks and resolves deadlocks.. In 12c, if the system supports TCP keep-alive tuning per socket, Oracle Net Services automatically uses the enhanced detection model. TCP keep-alive parameters are tuned at a per connection level to detect connection death. TCP keep-alive probes are sent after the connection has been idle for sqlnet.expire_time and within a maximum of one minute, the health of a connection is determined. The following TCP keep -alive parameters are tuned in 12c: TCP_KEEPIDLE, TCP_KEEPCNT, TCP_KEEPINTVL. 12c users can revert to the pre-12c mechanism of sending Oracle Net NS probe packets by setting USE_NS_PROBES_FOR_DCD=true in the sqlnet.ora file. Even though the probe packets are very small, they generate additional traffic on the network. 12c Dead Connection Detection mechanism is faster, as it does not depend on TCP send failures. It also reduces the overhead of probe packet processing on the client side as well as the overhead of sending Oracle Net NS probe packets on the server side. From:

Parallel Concurrent Processing Failover and Dead Connection Detection