Consultor Eletrônico



Kbase P44652: There is a huge delay before an SQL exception is raised on Linux when there is a network connection
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/10/2008
Status: Verified

FACT(s) (Environment):

Progress 9.1C
Progress 9.1D
OpenEdge 10.0A
Linux Intel

SYMPTOM(s):

There is a huge delay before an SQL exception is raised on Linux when there is a network connection loss.

The SQL Exceptions appears in less than a minute under Windows 2000.

CAUSE:

This behavior is due to default Linux TCP/IP settings, more exactly the tcp_retries2 kernel parameter.

The tcp_retries2 value tells the kernel how many times to retry before killing an alive TCP connection. This limit is specified to a minimum of 100 seconds in RFC 1122, but is normally way to short.

The variable takes an integer value and is set to 15 per default. This value corresponds to 13-30 minutes depending on the Retransmission timeout (RTO). Generally this should be a good timeout, you may bring it down but not necessarily.

FIX:

Here is the way to change this parameter (e.g. the value of 3):

- To change it immediately:
echo 3 > /proc/sys
et/ipv4/tcp_retries2
network restart

- To make it permanent (when server gets rebooted):
edit /etc/sysctl.conf
add/modify line
net.ipv4.tcp_retries2 = 3

The value 3 might be too low (or too aggressive), you might want to experiment with it to find the ideal value for your environment.