  Sockets, keepalive, programming within cluster? 
 The Question is:
 
How can I shorten the failover time for clients connected to ORACLE via SQL*Net
 when the relevant node of the cluster is down
 
 The Answer is:
 
  The OpenVMS Wizard will assume this question is entirely unrelated to
  Oracle and SQL*Net, and will assume that this question is specific to
  shortening the connection timeouts for IP sockets, and will further
  assume this is Compaq TCP/IP Services for OpenVMS V5.1.
 
  If so, please see the setsockopt or socket call documentation around
  the keepalive option.
 
  If using the C socket library interface:
 
    int one=1;
    setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &amp;one, sizeof one);
 
  If using the sys$qio[w] interface:
 
    int     one = 1;
    struct  { short len, param; int *ptr; }
            item_list[] = {{sizeof(one), TCPIP$C_REUSEADDR,  &amp;one}},
            descriptor = {sizeof(item_list), TCPIP$C_SOCKOPT, item_list};
    sys$qiow(0,                     /* Event flag */
            channel,                /* Channel number */
            IO$_SETMODE,            /* I/O function */
            iosb,                   /* I/O status block */
            0, 0,
            0, 0, 0, 0,
            &amp;descriptor, 0);        /* P5 - socket option list */
 
 
  You can change the polling interval and the maximum timeout interval
  either on a system-wide basis (using TCPIP SET PROTOCOL TCP command)
  or on a per-socket basis.
 
  With additional access within the application operating environment
  involved (if this is not a question of TCP/IP sockets), the OpenVMS
  lock manager and/or the cluster event notification services could be
  used to track process availability.
 
