SAM_INITIALIZE(3) | Corosync Cluster Engine Programmer's Manual | SAM_INITIALIZE(3) |
sam_initialize - Initialize health checking
#include <corosync/sam.h>
cs_error_t sam_initialize (int time_interval, sam_recovery_policy_t recovery_policy);
The sam_initialize function is used to initialize health checking of a process.
Application can have only one instance of SAM. This function must be called before any other of SAM functions. It is recommended to initialize before the process begins any process initialization.
The time_interval parameter is a timeout in milliseconds before taking recovery action after having not received a healthcheck.
If time_interval parameter is zero, there is no time limit and no healthcheck must be sent by the process. In this operational mode, a process failure will continue to execute the recovery policy.
The recovery_policy is defined as type:
typedef enum { SAM_RECOVERY_POLICY_QUIT = 1, SAM_RECOVERY_POLICY_RESTART = 2, SAM_RECOVERY_POLICY_QUORUM = 0x08, SAM_RECOVERY_POLICY_QUORUM_QUIT = SAM_RECOVERY_POLICY_QUORUM | SAM_RECOVERY_POLICY_QUIT, SAM_RECOVERY_POLICY_QUORUM_RESTART = SAM_RECOVERY_POLICY_QUORUM | SAM_RECOVERY_POLICY_RESTART, SAM_RECOVERY_POLICY_CMAP = 0x10, SAM_RECOVERY_POLICY_CONFDB = 0x10, } sam_recovery_policy_t;
where
To perform event driven healthchecking, sam_register(3) and sam_start(3) functions must called. Event driven healthchecking causes the duplicate standby process running the SAM serve rto periodically request healthchecks from the active process.
This call return CS_OK value if successful, otherwise and error is returned.
sam_register(3), sam_start(3), sam_hc_callback_register(3)
CS_ERR_TRY_AGAIN Resource temporarily unavailable
CS_ERR_INVALID_PARAM Invalid argument
CS_ERR_ACCESS Permission denied
CS_ERR_LIBRARY The connection failed
CS_ERR_INTERRUPT System call interrupted by a signal
CS_ERR_NOT_SUPPORTED The requested protocol/functionality not supported
CS_ERR_MESSAGE_ERROR Incorrect auth message received
CS_ERR_NO_MEMORY Not enough memory to complete the requested task
21/05/2010 | corosync Man Page |