: >We have been having problems with SQLNet for
: >our Oracle database where some daemon tcp
: >processes hang out for days at time, bogging
: >down the system. Someone at Oracle mentioned
: >a keep-alive parameter for tcp, of course,
: >the person at Oracle couldn't tell me how
: >to configure it or where to find information
: >on it. Apparently, this parameter causes
: >hung processes to be killed in a specific
: >amount of time, without a setting they
: >stay indefinately, which is the problem
: >we have encountered.
: The keepalive parameter must be set by the programs
: that hang around now by doing a setsockopt() on
: the socket file descriptor. If Oracle has written
: those daemons, they must set the keepalive.
: When set, keepalive probes will be send when the connection is
: idle for `ndd /dev/tcp tcp_keepalive_interval` milliseconds.
: After which time the normal TCP/IP timers take over, cuasing
: a connection timeout in `ndd /dev/tcp tcp_ip_abort_interval`
: milliseconds. This latter interval is too short by default
: (two minutes). We use 20 minutes, though 30 minutes would
: probably more in keeping with the standards.
: Casper
One of our Oracle DBAs game me a sheet from Oracle explaining
how to fix the problem...there is a header file in
/usr/include/netinet called tcp_timer.h where there is a
#define TCPTV_KEEP_IDLE. This must be set to a lower number.
My question, though, is this; the above is great if you're
writing your own programs, but is there a variable you
can set in /etc/system to do the same? Otherwise, their
workaround is worthless.
Thanks,
Richard