Berkeley DB Reference Version 5.3.33

DB_ENV->repmgr_set_ack_policy()

#include <db.h>

int
DB_ENV->repmgr_set_ack_policy(DB_ENV *env, int ack_policy);  

The DB_ENV->repmgr_set_ack_policy() method specifies how master and client sites will handle acknowledgment of replication messages which are necessary for "permanent" records. The current implementation requires all sites in a replication group configure the same acknowledgement policy.

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 "repmgr_set_ack_policy", one or more whitespace characters, and the ack_policy parameter specified as a string. For example, "repmgr_set_ack_policy DB_REPMGR_ACKS_ALL". Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.

Waiting for client acknowledgements is always limited by the DB_REP_ACK_TIMEOUT specified by the DB_ENV->rep_set_timeout() method. If an insufficient number of client acknowledgements have been received, then the master will invoke the event callback function, if set, with the DB_EVENT_REP_PERM_FAILED value. (See the Choosing a Replication Manager Ack Policy section in the Berkeley DB Programmer's Reference Guide for more information.)

The DB_ENV->repmgr_set_ack_policy() method configures a database environment, not only operations performed using the specified DB_ENV handle.

The DB_ENV->repmgr_set_ack_policy() method may be called at any time during the life of the application.

The DB_ENV->repmgr_set_ack_policy() method returns a non-zero error value on failure and 0 on success.

Parameters

ack_policy

Some acknowledgement policies use the concept of an electable peer, which is a client capable of being subsequently elected master of the replication group. The ack_policy parameter must be set to one of the following values:

Errors

The DB_ENV->repmgr_set_ack_policy() method may fail and return one of the following non-zero errors:

EINVAL

If this method is called from a base replication API application; or if an invalid flag value or parameter was specified.

Class

DB_ENV

See Also

Replication and Related Methods