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

FreeBSD Manual Pages

  
 
  

home | help
VOTEQUORUM_INITIALCorosync Cluster Engine Programmer'sVOTEQUORUM_INITIALIZE(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
       definitions:

       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 inturrupted	by a signal

       CS_ERR_NOT_SUPPORTED The	requested protocol/functuality not supported

       CS_ERR_MESSAGE_ERROR Incorrect auth message received

       CS_ERR_NO_MEMORY	Not enough memory to completed the requested task

SEE ALSO
       votequorum_overview(8), 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		  2017-07-02	      VOTEQUORUM_INITIALIZE(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | SEE ALSO

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

home | help