Database Reference
In-Depth Information
(CONNECT_DATA =
(SERVICE_NAME = TEN)(SERVER = DEDICATED)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(DELAY=5)
(RETRIES=600)
)
)
)
The option ENABLE=BROKEN is available at least since Oracle8 and controls whether or not
the keep-alive option of a network connection is switched on. UNIX network programming is
based on the socket interface. A socket is a communication endpoint. Again, UNIX system call
tracing is the tool of choice to observe what is going on. Here's an example from a Solaris system,
where ENABLE=BROKEN was not configured:
$ truss -o /tmp/truss-no-enable-broken.out -t so_socket,setsockopt \
-v so_socket,setsockopt sqlplus system@DBSERVER_TAF.WORLD
$ cat /tmp/truss-no-enable-broken.out
so_socket(PF_INET, SOCK_STREAM, IPPROTO_IP, "", 1) = 8
setsockopt(8, tcp, TCP_NODELAY, 0xFFFFFFFF7FFF6924, 4, 1) = 0
Repeating the same actions with ENABLE=BROKEN configured yields the following:
so_socket(PF_INET, SOCK_STREAM, IPPROTO_IP, "", 1) = 8
setsockopt(8, SOL_SOCKET, SO_KEEPALIVE, 0xFFFFFFFF7FFF665C, 4, 1) = 0
setsockopt(8, tcp, TCP_NODELAY, 0xFFFFFFFF7FFF6924, 4, 1) = 0
setsockopt(8, SOL_SOCKET, SO_KEEPALIVE, 0xFFFFFFFF7FFF529C, 4, 1) = 0
setsockopt(8, SOL_SOCKET, SO_KEEPALIVE, 0xFFFFFFFF7FFFDC2C, 4, 1) = 0
Three additional setsockopt system calls have occurred after setting ENABLE=BROKEN . The C
language flag to switch on sending of keep-alive packets is SO_KEEPALIVE , as is evident from the
preceding output.
On Solaris, slightly fewer than 80 parameters control TCP/IP networking. The Solaris Tunable
Parameters Reference Manual ([SoTu 2007]) has this to say about SO_KEEPALIVE ( ndd is a Solaris
utility for changing TCP/IP parameters):
tcp_keepalive_interval
This ndd parameter sets a probe interval that is first sent out after a TCP connection is
idle on a system-wide basis.
Solaris supports the TCP keep-alive mechanism as described in RFC 1122. This mecha-
nism is enabled by setting the SO_KEEPALIVE socket option on a TCP socket.
If SO_KEEPALIVE is enabled for a socket, the first keep-alive probe is sent out after a
TCP connection is idle for two hours, the default value of the tcp_keepalive_interval
parameter. If the peer does not respond to the probe after eight minutes, the TCP
connection is aborted. For more information, refer to tcp_keepalive_abort_interval.
 
Search WWH ::




Custom Search