Provided by: libpcp3-dev_3.8.12ubuntu1_amd64 bug

NAME

       pmReconnectContext - reconnect to a PMAPI context

C SYNOPSIS

       #include <pcp/pmapi.h>

       int pmReconnectContext(int handle);

       cc ... -lpcp

DESCRIPTION

       As a consequence of network, host or Performance Metrics Collector Daemon (PMCD) failures,
       an applications connection to a PMCD may be established and then subsequently lost.

       The  routine  pmReconnectContext  allows  an  application  to  request  that  the  context
       identified by handle should be re-established, provided the associated PMCD is accessible.

       To avoid flooding the system with reconnect requests, pmReconnectContext will only attempt
       a reconnection after a suitable delay from the previous unsuccessful attempt to  reconnect
       this  context.  This  imposed  restriction  on  the reconnect re-try time interval uses an
       exponential back-off so that the initial delay is 5 seconds after the  first  unsuccessful
       attempt, then 10 seconds, then 20 seconds, then 40 seconds and then 80 seconds thereafter.

       The  environment  variable  PMCD_RECONNECT_TIMEOUT  may  be  used to redefine the back-off
       intervals, see PMAPI(3).

       If the reconnection succeeds, pmReconnectContext returns handle.

       If  handle  identifies  a  context  associated  with  an  archive   source   of   metrics,
       pmReconnectContext does nothing and returns handle.

       Calling  pmReconnectContext  with  a handle identifying a currently connected context will
       cause the connection to be broken before any reconnection is attempted.

       Note that even in the case of  a  successful  reconnection,  pmReconnectContext  does  not
       change the current Performance Metrics Application Programming Interface (PMAPI) context.

       When   attempting  to  connect  to  a  remote  pmcd(1)  on  a  machine  that  is  booting,
       pmReconnectContext could potentially block for  a  long  time  until  the  remote  machine
       finishes  its  initialization.   pmReconnectContext  will abort and return an error if the
       connection has not been established  after  some  specified  interval  has  elapsed.   The
       default  interval  is  5 seconds.  This may be modified by setting PMCD_CONNECT_TIMEOUT in
       the environment to a real number of seconds for the desired timeout.  This is most  useful
       in cases where the remote host is at the end of a slow network, requiring longer latencies
       to establish the connection correctly.

ENVIRONMENT

       PMCD_CONNECT_TIMEOUT
              Timeout period (in seconds) for pmcd(1) connection attempts.

       PMCD_RECONNECT_TIMEOUT
              Redefines the back-off intervals - refer to PMAPI(3).

SEE ALSO

       pmcd(1), PMAPI(3), pmNewContext(3) and pmUseContext(3).

DIAGNOSTICS

       PM_ERR_NOCONTEXT

              handle does not identify a valid PMAPI context

       -ETIMEDOUT

              The re-try time has not elapsed, or the reconnection is attempted and fails.

CAVEAT

       Applications that use gethostbyname(3) should exercise caution because the  static  fields
       in  struct  hostent  may  not  be  preserved  across  some PMAPI(3) calls.  In particular,
       pmNewContext(3) and pmReconnectContext(3) both may call gethostbyname(3) internally.