The UNIX, Linux and Windows operating systems use a 'keepalive' setting to test idle TCP connections and ensure they are still active. By default, 'keepalive' is set to 7200000ms (2 hours). This means that every 2 hours the server machine tests the idle TCP connection by pinging the client machine from where the connection is coming. If the server gets no response back from the client, then 'keepalive' terminates the idle connection. The 'keepalive' interval can be modified by configuring the operating system to reduce the time from 2 hours to 5 minutes.
Occasionally, an ArcSDE application server connection (gsrvr) may get left behind on the server, due to an abnormal shutdown of the gsrvr connection. If this happens, the 'keepalive' setting of the operating system can help to remove the dead gsrvr process in order to help free up server resources.
For a dead gsrvr process to be removed, the ArcSDE configuration parameter called TCPKEEPALIVE must be enabled by setting its value to TRUE. This allows ArcSDE to check for dead gsrvr connections, based on the 'keepalive' interval settings of the operating system.
WARNING: This article contains instructions to make specific changes to essential parts of your operating system. If these specific changes are not done correctly, it may cause serious problems to your computer operating system and files. First, ESRI recommends that you make a complete backup of your system, including the registry, before implementing any of the specific changes. It is highly recommended that you consult with your IT/MIS department, or other qualified computer systems professional before proceeding. ESRI cannot guarantee that you can solve problems that result from incorrect use of the Registry Editor utility. Use the Registry Editor utility at your own risk. Note: your operating system and any subsequent service packs may affect these instructions. These instructions are subject to change without notice.
Please consult the operating system documentation for more information on making 'keepalive' setting changes.
# ndd -set /dev/tcp tcp_keepalive_interval 300000
no -o tcp_keepidle=591
ndd -set /dev/tcp tcp_time_wait_interval 300000
# Decrease the time default value for tcp_keepalive_time
tcp_keepalive_time = 1800