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

FreeBSD Manual Pages

  
 
  

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

NAME
       votequorum_initialize  -	Create a new connection	to the VoteQuorum ser-
       vice

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 con-
       nection.	 The handle argument is	then used in other function  calls  to
       identify	 the connection	to be used for communication with the votequo-
       rum 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 described 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 clus-
       ter), the callback is called.  The callback function  is	 described  by
       the following 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 con-
       tains 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 in-
       cluded this callback because it is not available	 at  that  time.   The
       'quorum'	 callback  is sent after the cluster state transition has com-
       pleted 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	quorum 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
       expected	votes callback function	is described by	the following type de-
       finitions:

       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
       votequorum_dispatch() function.

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

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),	      votequo-
       rum_fd_get(3), votequorum_dispatch(3), votequorum_context_set(3), vote-
       quorum_context_get(3),	     votequorum_setexpected(3),	      votequo-
       rum_setvotes(3)

corosync Man Page		  2025-05-13		     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+14.3.quarterly>

home | help