#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.
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.
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).
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:
If attempting to change the database environment's priority while an election is in progress.