mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 17:16:25 +00:00
268 lines
12 KiB
HTML
268 lines
12 KiB
HTML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<title>DB_ENV->repmgr_set_ack_policy()</title>
|
||
<link rel="stylesheet" href="apiReference.css" type="text/css" />
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
|
||
<link rel="start" href="index.html" title="Berkeley DB C API Reference" />
|
||
<link rel="up" href="rep.html" title="Chapter 10. Replication Methods" />
|
||
<link rel="prev" href="repmgr_msg_dispatch.html" title="DB_ENV->repmgr_msg_dispatch()" />
|
||
<link rel="next" href="repmgr_site.html" title="DB_ENV->repmgr_site()" />
|
||
</head>
|
||
<body>
|
||
<div xmlns="" class="navheader">
|
||
<div class="libver">
|
||
<p>Library Version 11.2.5.3</p>
|
||
</div>
|
||
<table width="100%" summary="Navigation header">
|
||
<tr>
|
||
<th colspan="3" align="center">DB_ENV->repmgr_set_ack_policy()</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="repmgr_msg_dispatch.html">Prev</a> </td>
|
||
<th width="60%" align="center">Chapter 10.
|
||
Replication Methods
|
||
</th>
|
||
<td width="20%" align="right"> <a accesskey="n" href="repmgr_site.html">Next</a></td>
|
||
</tr>
|
||
</table>
|
||
<hr />
|
||
</div>
|
||
<div class="sect1" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h2 class="title" style="clear: both"><a id="repmgrset_ack_policy"></a>DB_ENV->repmgr_set_ack_policy()</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<pre class="programlisting">#include <db.h>
|
||
|
||
int
|
||
DB_ENV->repmgr_set_ack_policy(DB_ENV *env, int ack_policy); </pre>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_set_ack_policy()</code> 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.
|
||
</p>
|
||
<p>
|
||
The database environment's replication subsystem may also be configured using the
|
||
environment's <a href="../../programmer_reference/env_db_config.html#env_db_config.DB_CONFIG" class="olink">DB_CONFIG</a> 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 <span class="bold"><strong>ack_policy</strong></span>
|
||
parameter specified as a string. For example, "repmgr_set_ack_policy DB_REPMGR_ACKS_ALL".
|
||
Because the <a href="../../programmer_reference/env_db_config.html#env_db_config.DB_CONFIG" class="olink">DB_CONFIG</a> file is read
|
||
when the database environment is opened, it will silently overrule configuration done
|
||
before that time.
|
||
</p>
|
||
<p>
|
||
Waiting for client acknowledgements is always limited by the
|
||
<a class="link" href="repset_timeout.html#set_timeout_DB_REP_ACK_TIMEOUT">DB_REP_ACK_TIMEOUT</a>
|
||
specified by the <a class="xref" href="repset_timeout.html" title="DB_ENV->rep_set_timeout()">DB_ENV->rep_set_timeout()</a> method.
|
||
If an insufficient number of client acknowledgements have been
|
||
received, then the master will invoke the event callback function,
|
||
if set, with the
|
||
<a class="link" href="envevent_notify.html#event_notify_DB_EVENT_REP_PERM_FAILED">DB_EVENT_REP_PERM_FAILED</a>
|
||
value.
|
||
(See the
|
||
<a href="../../programmer_reference/rep_mgr_ack.html" class="olink">
|
||
Choosing a Replication Manager Ack Policy
|
||
</a>section in the
|
||
<em class="citetitle">Berkeley DB Programmer's Reference Guide</em> for more information.)
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_set_ack_policy()</code> method configures a database
|
||
environment, not only operations performed using the specified
|
||
<a class="link" href="env.html" title="Chapter 5. The DB_ENV Handle">DB_ENV</a> handle.
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_set_ack_policy()</code> method may be called at any time
|
||
during the life of the application.
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_set_ack_policy()</code> <span>
|
||
<span>
|
||
method returns a non-zero error value on failure and 0 on success.
|
||
</span>
|
||
|
||
</span>
|
||
</p>
|
||
<div class="sect2" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h3 class="title"><a id="idp62331520"></a>Parameters</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect3" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h4 class="title"><a id="idp62351936"></a>ack_policy</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
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 <span class="bold"><strong>ack_policy</strong></span> parameter
|
||
must be set to one of the following values:
|
||
</p>
|
||
<div class="itemizedlist">
|
||
<ul type="disc">
|
||
<li>
|
||
<p><a id="ackspolicy_DB_REPMGR_ACKS_ALL"></a>
|
||
<span class="bold"><strong>DB_REPMGR_ACKS_ALL</strong></span>
|
||
</p>
|
||
<p>
|
||
The master should wait until all replication clients have acknowledged
|
||
each permanent replication message.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="ackspolicy_DB_REPMGR_ACKS_ALL_AVAILABLE"></a>
|
||
<span class="bold"><strong>DB_REPMGR_ACKS_ALL_AVAILABLE</strong></span>
|
||
</p>
|
||
<p>
|
||
The master should wait until all currently connected replication clients have acknowledged
|
||
each permanent replication message.
|
||
This policy will then invoke the
|
||
<a class="link" href="envevent_notify.html#event_notify_DB_EVENT_REP_PERM_FAILED">DB_EVENT_REP_PERM_FAILED</a> event if fewer than
|
||
a quorum of clients acknowledged
|
||
during that time.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="ackspolicy_DB_REPMGR_ACKS_ALL_PEERS"></a>
|
||
<span class="bold"><strong>DB_REPMGR_ACKS_ALL_PEERS</strong></span>
|
||
</p>
|
||
<p>
|
||
The master should wait until all electable peers have acknowledged
|
||
each permanent replication message.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="ackspolicy_DB_REPMGR_ACKS_NONE"></a>
|
||
<span class="bold"><strong>DB_REPMGR_ACKS_NONE</strong></span>
|
||
</p>
|
||
<p>
|
||
The master should not wait for any client replication message
|
||
acknowledgments.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="ackspolicy_DB_REPMGR_ACKS_ONE"></a>
|
||
<span class="bold"><strong>DB_REPMGR_ACKS_ONE</strong></span>
|
||
</p>
|
||
<p>
|
||
The master should wait until at least one client site has acknowledged
|
||
each permanent replication message.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="ackspolicy_DB_REPMGR_ACKS_ONE_PEER"></a>
|
||
<span class="bold"><strong>DB_REPMGR_ACKS_ONE_PEER</strong></span>
|
||
</p>
|
||
<p>
|
||
The master should wait until at least one electable peer has
|
||
acknowledged each permanent replication message.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="ackspolicy_DB_REPMGR_ACKS_QUORUM"></a>
|
||
<span class="bold"><strong>DB_REPMGR_ACKS_QUORUM</strong></span>
|
||
</p>
|
||
<p>
|
||
The master should wait until it has received acknowledgements from the
|
||
minimum number of electable peers sufficient to ensure that the effect
|
||
of the permanent record remains durable if an election is held. This is the default acknowledgement
|
||
policy.
|
||
</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect2" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h3 class="title"><a id="idp62390696"></a>Errors</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_set_ack_policy()</code>
|
||
<span>
|
||
<span>
|
||
method may fail and return one of the following non-zero errors:
|
||
</span>
|
||
|
||
</span>
|
||
</p>
|
||
<div class="sect3" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h4 class="title"><a id="idp62382840"></a>EINVAL</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
If this method is called from a base replication API
|
||
application; or if an invalid flag value or parameter was
|
||
specified.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect2" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h3 class="title"><a id="idp62394056"></a>Class</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
<a class="link" href="env.html" title="Chapter 5. The DB_ENV Handle">DB_ENV</a>
|
||
</p>
|
||
</div>
|
||
<div class="sect2" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h3 class="title"><a id="idp62396976"></a>See Also</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
<a class="xref" href="rep.html#replist" title="Replication and Related Methods">Replication and Related Methods</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="navfooter">
|
||
<hr />
|
||
<table width="100%" summary="Navigation footer">
|
||
<tr>
|
||
<td width="40%" align="left"><a accesskey="p" href="repmgr_msg_dispatch.html">Prev</a> </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="u" href="rep.html">Up</a>
|
||
</td>
|
||
<td width="40%" align="right"> <a accesskey="n" href="repmgr_site.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">DB_ENV->repmgr_msg_dispatch() </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="h" href="index.html">Home</a>
|
||
</td>
|
||
<td width="40%" align="right" valign="top"> DB_ENV->repmgr_site()</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|