[an error occurred while processing this directive]

HP OpenVMS Systems

ask the wizard
Content starts here

Sockets, keepalive, programming within cluster?

» close window

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, &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,  &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,
            &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.
 

answer written or last revised on ( 12-JUL-2001 )

» close window