ham_action_heartbeat_healthy()

Updated: October 28, 2024

Reset a heartbeat's state to healthy

Synopsis:

#include <ha/ham.h>

ham_action_t *ham_action_heartbeat_healthy(
                 ham_condition_t *chdl,
                 const char *aname,
                 unsigned flags)

Arguments:

chdl
The HAM condition handle.
aname
The name of the action.
flags
The flag indicating how the function will be rearmed. See below.

Library:

libham

Description:

You use this function to reset the state of a heartbeat to healthy so that HAM can resume monitoring. Assuming that the client missed one or more heartbeats (i.e., the condition CONDHBEATMISSEDLOW | CONDHBEATMISSEDHIGH is true), and that a recovery has been performed, the ham_action_heartbeat_healthy() call instructs HAM to monitor the client again.

The following flag is currently defined:

HREARMAFTERRESTART
Indicates that the action is to be automatically rearmed after the entity that it belongs to is restarted.
By default, this flag is disabled for actions associated with death conditions (i.e., CONDDEATH, CONDABNORMALDEATH); but enabled for actions associated with all other conditions. Actions associated with death conditions automatically get pruned across restarts of the entity.
Note: If the condition that this action belongs to is pruned after a restart, then this action will also be removed, regardless of the value of this flag.

Returns:

A valid handle to an action to a condition, or NULL if an error occurred (errno is set).

Errors:

EBADF
Couldn't connect to the HAM.
EEXIST
This action already exists in the specified condition.
EINVAL
The name given in aname is invalid (e.g., it contains the / character) or is NULL.
ENAMETOOLONG
The name given (in aname) is too long, i.e., it exceeds _POSIX_PATH_MAX (defined in <limits.h>). Note that the combined length of an entity/condition/action name is also limited by _POSIX_PATH_MAX.
ENOMEM
Not enough memory to create a new handle.

In addition to the above errors, the HAM returns any error it encounters while servicing this request.

Classification:

QNX Neutrino

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes