mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-17 01:26:25 +00:00
299 lines
12 KiB
HTML
299 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>DbEnv::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 11. Replication Methods" />
|
|||
|
<link rel="prev" href="repmgrsite_list.html" title="DbEnv::repmgr_site_list()" />
|
|||
|
<link rel="next" href="repmgrstat.html" title="DbEnv::repmgr_stat()" />
|
|||
|
</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">DbEnv::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 11.
|
|||
|
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>DbEnv::repmgr_start()</h2>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<pre class="programlisting">#include <db_cxx.h>
|
|||
|
|
|||
|
int
|
|||
|
DbEnv::repmgr_start(int nthreads, u_int32_t flags);</pre>
|
|||
|
<p>
|
|||
|
The <code class="methodname">DbEnv::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="DbEnv::repmgr_site()">DbEnv::repmgr_site()</a>
|
|||
|
to obtain a DbSite 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="DbSite::set_config()">DbSite::set_config()</a>
|
|||
|
to configure sites in your replication group.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
Use <a class="xref" href="dbsite_remove.html" title="DbSite::remove()">DbSite::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="DbEnv::repmgr_set_ack_policy()">DbEnv::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="DbEnv::rep_set_priority()">DbEnv::rep_set_priority()</a>
|
|||
|
to configure the local site's election priority.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
Call <code class="methodname">DbEnv::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">DbEnv::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">DbEnv::repmgr_start()</code> method
|
|||
|
may not be called before the <a class="xref" href="envopen.html" title="DbEnv::open()">DbEnv::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 DbSite Handle">DbSite</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">DbEnv::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">DbEnv::repmgr_start()</code> <span>
|
|||
|
|
|||
|
<span>
|
|||
|
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.
|
|||
|
</span>
|
|||
|
</span>
|
|||
|
</p>
|
|||
|
<div class="sect2" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h3 class="title"><a id="id3665763"></a>Parameters</h3>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="sect3" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h4 class="title"><a id="id3665734"></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.
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
<div class="sect3" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h4 class="title"><a id="id3665837"></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:
|
|||
|
</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>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="sect2" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h3 class="title"><a id="id3665998"></a>Errors</h3>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
The <code class="methodname">DbEnv::repmgr_start()</code> <span>
|
|||
|
|
|||
|
<span>
|
|||
|
method may fail and throw a <a class="link" href="dbexception.html" title="Chapter 6. The DbException Class">DbException</a>
|
|||
|
exception, encapsulating one of the following non-zero errors, or 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="id3665767"></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="id3666112"></a>Class</h3>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<a class="link" href="env.html" title="Chapter 5. The DbEnv Handle">DbEnv</a>
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
<div class="sect2" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h3 class="title"><a id="id3665979"></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">DbEnv::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"> DbEnv::repmgr_stat()</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|