mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 17:16:25 +00:00
321 lines
13 KiB
HTML
321 lines
13 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_start()</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="repmgrsite_list.html" title="DB_ENV->repmgr_site_list()" />
|
||
<link rel="next" href="repmgrstat.html" title="DB_ENV->repmgr_stat()" />
|
||
</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_start()</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="repmgrsite_list.html">Prev</a> </td>
|
||
<th width="60%" align="center">Chapter 10.
|
||
Replication Methods
|
||
</th>
|
||
<td width="20%" align="right"> <a accesskey="n" href="repmgrstat.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="repmgrstart"></a>DB_ENV->repmgr_start()</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<pre class="programlisting">#include <db.h>
|
||
|
||
int
|
||
DB_ENV->repmgr_start(DB_ENV *env, int nthreads, u_int32_t flags); </pre>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_start()</code> method starts the Replication Manager.
|
||
</p>
|
||
<p>
|
||
There are two ways to build Berkeley DB replication applications: the
|
||
most common approach is to use the Berkeley DB library Replication
|
||
Manager, where the Berkeley DB library manages the
|
||
replication group, including network transport, all replication
|
||
message processing and acknowledgment, and group elections.
|
||
Applications using the Replication Manager generally make the
|
||
following calls:
|
||
</p>
|
||
<div class="orderedlist">
|
||
<ol type="1">
|
||
<li>
|
||
<p>
|
||
Use <a class="xref" href="repmgr_site.html" title="DB_ENV->repmgr_site()">DB_ENV->repmgr_site()</a>
|
||
to obtain a DB_SITE handle, then use that handle to
|
||
configure the sites in your replication group.
|
||
</p>
|
||
<div class="orderedlist">
|
||
<ol type="a">
|
||
<li>
|
||
<p>
|
||
Use <a class="xref" href="dbsite_set_config.html" title="DB_SITE->set_config()">DB_SITE->set_config()</a>
|
||
to configure sites in your replication group.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
Use <a class="xref" href="dbsite_remove.html" title="DB_SITE->remove()">DB_SITE->remove()</a>
|
||
to remove a site from the replication group.
|
||
</p>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
Call
|
||
<a class="xref" href="repmgrset_ack_policy.html" title="DB_ENV->repmgr_set_ack_policy()">DB_ENV->repmgr_set_ack_policy()</a>
|
||
to configure the message acknowledgment policy which best supports the
|
||
replication group's transactional needs.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
Call
|
||
<a class="xref" href="reppriority.html" title="DB_ENV->rep_set_priority()">DB_ENV->rep_set_priority()</a>
|
||
to configure the local site's election priority.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
Call <code class="methodname">DB_ENV->repmgr_start()</code> to start the replication application.
|
||
</p>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
<p>
|
||
For more information on building Replication Manager applications,
|
||
please see the <em class="citetitle">Replication Getting Started Guide</em>
|
||
included in the Berkeley DB documentation.
|
||
</p>
|
||
<p>
|
||
Applications with special needs (for example, applications using
|
||
network protocols not supported by the Berkeley DB Replication
|
||
Manager), must perform additional configuration and call other
|
||
Berkeley DB replication Base API methods. For more information on building
|
||
Base API applications, please see the
|
||
<a href="../../programmer_reference/rep_base_meth.html" class="olink">Base API Methods</a> section in the
|
||
<em class="citetitle">Berkeley DB Programmer's Reference Guide</em>.
|
||
</p>
|
||
<p>
|
||
Starting the Replication Manager consists of opening the TCP/IP listening socket to accept
|
||
incoming connections, and starting all necessary background threads. When multiple processes
|
||
share a database environment, only one process can open the listening socket; the
|
||
<code class="methodname">DB_ENV->repmgr_start()</code> method automatically opens the socket in the
|
||
first process to call it, and skips this step in the later calls from other processes.
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_start()</code> method
|
||
may not be called before the <a class="xref" href="envopen.html" title="DB_ENV->open()">DB_ENV->open()</a> method is
|
||
called to open. In addition, this method may not be called before
|
||
your replication sites have been configured using the
|
||
<a class="link" href="db_site.html" title="The DB_SITE Handle">DB_SITE</a> class.
|
||
In addition, the local environment must be opened with the
|
||
<a class="link" href="envopen.html#envopen_DB_THREAD">DB_THREAD</a>
|
||
flag set.
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_start()</code> method will return
|
||
<code class="literal">DB_REP_IGNORE</code>
|
||
as an informational, non-error return code, if another process has previously become the
|
||
TCP/IP listener (though the current call has nevertheless successfully started Replication
|
||
Manager's background threads). Unless otherwise specified, the
|
||
<code class="methodname">DB_ENV->repmgr_start()</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="idp62445408"></a>Parameters</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect3" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h4 class="title"><a id="idp62446056"></a>nthreads</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
Specify the number of threads of control created and dedicated to
|
||
processing replication messages. In addition to these message
|
||
processing threads, the Replication Manager creates and manages a few
|
||
of its own threads of control. The TCP/IP listener
|
||
process can change this value after the Replication
|
||
Manager is started with a subsequent call to the
|
||
<code class="methodname">DB_ENV->repmgr_start()</code> method.
|
||
</p>
|
||
</div>
|
||
<div class="sect3" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h4 class="title"><a id="idp62437808"></a>flags</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The <span class="bold"><strong>flags</strong></span> parameter must be set to
|
||
one of the following values when first starting the
|
||
Replication Manager:
|
||
</p>
|
||
<div class="itemizedlist">
|
||
<ul type="disc">
|
||
<li>
|
||
<p><a id="repmgrstart_DB_REP_MASTER"></a>
|
||
<code class="literal">DB_REP_MASTER</code>
|
||
</p>
|
||
<p>
|
||
Start as a master site, and do not call for an election. Note there
|
||
must never be more than a single master in any replication group, and
|
||
only one site at a time should ever be started with the DB_REP_MASTER
|
||
flag specified.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="repmgrstart_DB_REP_CLIENT"></a>
|
||
<code class="literal">DB_REP_CLIENT</code>
|
||
</p>
|
||
<p>
|
||
Start as a client site, and do not call for an election.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<code class="literal">DB_REP_ELECTION</code>
|
||
</p>
|
||
<p>
|
||
Start as a client, and call for an election if no master is found.
|
||
</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<p>
|
||
If the Replication Manager is already started, a
|
||
<span class="bold"><strong>flags</strong></span> value of 0 can
|
||
be used when making a subsequent call to change the
|
||
value of <span class="bold"><strong>nthreads</strong></span>.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect2" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h3 class="title"><a id="idp62441936"></a>Errors</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->repmgr_start()</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="idp62459432"></a>DB_REP_UNAVAIL</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The local site tried to join the group, but was unable to do
|
||
so for some reason (because a master site is not available,
|
||
or because insufficient replicas are running to acknowledge
|
||
the new site). When that happens the application should
|
||
pause and retry adding the site until it completes
|
||
successfully.
|
||
</p>
|
||
</div>
|
||
<div class="sect3" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h4 class="title"><a id="idp62446544"></a>EINVAL</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
If the database environment was not already opened or was
|
||
opened without the <code class="literal">DB_THREAD</code> flag set; a local
|
||
site has not already been configured, this method is called
|
||
from a Base 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="idp62447048"></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="idp62456376"></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="repmgrsite_list.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="repmgrstat.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">DB_ENV->repmgr_site_list() </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_stat()</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|