23 #ifndef _MASTER_HEARTBEAT_H_ 24 #define _MASTER_HEARTBEAT_H_ 35 #include <netinet/in.h> 36 #elif defined (WINDOWS) 54 #define HB_PING_UNKNOWN_STR "UNKNOWN" 55 #define HB_PING_SUCCESS_STR "SUCCESS" 56 #define HB_PING_USELESS_HOST_STR "SKIPPED" 57 #define HB_PING_SYS_ERR_STR "ERROR" 58 #define HB_PING_FAILURE_STR "FAILURE" 59 #define HB_PING_STR_SIZE (7) 107 #define HB_PSTATE_UNKNOWN_STR "unknown" 108 #define HB_PSTATE_DEAD_STR "dead" 109 #define HB_PSTATE_DEREGISTERED_STR "deregistered" 110 #define HB_PSTATE_STARTED_STR "started" 111 #define HB_PSTATE_NOT_REGISTERED_STR "not_registered" 112 #define HB_PSTATE_REGISTERED_STR "registered" 113 #define HB_PSTATE_REGISTERED_AND_STANDBY_STR "registered_and_standby" 114 #define HB_PSTATE_REGISTERED_AND_TO_BE_STANDBY_STR "registered_and_to_be_standby" 115 #define HB_PSTATE_REGISTERED_AND_ACTIVE_STR "registered_and_active" 116 #define HB_PSTATE_REGISTERED_AND_TO_BE_ACTIVE_STR "registered_and_to_be_active" 117 #define HB_PSTATE_STR_SZ (32) 119 #define HB_REPLICA_PRIORITY 0x7FFF 122 #define HB_NODE_SCORE_MASTER 0x8000 123 #define HB_NODE_SCORE_TO_BE_MASTER 0xF000 124 #define HB_NODE_SCORE_SLAVE 0x0000 125 #define HB_NODE_SCORE_UNKNOWN 0x7FFF 127 #define HB_BUFFER_SZ (4096) 128 #define HB_MAX_NUM_NODES (8) 129 #define HB_MAX_NUM_RESOURCE_PROC (16) 130 #define HB_MAX_PING_CHECK (3) 131 #define HB_MAX_WAIT_FOR_NEW_MASTER (60) 132 #define HB_MAX_CHANGEMODE_DIFF_TO_TERM (12) 133 #define HB_MAX_CHANGEMODE_DIFF_TO_KILL (24) 136 #define HB_RESULT_SUCCESS_STR "Success" 137 #define HB_RESULT_FAILURE_STR "Failure" 139 #define HB_CMD_ACTIVATE_STR "activate" 140 #define HB_CMD_DEACTIVATE_STR "deactivate" 141 #define HB_CMD_DEREGISTER_STR "deregister" 142 #define HB_CMD_RELOAD_STR "reload" 143 #define HB_CMD_UTIL_START_STR "util process start" 169 #define HB_VALID_NO_ERROR_STR "no_error" 170 #define HB_VALID_UNIDENTIFIED_NODE_STR "unidentified_node" 171 #define HB_VALID_GROUP_NAME_MISMATCH_STR "group_name_mismatch" 172 #define HB_VALID_IP_ADDR_MISMATCH_STR "ip_addr_mismatch" 173 #define HB_VALID_CANNOT_RESOLVE_HOST_STR "cannot_resolve_host_name" 176 #define HB_GET_ELAPSED_TIME(end_time, start_time) \ 177 ((double)(end_time.tv_sec - start_time.tv_sec) * 1000 + \ 178 (end_time.tv_usec - start_time.tv_usec)/1000.0) 180 #define HB_IS_INITIALIZED_TIME(arg_time) \ 181 ((arg_time.tv_sec == 0 && arg_time.tv_usec == 0) ? 1 : 0) 183 #define HB_PROC_RECOVERY_DELAY_TIME (30* 1000) 185 #define HB_UI_NODE_CLEANUP_TIME_IN_MSECS (3600 * 1000) 186 #define HB_UI_NODE_CACHE_TIME_IN_MSECS (60 * 1000) 187 #define HB_IPV4_STR_LEN (16) 211 struct timeval last_recv_hbtime;
234 struct sockaddr_in saddr;
235 struct timeval last_recv_time;
284 struct timeval frtime;
285 struct timeval rtime;
286 struct timeval dtime;
287 struct timeval ktime;
288 struct timeval stime;
337 struct timeval ftime;
338 struct timeval ltime;
360 struct timeval expire;
unsigned short changemode_gap
void hb_finish_deactivate_server_info(void)
HB_CLUSTER_JOB_ARG cluster_job_arg
int hb_start_util_process(char *args)
bool is_curr_eof_received
HB_PING_HOST_ENTRY ** prev
bool hb_is_hang_process(int sfd)
void(* HB_JOB_FUNC)(HB_JOB_ARG *)
void hb_cluster_shutdown_and_cleanup(void)
void hb_reconfig_heartbeat(char **str)
void hb_kill_all_heartbeat_process(char **str)
int hb_get_deactivating_server_count(void)
HB_RESOURCE_JOB_ARG resource_job_arg
void hb_get_node_info_string(char **str, bool verbose_yn)
void hb_disable_er_log(int reason, const char *msg_fmt,...)
HB_RESOURCE * hb_Resource
int hb_prepare_deactivate_heartbeat(void)
int hb_activate_heartbeat(void)
int hb_return_proc_state_by_fd(int sfd)
bool hb_is_deactivation_started(void)
void hb_get_admin_info_string(char **str)
void hb_start_deactivate_server_info(void)
void hb_deregister_by_pid(pid_t pid)
void hb_register_new_process(CSS_CONN_ENTRY *conn)
void hb_resource_shutdown_and_cleanup(void)
#define HB_MAX_SZ_PROC_ARGS
void hb_get_process_info_string(char **str, bool verbose_yn)
bool hb_is_deactivation_ready(void)
int hb_check_request_eligibility(SOCKET sd)
#define HB_MAX_SZ_PROC_EXEC_PATH
void hb_resource_receive_get_eof(CSS_CONN_ENTRY *conn)
HB_PING_HOST_ENTRY * next
bool is_ping_check_enabled
#define HB_MAX_GROUP_ID_LEN
void hb_get_ping_host_info_string(char **str)
void hb_enable_er_log(void)
enum HB_NODE_STATE HB_NODE_STATE_TYPE
void hb_cleanup_conn_and_start_process(CSS_CONN_ENTRY *conn, SOCKET sfd)
void hb_resource_receive_changemode(CSS_CONN_ENTRY *conn)
unsigned int ping_check_count
int hb_deactivate_heartbeat(void)
HB_UI_NODE_ENTRY * ui_nodes
bool hb_Deactivate_immediately
bool hb_is_registered_process(CSS_CONN_ENTRY *conn, char *args)
#define CUB_MAXHOSTNAMELEN
unsigned short changemode_rid
HB_PING_HOST_ENTRY * ping_hosts
void hb_deregister_by_args(char *args)