Skip to content

File master_heartbeat.c

FileList > cubrid > src > executables > master_heartbeat.c

Go to the source code of this file

  • #include "config.h"
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <string.h>
  • #include <sys/time.h>
  • #include <netdb.h>
  • #include <sys/types.h>
  • #include <sys/socket.h>
  • #include <netinet/in.h>
  • #include <arpa/inet.h>
  • #include <signal.h>
  • #include <errno.h>
  • #include <sys/wait.h>
  • #include <assert.h>
  • #include <unistd.h>
  • #include <fcntl.h>
  • #include <pthread.h>
  • #include <syslog.h>
  • #include "connection_cl.h"
  • #include "dbi.h"
  • #include "environment_variable.h"
  • #include "error_context.hpp"
  • #include "heartbeat.h"
  • #include "master_util.h"
  • #include "master_heartbeat.h"
  • #include "master_request.h"
  • #include "message_catalog.h"
  • #include "object_representation.h"
  • #include "porting.h"
  • #include "tcp.h"
  • #include "utility.h"
  • #include "host_lookup.h"

Classes

Type Name
struct hb_deactivate_info

Public Types

Type Name
typedef struct hb_deactivate_info HB_DEACTIVATE_INFO

Public Attributes

Type Name
HB_JOB * cluster_Jobs = [**NULL**](freelistheap_8h.md#define-null)
HB_CLUSTER * hb_Cluster = [**NULL**](freelistheap_8h.md#define-null)
bool hb_Deactivate_immediately = [**false**](broker__monitor_8c.md#function-timeout)
HB_RESOURCE * hb_Resource = [**NULL**](freelistheap_8h.md#define-null)
HB_JOB * resource_Jobs = [**NULL**](freelistheap_8h.md#define-null)

Public Static Attributes

Type Name
HB_DEACTIVATE_INFO hb_Deactivate_info = { [**NULL**](freelistheap_8h.md#define-null), 0, [**false**](broker__monitor_8c.md#function-timeout) }
bool hb_Is_activated = [**true**](broker__monitor_8c.md#function-timeout)
bool hb_Is_master_node_isolated = [**false**](broker__monitor_8c.md#function-timeout)
char hb_Master_host_name
char hb_Nolog_event_msg = ""
HB_JOB_FUNC hb_cluster_jobs = /* multi line expression */
HB_JOB_FUNC hb_resource_jobs = /* multi line expression */

Public Functions

Type Name
int hb_activate_heartbeat (void)
int hb_check_request_eligibility (SOCKET sd)
void hb_cleanup_conn_and_start_process (CSS_CONN_ENTRY * conn, SOCKET sfd)
void hb_cluster_shutdown_and_cleanup (void)
int hb_deactivate_heartbeat (void)
void hb_deregister_by_args (char * args)
void hb_deregister_by_pid (pid_t pid)
void hb_disable_er_log (int reason, const char * msg_fmt, ...)
void hb_enable_er_log (void)
void hb_finish_deactivate_server_info (void)
void hb_get_admin_info_string (char ** str)
int hb_get_deactivating_server_count (void)
void hb_get_node_info_string (char ** str, bool verbose_yn)
void hb_get_ping_host_info_string (char ** str)
void hb_get_process_info_string (char ** str, bool verbose_yn)
void hb_get_tcp_ping_host_info_string (char ** str)
bool hb_is_deactivation_ready (void)
bool hb_is_deactivation_started (void)
bool hb_is_hang_process (int sfd)
bool hb_is_registered_process (CSS_CONN_ENTRY * conn, char * args)
void hb_kill_all_heartbeat_process (char ** str)
int hb_master_init (void)
int hb_prepare_deactivate_heartbeat (void)
void hb_reconfig_heartbeat (char ** str)
void hb_register_new_process (CSS_CONN_ENTRY * conn)
void hb_resource_receive_changemode (CSS_CONN_ENTRY * conn)
void hb_resource_receive_get_eof (CSS_CONN_ENTRY * conn)
void hb_resource_shutdown_and_cleanup (void)
int hb_return_proc_state_by_fd (int sfd)
void hb_start_deactivate_server_info (void)
int hb_start_util_process (char * args)

Public Static Functions

Type Name
HB_NODE_ENTRY * hb_add_node_to_cluster (char * host_name, unsigned short priority)
HB_PING_HOST_ENTRY * hb_add_ping_host (char * host_name)
HB_PING_HOST_ENTRY * hb_add_tcp_ping_host (char * host_name, int port)
void hb_add_timeval (struct timeval * tv_p, unsigned int msec)
HB_UI_NODE_ENTRY * hb_add_ui_node (char * host_name, char * group_id, struct sockaddr_in saddr, int state)
HB_PROC_ENTRY * hb_alloc_new_proc (void)
int hb_check_ping (const char * host)
int hb_check_tcp_ping (const char * host, int port, int timeout)
void hb_cleanup_ui_nodes (HB_UI_NODE_ENTRY * first)
int hb_cluster_calc_score (void)
bool hb_cluster_check_valid_ping_server (void)
void hb_cluster_cleanup (void)
int hb_cluster_initialize (const char * nodes, const char * replicas)
bool hb_cluster_is_isolated (void)
bool hb_cluster_is_received_heartbeat_from_all (void)
void hb_cluster_job_calc_score (HB_JOB_ARG * arg)
void hb_cluster_job_check_ping (HB_JOB_ARG * arg)
void hb_cluster_job_check_valid_ping_server (HB_JOB_ARG * arg)
void hb_cluster_job_demote (HB_JOB_ARG * arg)
HB_JOB_ENTRY * hb_cluster_job_dequeue (void)
void hb_cluster_job_failback (HB_JOB_ARG * arg)
void hb_cluster_job_failover (HB_JOB_ARG * arg)
void hb_cluster_job_heartbeat (HB_JOB_ARG * arg)
void hb_cluster_job_init (HB_JOB_ARG * arg)
int hb_cluster_job_initialize (void)
int hb_cluster_job_queue (unsigned int job_type, HB_JOB_ARG * arg, unsigned int msec)
int hb_cluster_job_set_expire_and_reorder (unsigned int job_type, unsigned int msec)
void hb_cluster_job_shutdown (void)
int hb_cluster_load_group_and_node_list (char * ha_node_list, char * ha_replica_list)
int hb_cluster_load_ping_host_list (char * ha_ping_host_list)
int hb_cluster_load_tcp_ping_host_list (char * ha_ping_host_list)
void hb_cluster_receive_heartbeat (char * buffer, int len, struct sockaddr_in * from, socklen_t from_len)
void hb_cluster_remove_all_nodes (HB_NODE_ENTRY * first)
void hb_cluster_remove_all_ping_hosts (HB_PING_HOST_ENTRY * first)
void hb_cluster_remove_all_ui_nodes (HB_UI_NODE_ENTRY * first)
void hb_cluster_request_heartbeat_to_all (void)
int hb_cluster_send_heartbeat_internal (struct sockaddr_in * saddr, socklen_t saddr_len, char * dest_host_name, bool is_req)
int hb_cluster_send_heartbeat_req (char * dest_host_name)
int hb_cluster_send_heartbeat_resp (struct sockaddr_in * saddr, socklen_t saddr_len, char * dest_host_name)
int hb_compare_timeval (struct timeval * arg1, struct timeval * arg2)
void hb_deregister_nodes (char * node_to_dereg)
HB_JOB_ARG * hb_deregister_process (HB_PROC_ENTRY * proc)
int hb_help_sprint_jobs_info (HB_JOB * jobs, char * buffer, int max_length)
int hb_help_sprint_nodes_info (char * buffer, int max_length)
int hb_help_sprint_ping_host_info (char * buffer, int max_length)
int hb_help_sprint_processes_info (char * buffer, int max_length)
int hb_help_sprint_tcp_ping_host_info (char * buffer, int max_length)
int hb_hostname_n_port_to_sockaddr (const char * host, int port, struct sockaddr * saddr, socklen_t * slen)
int hb_hostname_to_sin_addr (const char * host, struct in_addr * addr)
int hb_is_heartbeat_valid (char * host_name, char * group_id, struct sockaddr_in * from)
HB_JOB_ENTRY * hb_job_dequeue (HB_JOB * jobs)
int hb_job_queue (HB_JOB * jobs, unsigned int job_type, HB_JOB_ARG * arg, unsigned int msec)
void hb_job_set_expire_and_reorder (HB_JOB * jobs, unsigned int job_type, unsigned int msec)
void hb_job_shutdown (HB_JOB * jobs)
void hb_kill_process (pid_t * pids, int count)
void hb_list_add (HB_LIST ** p, HB_LIST * n)
void hb_list_move (HB_LIST ** dest_pp, HB_LIST ** source_pp)
void hb_list_remove (HB_LIST * n)
const char * hb_node_state_string (int nstate)
const char * hb_ping_result_string (int ping_result)
int hb_port_str_to_num (char * port_p)
void hb_proc_make_arg (char ** arg, char * args)
const char * hb_process_state_string (unsigned char ptype, int pstate)
int hb_reload_config (void)
void hb_remove_all_procs (HB_PROC_ENTRY * first)
void hb_remove_node (HB_NODE_ENTRY * entry_p)
void hb_remove_ping_host (HB_PING_HOST_ENTRY * entry_p)
void hb_remove_proc (HB_PROC_ENTRY * entry_p)
void hb_remove_ui_node (HB_UI_NODE_ENTRY * node)
bool hb_resource_check_server_log_grow (void)
void hb_resource_cleanup (void)
bool hb_resource_demote_confirm_shutdown_server_proc (void)
void hb_resource_demote_kill_server_proc (void)
void hb_resource_demote_start_shutdown_server_proc (void)
int hb_resource_initialize (void)
void hb_resource_job_change_mode (HB_JOB_ARG * arg)
void hb_resource_job_cleanup_all (HB_JOB_ARG * arg)
void hb_resource_job_confirm_cleanup_all (HB_JOB_ARG * arg)
void hb_resource_job_confirm_dereg (HB_JOB_ARG * arg)
void hb_resource_job_confirm_start (HB_JOB_ARG * arg)
void hb_resource_job_demote_confirm_shutdown (HB_JOB_ARG * arg)
void hb_resource_job_demote_start_shutdown (HB_JOB_ARG * arg)
HB_JOB_ENTRY * hb_resource_job_dequeue (void)
int hb_resource_job_initialize (void)
void hb_resource_job_proc_dereg (HB_JOB_ARG * arg)
void hb_resource_job_proc_start (HB_JOB_ARG * arg)
int hb_resource_job_queue (unsigned int job_type, HB_JOB_ARG * arg, unsigned int msec)
int hb_resource_job_set_expire_and_reorder (unsigned int job_type, unsigned int msec)
void hb_resource_job_shutdown (void)
int hb_resource_send_changemode (HB_PROC_ENTRY * proc)
void hb_resource_send_get_eof (void)
void hb_resource_shutdown_all_ha_procs (void)
HB_NODE_ENTRY * hb_return_node_by_name (char * name)
HB_NODE_ENTRY * hb_return_node_by_name_except_me (char * name)
HB_PROC_ENTRY * hb_return_proc_by_args (char * args)
HB_PROC_ENTRY * hb_return_proc_by_fd (int sfd)
HB_PROC_ENTRY * hb_return_proc_by_pid (int pid)
HB_UI_NODE_ENTRY * hb_return_ui_node (char * host_name, char * group_id, struct sockaddr_in saddr)
int hb_set_net_header (HBP_HEADER * header, unsigned char type, bool is_req, unsigned short len, unsigned int seq, char * dest_host_name)
const char * hb_strtime (char * s, unsigned int max, struct timeval * tv_p)
void * hb_thread_check_disk_failure (void * arg)
void * hb_thread_cluster_reader (void * arg)
void * hb_thread_cluster_worker (void * arg)
int hb_thread_initialize (void)
void * hb_thread_resource_worker (void * arg)
const char * hb_valid_result_string (int v_result)

Macros

Type Name
define ENTER_FUNC () /* multi line expression */
define EXIT_FUNC () /* multi line expression */
define HA_ADMIN_INFO_FORMAT_STRING " HA-[**Admin**](broker__monitor_8c.md#function-timeout) [**Info\n"**](broker__monitor_8c.md#function-timeout)
define HA_ADMIN_INFO_NOLOG_EVENT_FORMAT_STRING " %s\n"
define HA_ADMIN_INFO_NOLOG_FORMAT_STRING " Error [**Logging:**](broker__monitor_8c.md#function-timeout) [**disabled\n"**](broker__monitor_8c.md#function-timeout)
define HA_APPLYLOG_PROCESS_FORMAT_STRING " Applylogdb %s ([**pid**](dynamic__load_8c.md#variable-pid) %d, state %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HA_COPYLOG_PROCESS_FORMAT_STRING " Copylogdb %s ([**pid**](dynamic__load_8c.md#variable-pid) %d, state %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HA_FAILBACK_CANCEL_STRING "[Failback] [[**Cancelled**](broker__monitor_8c.md#function-timeout)]"
define HA_FAILBACK_DIAG_STRING "[Failback] [[**Diagnosis**](broker__monitor_8c.md#function-timeout)]"
define HA_FAILBACK_SUCCESS_STRING "[Failback] [[**Success**](broker__monitor_8c.md#function-timeout)]"
define HA_FAILOVER_CANCEL_STRING "[Failover] [[**Cancelled**](broker__monitor_8c.md#function-timeout)]"
define HA_FAILOVER_DIAG_STRING "[Failover] [[**Diagnosis**](broker__monitor_8c.md#function-timeout)]"
define HA_FAILOVER_SUCCESS_STRING "[Failover] [[**Success**](broker__monitor_8c.md#function-timeout)]"
define HA_NODE_FORMAT_STRING " Node %s (priority %d, state %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HA_NODE_HEARTBEAT_GAP_FORMAT_STRING " - missed [**heartbeat**](broker__monitor_8c.md#function-timeout) %[**d\n"**](broker__monitor_8c.md#function-timeout)
define HA_NODE_INFO_FORMAT_STRING " HA-Node [**Info**](broker__monitor_8c.md#function-timeout) (current %s, state %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HA_NODE_SCORE_FORMAT_STRING " - score %[**d\n"**](broker__monitor_8c.md#function-timeout)
define HA_PING_HOSTS_FORMAT_STRING " %-20s %[**s\n"**](broker__monitor_8c.md#function-timeout)
define HA_PING_HOSTS_INFO_FORMAT_STRING " HA-[**Ping**](broker__monitor_8c.md#function-timeout) [**Host**](broker__monitor_8c.md#function-timeout) [**Info**](broker__monitor_8c.md#function-timeout) ([**PING**](broker__monitor_8c.md#function-timeout) check %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HA_PROCESS_ARGV_FORMAT_STRING " - argv [%s] \[**n"**](broker__monitor_8c.md#function-timeout)
define HA_PROCESS_DEREGISTER_TIME_FORMAT_STRING " - deregistered-time %[**s\n"**](broker__monitor_8c.md#function-timeout)
define HA_PROCESS_EXEC_PATH_FORMAT_STRING " - exec-path [%s] \[**n"**](broker__monitor_8c.md#function-timeout)
define HA_PROCESS_INFO_FORMAT_STRING " HA-[**Process**](broker__monitor_8c.md#function-timeout) [**Info**](broker__monitor_8c.md#function-timeout) (master %d, state %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HA_PROCESS_REGISTER_TIME_FORMAT_STRING " - registered-time %[**s\n"**](broker__monitor_8c.md#function-timeout)
define HA_PROCESS_SHUTDOWN_TIME_FORMAT_STRING " - shutdown-time %[**s\n"**](broker__monitor_8c.md#function-timeout)
define HA_PROCESS_START_TIME_FORMAT_STRING " - start-time %[**s\n"**](broker__monitor_8c.md#function-timeout)
define HA_SERVER_PROCESS_FORMAT_STRING " Server %s ([**pid**](dynamic__load_8c.md#variable-pid) %d, state %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HA_TCP_PING_HOSTS_FORMAT_STRING " %-20s %-10d %[**s\n"**](broker__monitor_8c.md#function-timeout)
define HA_TCP_PING_HOSTS_INFO_FORMAT_STRING " HA-[**Ping**](broker__monitor_8c.md#function-timeout) [**Host**](broker__monitor_8c.md#function-timeout)/[**Port**](broker__monitor_8c.md#function-timeout) [**Info**](broker__monitor_8c.md#function-timeout) ([**TCP**](broker__monitor_8c.md#function-timeout) [**PING**](broker__monitor_8c.md#function-timeout) check %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HA_UI_NODE_FORMAT_STRING " \* Node %s (ip %s, [**group**](broker__monitor_8c.md#function-timeout) %s, state %s)\[**n"**](broker__monitor_8c.md#function-timeout)
define HB_INFO_STR_MAX 8192
define PING_COMMAND_FORMAT /* multi line expression */
define SERVER_DEREG_MAX_POLL_COUNT 10

Public Types Documentation

typedef HB_DEACTIVATE_INFO

typedef struct hb_deactivate_info HB_DEACTIVATE_INFO;

Public Attributes Documentation

variable cluster_Jobs

HB_JOB* cluster_Jobs;

variable hb_Cluster

HB_CLUSTER* hb_Cluster;

variable hb_Deactivate_immediately

bool hb_Deactivate_immediately;

variable hb_Resource

HB_RESOURCE* hb_Resource;

variable resource_Jobs

HB_JOB* resource_Jobs;

Public Static Attributes Documentation

variable hb_Deactivate_info

HB_DEACTIVATE_INFO hb_Deactivate_info;

variable hb_Is_activated

bool hb_Is_activated;

variable hb_Is_master_node_isolated

bool hb_Is_master_node_isolated;

variable hb_Master_host_name

char hb_Master_host_name[CUB_MAXHOSTNAMELEN];

variable hb_Nolog_event_msg

char hb_Nolog_event_msg[LINE_MAX];

variable hb_cluster_jobs

HB_JOB_FUNC hb_cluster_jobs[];

variable hb_resource_jobs

HB_JOB_FUNC hb_resource_jobs[];

Public Functions Documentation

function hb_activate_heartbeat

int hb_activate_heartbeat (
    void
) 

function hb_check_request_eligibility

int hb_check_request_eligibility (
    SOCKET sd
) 

function hb_cleanup_conn_and_start_process

void hb_cleanup_conn_and_start_process (
    CSS_CONN_ENTRY * conn,
    SOCKET sfd
) 

function hb_cluster_shutdown_and_cleanup

void hb_cluster_shutdown_and_cleanup (
    void
) 

function hb_deactivate_heartbeat

int hb_deactivate_heartbeat (
    void
) 

function hb_deregister_by_args

void hb_deregister_by_args (
    char * args
) 

function hb_deregister_by_pid

void hb_deregister_by_pid (
    pid_t pid
) 

function hb_disable_er_log

void hb_disable_er_log (
    int reason,
    const  char * msg_fmt,
    ...
) 

function hb_enable_er_log

void hb_enable_er_log (
    void
) 

function hb_finish_deactivate_server_info

void hb_finish_deactivate_server_info (
    void
) 

function hb_get_admin_info_string

void hb_get_admin_info_string (
    char ** str
) 

function hb_get_deactivating_server_count

int hb_get_deactivating_server_count (
    void
) 

function hb_get_node_info_string

void hb_get_node_info_string (
    char ** str,
    bool verbose_yn
) 

function hb_get_ping_host_info_string

void hb_get_ping_host_info_string (
    char ** str
) 

function hb_get_process_info_string

void hb_get_process_info_string (
    char ** str,
    bool verbose_yn
) 

function hb_get_tcp_ping_host_info_string

void hb_get_tcp_ping_host_info_string (
    char ** str
) 

function hb_is_deactivation_ready

bool hb_is_deactivation_ready (
    void
) 

function hb_is_deactivation_started

bool hb_is_deactivation_started (
    void
) 

function hb_is_hang_process

bool hb_is_hang_process (
    int sfd
) 

function hb_is_registered_process

bool hb_is_registered_process (
    CSS_CONN_ENTRY * conn,
    char * args
) 

function hb_kill_all_heartbeat_process

void hb_kill_all_heartbeat_process (
    char ** str
) 

function hb_master_init

int hb_master_init (
    void
) 

function hb_prepare_deactivate_heartbeat

int hb_prepare_deactivate_heartbeat (
    void
) 

function hb_reconfig_heartbeat

void hb_reconfig_heartbeat (
    char ** str
) 

function hb_register_new_process

void hb_register_new_process (
    CSS_CONN_ENTRY * conn
) 

function hb_resource_receive_changemode

void hb_resource_receive_changemode (
    CSS_CONN_ENTRY * conn
) 

function hb_resource_receive_get_eof

void hb_resource_receive_get_eof (
    CSS_CONN_ENTRY * conn
) 

function hb_resource_shutdown_and_cleanup

void hb_resource_shutdown_and_cleanup (
    void
) 

function hb_return_proc_state_by_fd

int hb_return_proc_state_by_fd (
    int sfd
) 

function hb_start_deactivate_server_info

void hb_start_deactivate_server_info (
    void
) 

function hb_start_util_process

int hb_start_util_process (
    char * args
) 

Public Static Functions Documentation

function hb_add_node_to_cluster

static HB_NODE_ENTRY * hb_add_node_to_cluster (
    char * host_name,
    unsigned  short priority
) 

function hb_add_ping_host

static HB_PING_HOST_ENTRY * hb_add_ping_host (
    char * host_name
) 

function hb_add_tcp_ping_host

static HB_PING_HOST_ENTRY * hb_add_tcp_ping_host (
    char * host_name,
    int port
) 

function hb_add_timeval

static void hb_add_timeval (
    struct  timeval * tv_p,
    unsigned  int msec
) 

function hb_add_ui_node

static HB_UI_NODE_ENTRY * hb_add_ui_node (
    char * host_name,
    char * group_id,
    struct  sockaddr_in saddr,
    int state
) 

function hb_alloc_new_proc

static HB_PROC_ENTRY * hb_alloc_new_proc (
    void
) 

function hb_check_ping

static int hb_check_ping (
    const  char * host
) 

function hb_check_tcp_ping

static int hb_check_tcp_ping (
    const  char * host,
    int port,
    int timeout
) 

function hb_cleanup_ui_nodes

static void hb_cleanup_ui_nodes (
    HB_UI_NODE_ENTRY * first
) 

function hb_cluster_calc_score

static int hb_cluster_calc_score (
    void
) 

function hb_cluster_check_valid_ping_server

static bool hb_cluster_check_valid_ping_server (
    void
) 

function hb_cluster_cleanup

static void hb_cluster_cleanup (
    void
) 

function hb_cluster_initialize

static int hb_cluster_initialize (
    const  char * nodes,
    const  char * replicas
) 

function hb_cluster_is_isolated

static bool hb_cluster_is_isolated (
    void
) 

function hb_cluster_is_received_heartbeat_from_all

static bool hb_cluster_is_received_heartbeat_from_all (
    void
) 

function hb_cluster_job_calc_score

static void hb_cluster_job_calc_score (
    HB_JOB_ARG * arg
) 

function hb_cluster_job_check_ping

static void hb_cluster_job_check_ping (
    HB_JOB_ARG * arg
) 

function hb_cluster_job_check_valid_ping_server

static void hb_cluster_job_check_valid_ping_server (
    HB_JOB_ARG * arg
) 

function hb_cluster_job_demote

static void hb_cluster_job_demote (
    HB_JOB_ARG * arg
) 

function hb_cluster_job_dequeue

static HB_JOB_ENTRY * hb_cluster_job_dequeue (
    void
) 

function hb_cluster_job_failback

static void hb_cluster_job_failback (
    HB_JOB_ARG * arg
) 

function hb_cluster_job_failover

static void hb_cluster_job_failover (
    HB_JOB_ARG * arg
) 

function hb_cluster_job_heartbeat

static void hb_cluster_job_heartbeat (
    HB_JOB_ARG * arg
) 

function hb_cluster_job_init

static void hb_cluster_job_init (
    HB_JOB_ARG * arg
) 

function hb_cluster_job_initialize

static int hb_cluster_job_initialize (
    void
) 

function hb_cluster_job_queue

static int hb_cluster_job_queue (
    unsigned  int job_type,
    HB_JOB_ARG * arg,
    unsigned  int msec
) 

function hb_cluster_job_set_expire_and_reorder

static int hb_cluster_job_set_expire_and_reorder (
    unsigned  int job_type,
    unsigned  int msec
) 

function hb_cluster_job_shutdown

static void hb_cluster_job_shutdown (
    void
) 

function hb_cluster_load_group_and_node_list

static int hb_cluster_load_group_and_node_list (
    char * ha_node_list,
    char * ha_replica_list
) 

function hb_cluster_load_ping_host_list

static int hb_cluster_load_ping_host_list (
    char * ha_ping_host_list
) 

function hb_cluster_load_tcp_ping_host_list

static int hb_cluster_load_tcp_ping_host_list (
    char * ha_ping_host_list
) 

function hb_cluster_receive_heartbeat

static void hb_cluster_receive_heartbeat (
    char * buffer,
    int len,
    struct  sockaddr_in * from,
    socklen_t from_len
) 

function hb_cluster_remove_all_nodes

static void hb_cluster_remove_all_nodes (
    HB_NODE_ENTRY * first
) 

function hb_cluster_remove_all_ping_hosts

static void hb_cluster_remove_all_ping_hosts (
    HB_PING_HOST_ENTRY * first
) 

function hb_cluster_remove_all_ui_nodes

static void hb_cluster_remove_all_ui_nodes (
    HB_UI_NODE_ENTRY * first
) 

function hb_cluster_request_heartbeat_to_all

static void hb_cluster_request_heartbeat_to_all (
    void
) 

function hb_cluster_send_heartbeat_internal

static int hb_cluster_send_heartbeat_internal (
    struct  sockaddr_in * saddr,
    socklen_t saddr_len,
    char * dest_host_name,
    bool is_req
) 

function hb_cluster_send_heartbeat_req

static int hb_cluster_send_heartbeat_req (
    char * dest_host_name
) 

function hb_cluster_send_heartbeat_resp

static int hb_cluster_send_heartbeat_resp (
    struct  sockaddr_in * saddr,
    socklen_t saddr_len,
    char * dest_host_name
) 

function hb_compare_timeval

static int hb_compare_timeval (
    struct  timeval * arg1,
    struct  timeval * arg2
) 

function hb_deregister_nodes

static void hb_deregister_nodes (
    char * node_to_dereg
) 

function hb_deregister_process

static HB_JOB_ARG * hb_deregister_process (
    HB_PROC_ENTRY * proc
) 

function hb_help_sprint_jobs_info

static int hb_help_sprint_jobs_info (
    HB_JOB * jobs,
    char * buffer,
    int max_length
) 

function hb_help_sprint_nodes_info

static int hb_help_sprint_nodes_info (
    char * buffer,
    int max_length
) 

function hb_help_sprint_ping_host_info

static int hb_help_sprint_ping_host_info (
    char * buffer,
    int max_length
) 

function hb_help_sprint_processes_info

static int hb_help_sprint_processes_info (
    char * buffer,
    int max_length
) 

function hb_help_sprint_tcp_ping_host_info

static int hb_help_sprint_tcp_ping_host_info (
    char * buffer,
    int max_length
) 

function hb_hostname_n_port_to_sockaddr

static int hb_hostname_n_port_to_sockaddr (
    const  char * host,
    int port,
    struct  sockaddr * saddr,
    socklen_t * slen
) 

function hb_hostname_to_sin_addr

static int hb_hostname_to_sin_addr (
    const  char * host,
    struct  in_addr * addr
) 

function hb_is_heartbeat_valid

static int hb_is_heartbeat_valid (
    char * host_name,
    char * group_id,
    struct  sockaddr_in * from
) 

function hb_job_dequeue

static HB_JOB_ENTRY * hb_job_dequeue (
    HB_JOB * jobs
) 

function hb_job_queue

static int hb_job_queue (
    HB_JOB * jobs,
    unsigned  int job_type,
    HB_JOB_ARG * arg,
    unsigned  int msec
) 

function hb_job_set_expire_and_reorder

static void hb_job_set_expire_and_reorder (
    HB_JOB * jobs,
    unsigned  int job_type,
    unsigned  int msec
) 

function hb_job_shutdown

static void hb_job_shutdown (
    HB_JOB * jobs
) 

function hb_kill_process

static void hb_kill_process (
    pid_t * pids,
    int count
) 

function hb_list_add

static void hb_list_add (
    HB_LIST ** p,
    HB_LIST * n
) 

function hb_list_move

static void hb_list_move (
    HB_LIST ** dest_pp,
    HB_LIST ** source_pp
) 

function hb_list_remove

static void hb_list_remove (
    HB_LIST * n
) 

function hb_node_state_string

static const  char * hb_node_state_string (
    int nstate
) 

function hb_ping_result_string

static const  char * hb_ping_result_string (
    int ping_result
) 

function hb_port_str_to_num

static int hb_port_str_to_num (
    char * port_p
) 

function hb_proc_make_arg

static void hb_proc_make_arg (
    char ** arg,
    char * args
) 

function hb_process_state_string

static const  char * hb_process_state_string (
    unsigned  char ptype,
    int pstate
) 

function hb_reload_config

static int hb_reload_config (
    void
) 

function hb_remove_all_procs

static void hb_remove_all_procs (
    HB_PROC_ENTRY * first
) 

function hb_remove_node

static void hb_remove_node (
    HB_NODE_ENTRY * entry_p
) 

function hb_remove_ping_host

static void hb_remove_ping_host (
    HB_PING_HOST_ENTRY * entry_p
) 

function hb_remove_proc

static void hb_remove_proc (
    HB_PROC_ENTRY * entry_p
) 

function hb_remove_ui_node

static void hb_remove_ui_node (
    HB_UI_NODE_ENTRY * node
) 

function hb_resource_check_server_log_grow

static bool hb_resource_check_server_log_grow (
    void
) 

function hb_resource_cleanup

static void hb_resource_cleanup (
    void
) 

function hb_resource_demote_confirm_shutdown_server_proc

static bool hb_resource_demote_confirm_shutdown_server_proc (
    void
) 

function hb_resource_demote_kill_server_proc

static void hb_resource_demote_kill_server_proc (
    void
) 

function hb_resource_demote_start_shutdown_server_proc

static void hb_resource_demote_start_shutdown_server_proc (
    void
) 

function hb_resource_initialize

static int hb_resource_initialize (
    void
) 

function hb_resource_job_change_mode

static void hb_resource_job_change_mode (
    HB_JOB_ARG * arg
) 

function hb_resource_job_cleanup_all

static void hb_resource_job_cleanup_all (
    HB_JOB_ARG * arg
) 

function hb_resource_job_confirm_cleanup_all

static void hb_resource_job_confirm_cleanup_all (
    HB_JOB_ARG * arg
) 

function hb_resource_job_confirm_dereg

static void hb_resource_job_confirm_dereg (
    HB_JOB_ARG * arg
) 

function hb_resource_job_confirm_start

static void hb_resource_job_confirm_start (
    HB_JOB_ARG * arg
) 

function hb_resource_job_demote_confirm_shutdown

static void hb_resource_job_demote_confirm_shutdown (
    HB_JOB_ARG * arg
) 

function hb_resource_job_demote_start_shutdown

static void hb_resource_job_demote_start_shutdown (
    HB_JOB_ARG * arg
) 

function hb_resource_job_dequeue

static HB_JOB_ENTRY * hb_resource_job_dequeue (
    void
) 

function hb_resource_job_initialize

static int hb_resource_job_initialize (
    void
) 

function hb_resource_job_proc_dereg

static void hb_resource_job_proc_dereg (
    HB_JOB_ARG * arg
) 

function hb_resource_job_proc_start

static void hb_resource_job_proc_start (
    HB_JOB_ARG * arg
) 

function hb_resource_job_queue

static int hb_resource_job_queue (
    unsigned  int job_type,
    HB_JOB_ARG * arg,
    unsigned  int msec
) 

function hb_resource_job_set_expire_and_reorder

static int hb_resource_job_set_expire_and_reorder (
    unsigned  int job_type,
    unsigned  int msec
) 

function hb_resource_job_shutdown

static void hb_resource_job_shutdown (
    void
) 

function hb_resource_send_changemode

static int hb_resource_send_changemode (
    HB_PROC_ENTRY * proc
) 

function hb_resource_send_get_eof

static void hb_resource_send_get_eof (
    void
) 

function hb_resource_shutdown_all_ha_procs

static void hb_resource_shutdown_all_ha_procs (
    void
) 

function hb_return_node_by_name

static HB_NODE_ENTRY * hb_return_node_by_name (
    char * name
) 

function hb_return_node_by_name_except_me

static HB_NODE_ENTRY * hb_return_node_by_name_except_me (
    char * name
) 

function hb_return_proc_by_args

static HB_PROC_ENTRY * hb_return_proc_by_args (
    char * args
) 

function hb_return_proc_by_fd

static HB_PROC_ENTRY * hb_return_proc_by_fd (
    int sfd
) 

function hb_return_proc_by_pid

static HB_PROC_ENTRY * hb_return_proc_by_pid (
    int pid
) 

function hb_return_ui_node

static HB_UI_NODE_ENTRY * hb_return_ui_node (
    char * host_name,
    char * group_id,
    struct  sockaddr_in saddr
) 

function hb_set_net_header

static int hb_set_net_header (
    HBP_HEADER * header,
    unsigned  char type,
    bool is_req,
    unsigned  short len,
    unsigned  int seq,
    char * dest_host_name
) 

function hb_strtime

static const  char * hb_strtime (
    char * s,
    unsigned  int max,
    struct  timeval * tv_p
) 

function hb_thread_check_disk_failure

static void * hb_thread_check_disk_failure (
    void * arg
) 

function hb_thread_cluster_reader

static void * hb_thread_cluster_reader (
    void * arg
) 

function hb_thread_cluster_worker

static void * hb_thread_cluster_worker (
    void * arg
) 

function hb_thread_initialize

static int hb_thread_initialize (
    void
) 

function hb_thread_resource_worker

static void * hb_thread_resource_worker (
    void * arg
) 

function hb_valid_result_string

static const  char * hb_valid_result_string (
    int v_result
) 

Macro Definition Documentation

define ENTER_FUNC

#define ENTER_FUNC (

) `/* multi line expression */`

define EXIT_FUNC

#define EXIT_FUNC (

) `/* multi line expression */`

define HA_ADMIN_INFO_FORMAT_STRING

#define HA_ADMIN_INFO_FORMAT_STRING `" HA- Admin  Info\n"`

define HA_ADMIN_INFO_NOLOG_EVENT_FORMAT_STRING

#define HA_ADMIN_INFO_NOLOG_EVENT_FORMAT_STRING `"    %s\n"`

define HA_ADMIN_INFO_NOLOG_FORMAT_STRING

#define HA_ADMIN_INFO_NOLOG_FORMAT_STRING `"  Error Logging:  disabled\n"`

define HA_APPLYLOG_PROCESS_FORMAT_STRING

#define HA_APPLYLOG_PROCESS_FORMAT_STRING `"   Applylogdb %s ( pid %d, state %s)\ n"`

define HA_COPYLOG_PROCESS_FORMAT_STRING

#define HA_COPYLOG_PROCESS_FORMAT_STRING `"   Copylogdb %s ( pid %d, state %s)\ n"`

define HA_FAILBACK_CANCEL_STRING

#define HA_FAILBACK_CANCEL_STRING `"[Failback] [ Cancelled ]"`

define HA_FAILBACK_DIAG_STRING

#define HA_FAILBACK_DIAG_STRING `"[Failback] [ Diagnosis ]"`

define HA_FAILBACK_SUCCESS_STRING

#define HA_FAILBACK_SUCCESS_STRING `"[Failback] [ Success ]"`

define HA_FAILOVER_CANCEL_STRING

#define HA_FAILOVER_CANCEL_STRING `"[Failover] [ Cancelled ]"`

define HA_FAILOVER_DIAG_STRING

#define HA_FAILOVER_DIAG_STRING `"[Failover] [ Diagnosis ]"`

define HA_FAILOVER_SUCCESS_STRING

#define HA_FAILOVER_SUCCESS_STRING `"[Failover] [ Success ]"`

define HA_NODE_FORMAT_STRING

#define HA_NODE_FORMAT_STRING `"   Node %s (priority %d, state %s)\ n"`

define HA_NODE_HEARTBEAT_GAP_FORMAT_STRING

#define HA_NODE_HEARTBEAT_GAP_FORMAT_STRING `"    - missed heartbeat % d\n"`

define HA_NODE_INFO_FORMAT_STRING

#define HA_NODE_INFO_FORMAT_STRING `" HA-Node Info (current %s, state %s)\ n"`

define HA_NODE_SCORE_FORMAT_STRING

#define HA_NODE_SCORE_FORMAT_STRING `"    - score % d\n"`

define HA_PING_HOSTS_FORMAT_STRING

#define HA_PING_HOSTS_FORMAT_STRING `"   %-20s % s\n"`

define HA_PING_HOSTS_INFO_FORMAT_STRING

#define HA_PING_HOSTS_INFO_FORMAT_STRING `" HA- Ping  Host  Info ( PING check %s)\ n"`

define HA_PROCESS_ARGV_FORMAT_STRING

#define HA_PROCESS_ARGV_FORMAT_STRING `"    - argv      [%s] \ n"`

define HA_PROCESS_DEREGISTER_TIME_FORMAT_STRING

#define HA_PROCESS_DEREGISTER_TIME_FORMAT_STRING `"    - deregistered-time % s\n"`

define HA_PROCESS_EXEC_PATH_FORMAT_STRING

#define HA_PROCESS_EXEC_PATH_FORMAT_STRING `"    - exec-path [%s] \ n"`

define HA_PROCESS_INFO_FORMAT_STRING

#define HA_PROCESS_INFO_FORMAT_STRING `" HA- Process  Info (master %d, state %s)\ n"`

define HA_PROCESS_REGISTER_TIME_FORMAT_STRING

#define HA_PROCESS_REGISTER_TIME_FORMAT_STRING `"    - registered-time   % s\n"`

define HA_PROCESS_SHUTDOWN_TIME_FORMAT_STRING

#define HA_PROCESS_SHUTDOWN_TIME_FORMAT_STRING `"    - shutdown-time     % s\n"`

define HA_PROCESS_START_TIME_FORMAT_STRING

#define HA_PROCESS_START_TIME_FORMAT_STRING `"    - start-time        % s\n"`

define HA_SERVER_PROCESS_FORMAT_STRING

#define HA_SERVER_PROCESS_FORMAT_STRING `"   Server %s ( pid %d, state %s)\ n"`

define HA_TCP_PING_HOSTS_FORMAT_STRING

#define HA_TCP_PING_HOSTS_FORMAT_STRING `"   %-20s %-10d % s\n"`

define HA_TCP_PING_HOSTS_INFO_FORMAT_STRING

#define HA_TCP_PING_HOSTS_INFO_FORMAT_STRING `" HA- Ping  Host / Port  Info ( TCP  PING check %s)\ n"`

define HA_UI_NODE_FORMAT_STRING

#define HA_UI_NODE_FORMAT_STRING `"   * Node %s (ip %s, group %s, state %s)\ n"`

define HB_INFO_STR_MAX

#define HB_INFO_STR_MAX `8192`

define PING_COMMAND_FORMAT

#define PING_COMMAND_FORMAT `/* multi line expression */`

define SERVER_DEREG_MAX_POLL_COUNT

#define SERVER_DEREG_MAX_POLL_COUNT `10`


The documentation for this class was generated from the following file cubrid/src/executables/master_heartbeat.c