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:

DB_REP_INELECT

If attempting to change the database environment's priority while an election is in progress.

EINVAL

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

Class

DbEnv

See Also

Replication and Related Methods