DbEnv::rep_set_priority()

#include <db_cxx.h>
 
int
DbEnv::rep_set_priority(u_int32_t priority); 

The DbEnv::rep_set_priority() method specifies the database environment's priority in replication group elections. A special value of 0 indicates that this environment cannot be a replication group master.

Note

The DbEnv::repmgr_set_ack_policy() method describes electable peers, which are replication sites with a non-zero priority. For some acknowledgement policies, Replication Manager's computation of the durability result for each new update transaction is sensitive to whether each site in the group is a peer. Therefore, if you change a site's priority from a non-zero value to 0, or from 0 to a non-zero value, this can invalidate the durability result of previously committed transactions.

The database environment's replication subsystem may also be configured using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "rep_set_priority", one or more whitespace characters, and the priority of this site. For example, "rep_set_priority 1" sets the priority of this site to 1. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.

Note that if the application never explicitly sets a priority, then a default value of 100 is used. In preferred master mode, priority values for each site are automatically set and any attempt to change them results in an error.

The DbEnv::rep_set_priority() method configures a database environment, not only operations performed using the specified DbEnv handle.

The DbEnv::rep_set_priority() method may be called at any time during the life of the application.

The DbEnv::rep_set_priority() method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

Parameters

priority

The priority of this database environment in the replication group. The priority must be a non-zero integer, or 0 if this environment cannot be a replication group master. (See Replication environment priorities for more information).

Errors

The DbEnv::rep_set_priority() method may fail and throw a DbException exception, encapsulating one of the following non-zero errors, or return one of the following non-zero errors:

EINVAL

If changing the automatically set priority value in Replication Manager preferred master mode.

Class

DbEnv

See Also

Replication and Related Methods