A Task using Oracle Endpoint as a Source or Target is getting stuck at several occasions. Setting DEBUG or monitoring the Oracle server shows that the Client is stuck waiting for response.
Oracle provides a setting called ENABLE=BROKEN, that can enable keepalive functionality on the TCP/IP connection with the Oracle DB Server. This will allow the client to detect the dead connections.
Note that the timeout depends on the operating system's TCP/IP settings. You would usually want to set it to a lower value than default, which in many cases maybe 2hrs.
The ENABLE=BROKEN can be enabled in the TNS entry or directly in the connection string as follows:
Example 1 -- Adding the property to the TNS definition on the clien
<addressname> = (DESCRIPTION = (ENABLE=BROKEN) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>)) ) (CONNECT_DATA = (SERVICE_NAME = <service_name>) ) )
Example 2 -- Adding the property as part of Replicate's connection string
You can provide Replicate with a full TNS entry maintained as a single line, for example:
(DESCRIPTION=(ENABLE=BROKEN)(ADDRESS=(PROTOCOL=TCPS)(HOST=<hostname>)(PORT=<port>))(CONNECT_DATA=(SERVICE_NAME=<service_name>)))