mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-17 01:26:25 +00:00
269 lines
12 KiB
HTML
269 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.2</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="id3933076"></a>Parameters</h3>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="sect3" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h4 class="title"><a id="id3933197"></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="id3933843"></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="id3933708"></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="id3933899"></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="id3933947"></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>
|