Database Reference
In-Depth Information
CHAPTER 31
■ ■ ■
Local Naming Parameter
ENABLE=BROKEN
T
he local naming parameter setting
ENABLE=BROKEN
is undocumented. This parameter may be
used in a Net service name definition to switch on sending of TCP/IP keep-alive packets in
order to detect communication failures. Keep-alive packets are not normally sent over a TCP/IP
connection. Furthermore, certain timeouts of the TCP/IP protocol are in the range of hours,
such that it may take unacceptably long to detect a communications failure. The parameter
setting
ENABLE=BROKEN
allows for reasonably fast detection of communication failures without
changing operating system TCP/IP parameters that affect all TCP/IP connections. The default
values of TCP/IP keep-alive parameters may need to be changed in order to best use
ENABLE=
BROKEN
, but these changes do not affect other TCP/IP connections that do not enable keep-
alive packets.
Node Failure and the TCP/IP Protocol
Before the advent of Oracle10
g
Clusterware and its support for virtual IP addresses, failure of a
node in a RAC cluster would normally leave clients, which were connected to the failed node,
waiting for extended periods of time, possibly up to two hours—the default period for TCP/IP
connection time-out.
ENABLE=BROKEN
addresses RAC high availability environments. It can be
used to reduce the interval where a client hangs due to a broken network connection to a RAC
cluster node that died unexpectedly.
Syntactically,
ENABLE=BROKEN
belongs in the
DESCRIPTION
section, right where other high
availability related parameters such as
FAILOVER
have to be placed. Following is an example Net
service name definition for use with a two-node RAC cluster and Transparent Application
Failover (TAF):
DBSERVER_TAF.WORLD =
(DESCRIPTION =
(ENABLE=BROKEN)
(FAILOVER=ON)
(LOAD_BALANCE=OFF)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver1.oradbpro.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver2.oradbpro.com)(PORT = 1521))
)
419