Sie sind auf Seite 1von 7

KeepAlive

CONTENTS

Windows Operative System 3


Linux Operative System. 4
Red Hat.. 4
Suse.. 4
HP-UX 11.X Operative System 5

KeepAlive
Setting the keepalive intervals for TCP/IPv4 to prevent network disconnections on different
OS:

Windows Operative System


On windows systems just set these 3 variables in the [programData]\omniback\omnirc file:
OB2IPCKEEPALIVE=1
OB2IPCKEEPALIVETIME=900
OB2IPCKEEPALIVEINTERVAL=60
These are primarily meant for disk agents running on Windows and the values are stated in
seconds.
If you want to enable the parameters at the OS level then check the KeepAliveTime in the
registry.
Use regedt32 as described in this document:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;120642

KeepAliveTime
Key: Tcpip\Parameters
Value Type: REG_DWORD - Time in milliseconds Valid Range: 1 - 0xFFFFFFFF
Default: 7,200,000 (two hours)

Linux Operative System


On Linux systems you need to specify the time and the interval at the OS level while enabling
keepalive functionality in DP.
So set this variable on the /opt/omni/.omnirc file:
OB2IPCKEEPALIVE=1
And then issue these commands to set the value temporarily until the computer is
restarted:
# sysctl -w net.ipv4.tcp_keepalive_time = 900
# sysctl -w net.ipv4.tcp_keepalive_intvl = 60

To make the change permanently update the file /etc/sysctl.conf with


net.ipv4.<tcp_parameter> = <tcp_value> and issue one of the following commands,
depending on which version of Linux you are running:

Red Hat:
# chkconfig sysctl on

Suse:
# chkconfig boot.sysctl on

As an alternative you can just run these commands:


# echo 600 > /proc/sys/net/ipv4/tcp_keepalive_time
# echo 60 > /proc/sys/net/ipv4/tcp_keepalive_intvl

HP-UX 11.X Operative System


On HP-UX 11.x ndd can be used to get/set the kernel parameter for the 'keepalive' packets
interval.
'ndd -get /dev/tcp tcp_keepalive_interval' will report the interval in milliseconds.

First enable keepalive functionality in DP. So set this variable on the /opt/omni/.omnirc file:
OB2IPCKEEPALIVE=1
Then run these commands:
# ndd -set /dev/tcp tcp_keepalive_interval 60000

Changing keepalive settings on other OS's requires a process similar to linux, first enable
keepalive functionality in DP by updating the
/opt/omni/.omnirc file with this variable:
OB2IPCKEEPALIVE=1

Then check this link to find out how to set the time and interval at the OS level:
http://www.starquest.com/Supportdocs/techStarLicense/SL002_TCPKeepAlive.shtml

Additional Information
When DP has an open connection it may be disconnected by the operating system or any
hardware that is in the data transport chain (like a firewall).
Typical disconnection timeouts are 1 or 2 hours depending of the platform, firewall or
complex network. When such a silent disconnection occurs DP will lose the connection and
not always be able to recover.

To keep such a connection alive we have a possibility to open the connection with a
'keepalive' option. Then the lower level IPC layer will send out 'keepalive' packages to
stimulate the connection in order to prevent a silent disconnection.
The 'keepalive' packets are part of TCP protocol and are transparent to the program opening
or using the connection. They are handled by the system and are not seen by application.

It must be clear that connections with 'keepalive' functionality are not a property of DP but
from the lower level system code.

To open the connections with the 'keepalive' option the user must set
OB2IPCKEEPALIVE=1 in the omnirc file of each host in the cell that can potentially suffer
from a disconnection.

The issue is that by default the 'keepalive' interval (the time between two packets) is set to
two hours on many systems, rendering them ineffective in some cases if other parties control
the connection. This interval can be changed.

What value should be set?


For a standard operating system the 'keepalive' packages are send out every 2 hours
however some network hardware, monitoring software and firewalls may disconnect the
connection already earlier.
So 'keepalive' packages should be interchanged at a shorter interval.

Set the 'keepalive' package transmit to 15 minutes = 900000 If this solves the disconnection
issue you know the connectivity layer disconnects earlier than the default system value.