mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 17:16:25 +00:00
331 lines
14 KiB
HTML
331 lines
14 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->rep_set_transport()</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="repset_timeout.html" title="DB_ENV->rep_set_timeout()" />
|
||
<link rel="next" href="repstart.html" title="DB_ENV->rep_start()" />
|
||
</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->rep_set_transport()</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="repset_timeout.html">Prev</a> </td>
|
||
<th width="60%" align="center">Chapter 10.
|
||
Replication Methods
|
||
</th>
|
||
<td width="20%" align="right"> <a accesskey="n" href="repstart.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="reptransport"></a>DB_ENV->rep_set_transport()</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<pre class="programlisting">#include <db.h>
|
||
|
||
int
|
||
DB_ENV->rep_set_transport(DB_ENV *env, int envid,
|
||
int (*send)(DB_ENV *dbenv,
|
||
const DBT *control, const DBT *rec, const DB_LSN *lsnp,
|
||
int envid, u_int32_t flags)); </pre>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->rep_set_transport()</code> method initializes the communication
|
||
infrastructure for a database environment participating in a replicated application.
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->rep_set_transport()</code> method is not called by most
|
||
replication applications. It should only be called by Base API applications
|
||
implementing their own network transport layer, explicitly holding
|
||
replication group elections and handling replication messages outside
|
||
of the Replication Manager framework.
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->rep_set_transport()</code> method configures operations
|
||
performed using the specified <a class="link" href="env.html" title="Chapter 5. The DB_ENV Handle">DB_ENV</a> handle,
|
||
not all operations performed on the underlying database environment.
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->rep_set_transport()</code> method may be called at any time
|
||
during the life of the application.
|
||
</p>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->rep_set_transport()</code> <span>
|
||
<span>
|
||
method returns a non-zero error value on failure and 0 on success.
|
||
</span>
|
||
|
||
</span>
|
||
</p>
|
||
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
||
<h3 class="title">Note</h3>
|
||
<p>
|
||
Berkeley DB is not re-entrant. The callback function
|
||
for this method should not attempt to make
|
||
library calls (for example, to release locks or close open handles). Re-entering
|
||
Berkeley DB is not guaranteed to work correctly, and the results are undefined.
|
||
</p>
|
||
</div>
|
||
<div class="sect2" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h3 class="title"><a id="idp62161184"></a>Parameters</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect3" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h4 class="title"><a id="idp62161464"></a>envid</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The <span class="bold"><strong>envid</strong></span> parameter is the local
|
||
environment's ID. It must be a non-negative integer and uniquely identify
|
||
this Berkeley DB database environment (see
|
||
<a href="../../programmer_reference/rep_id.html" class="olink">Replication environment IDs</a>
|
||
for more information).
|
||
</p>
|
||
</div>
|
||
<div class="sect3" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h4 class="title"><a id="idp62173296"></a>send</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The <span class="bold"><strong>send</strong></span> callback function is used to
|
||
transmit data using the replication application's communication
|
||
infrastructure. The parameters to <span class="bold"><strong>send</strong></span> are as follows:
|
||
</p>
|
||
<div class="itemizedlist">
|
||
<ul type="disc">
|
||
<li>
|
||
<p>
|
||
<code class="literal">dbenv</code>
|
||
</p>
|
||
<p>
|
||
The <span class="bold"><strong>dbenv</strong></span> parameter is the enclosing
|
||
database environment handle.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<code class="literal">control</code>
|
||
</p>
|
||
<p>
|
||
The <span class="bold"><strong>control</strong></span> parameter is the first of
|
||
the two data elements to be transmitted by the <span class="bold"><strong>send</strong></span> function.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<code class="literal">rec</code>
|
||
</p>
|
||
<p>
|
||
The <span class="bold"><strong>rec</strong></span> parameter is the second of
|
||
the two data elements to be transmitted by the <span class="bold"><strong>send</strong></span> function.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<code class="literal">lsnp</code>
|
||
</p>
|
||
<p>
|
||
If the type of message to be sent has an LSN associated with it, then
|
||
the <span class="bold"><strong>lsnp</strong></span> parameter contains the LSN
|
||
of the record being sent. This LSN can be used to determine that
|
||
certain records have been processed successfully by clients.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<code class="literal">envid</code>
|
||
</p>
|
||
<p>
|
||
The <span class="bold"><strong>envid</strong></span> parameter is a positive
|
||
integer identifier that specifies the replication environment to which
|
||
the message should be sent (see <a href="../../programmer_reference/rep_id.html" class="olink">Replication environment IDs</a> for more
|
||
information).
|
||
</p>
|
||
<p><a id="transport_DB_EID_BROADCAST"></a>
|
||
The special identifier <code class="literal">DB_EID_BROADCAST</code> indicates that a message
|
||
should be broadcast to every environment in the replication group. The application
|
||
may use a true broadcast protocol or may send the message in sequence to each
|
||
machine with which it is in communication. In both cases, the sending site should
|
||
not be asked to process the message.
|
||
</p>
|
||
<p>
|
||
The special identifier
|
||
<a href="../../programmer_reference/rep_id.html#rep_id.DB_EID_INVALID" class="olink">DB_EID_INVALID</a>
|
||
indicates an invalid environment ID. This may be used to initialize
|
||
values that are subsequently checked for validity.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<code class="literal">flags</code>
|
||
</p>
|
||
<p>
|
||
The <span class="bold"><strong>flags</strong></span> parameter must be set to 0
|
||
or by bitwise inclusively <span class="bold"><strong>OR</strong></span>'ing
|
||
together one or more of the following values:
|
||
</p>
|
||
<div class="itemizedlist">
|
||
<ul type="circle">
|
||
<li>
|
||
<p><a id="transport_DB_REP_ANYWHERE"></a>
|
||
<code class="literal">DB_REP_ANYWHERE</code>
|
||
</p>
|
||
<p>
|
||
The message is a client request that can be satisfied by another
|
||
client as well as by the master.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="transport_DB_REP_NOBUFFER"></a>
|
||
<code class="literal">DB_REP_NOBUFFER</code>
|
||
</p>
|
||
<p>
|
||
The record being sent should be transmitted immediately and not
|
||
buffered or delayed.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="transport_DB_REP_PERMANENT"></a>
|
||
<code class="literal">DB_REP_PERMANENT</code>
|
||
</p>
|
||
<p>
|
||
The record being sent is critical for maintaining database integrity
|
||
(for example, the message includes a transaction commit). The
|
||
application should take appropriate action to enforce the reliability
|
||
guarantees it has chosen, such as waiting for acknowledgement from one
|
||
or more clients.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p><a id="transport_DB_REP_REREQUEST"></a>
|
||
<code class="literal">DB_REP_REREQUEST</code>
|
||
</p>
|
||
<p>
|
||
The message is a client request that has already been made and to
|
||
which no response was received.
|
||
</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<p>
|
||
|
||
It may sometimes be useful to pass application-specific data to the send
|
||
function; see <a href="../../programmer_reference/env_faq.html" class="olink">Environment FAQ</a>
|
||
for a discussion on how to do this.
|
||
|
||
</p>
|
||
<p>
|
||
The <span class="bold"><strong>send</strong></span> function must return 0 on success and non-zero on failure.
|
||
If the send function fails, the message being sent is necessary to maintain database integrity, and
|
||
the local log is not configured for synchronous flushing, the local log will be flushed; otherwise,
|
||
any error from the <span class="bold"><strong>send</strong></span> function will be ignored.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect2" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h3 class="title"><a id="idp62198640"></a>Errors</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The <code class="methodname">DB_ENV->rep_set_transport()</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="idp62217728"></a>EINVAL</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The method is called from a Replication Manager application; or 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="idp62128728"></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="idp62196440"></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="repset_timeout.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="repstart.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">DB_ENV->rep_set_timeout() </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="h" href="index.html">Home</a>
|
||
</td>
|
||
<td width="40%" align="right" valign="top"> DB_ENV->rep_start()</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|