Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
VOTEQ...IALIZE(3)  Corosync Cluster Engine Programmer's Manual VOTEQ...IALIZE(3)

NAME
     votequorum_initialize - Create a new connection to the VoteQuorum service

SYNOPSIS
     #include <corosync/votequorum.h>

     int   votequorum_initialize(votequorum_handle_t  *handle,	votequorum_call-
     backs_t *callbacks);

DESCRIPTION
     The votequorum_initialize function is used to initialize  a  connection  to
     the vote-based quorum database API.

     Each  application may have several connections to the votequorum API.  Each
     application uses the handle argument to uniquely identify	the  connection.
     The  handle  argument  is then used in other function calls to identify the
     connection to be used for communication with the votequorum service.

     Every time the voting configuration is about to change (eg a node joins  or
     leave  the  cluster), the callback is called.  The callback function is de-
     scribed by the following type definitions:

     typedef void (*votequorum_nodelist_notification_fn_t) (
	  votequorum_handle_t handle,
	  uint64_t context,
	  uint32_t node_list_entries,
	  uint32_t node_list[]
	  );

     Current ring_id (one  get	in  votequorum_quorum_notification_fn)	must  be
     passed to votequorum_qdevice_poll to make qdevice voting valid.

     Every time the quorum state changes (eg a node joins or leave the cluster),
     the  callback is called.  The callback function is described by the follow-
     ing type definitions:

     typedef void (*votequorum_quorum_notification_fn_t) (
	  votequorum_handle_t handle,
	  uint64_t context,
	  uint32_t quorate,
	  uint32_t node_list_entries,
	  votequorum_node_t node_list[]
	  );

     The  difference  between  votequorum_nodelist_notification_t  and	votequo-
     rum_quorum_notification_t is subtle but important.  The 'nodelist' callback
     is  sent  at  the	start of a cluster state transition and contains the new
     ring_id and only the list of nodes that are included in the sync state - ie
     only active nodes. No quorum information is included this callback  because
     it  is not available at that time.  The 'quorum' callback is sent after the
     cluster state transition has completed and does contain quorum information.
     In addition, the nodelist contains a list of all nodes known to  votequorum
     (whether  up or down) and their state as well as information about the quo-
     rum device attached (if any). Quorum callbacks will not be sent for qdevice
     up and down events unless they affect quorum.

     Every time the expected votes are changed, the callback is called.  The ex-
     pected votes callback function is described by the following  type  defini-
     tions:

     typedef void (*votequorum_expectedvotes_notification_fn_t) (
	     votequorum_handle_t handle,
	     uint64_t context,
	     uint32_t expected_votes);

     The callbacks argument is of the type:

     typedef struct {
	  votequorum_quorum_notification_fn_t votequorum_quorum_notify_fn;
	  votequorum_expectedvotes_notification_fn_t votequorum_expectedvotes_notify_fn;
	  votequorum_nodelist_notification_fn_t votequorum_nodelist_notify_fn;
     } votequorum_callbacks_t;

     When  a  configuration change occurs, the callback is called from the vote-
     quorum_dispatch() function.

RETURN VALUE
     This call returns the CS_OK value if successful, otherwise an error is  re-
     turned.

ERRORS
     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

SEE ALSO
     votequorum_overview(3),	votequorum_finalize(3),   votequorum_getinfo(3),
     votequorum_trackstart(3),	votequorum_trackstop(3),   votequorum_fd_get(3),
     votequorum_dispatch(3),	  votequorum_context_set(3),	 votequorum_con-
     text_get(3), votequorum_setexpected(3), votequorum_setvotes(3)

corosync Man Page		   2026-09-03		       VOTEQ...IALIZE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=votequorum_initialize&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help