003 File Manager
Current Path:
/usr/local/share/doc/db5/programmer_reference
usr
/
local
/
share
/
doc
/
db5
/
programmer_reference
/
π
..
π
BDB_Prog_Reference.pdf
(1.9 MB)
π
am.html
(13.27 KB)
π
am_close.html
(4.17 KB)
π
am_conf.html
(13.76 KB)
π
am_conf_logrec.html
(7.32 KB)
π
am_conf_select.html
(24.85 KB)
π
am_cursor.html
(36.58 KB)
π
am_delete.html
(2.95 KB)
π
am_foreign.html
(9.84 KB)
π
am_get.html
(4.07 KB)
π
am_misc.html
(6.3 KB)
π
am_misc_bulk.html
(17.31 KB)
π
am_misc_db_sql.html
(4.79 KB)
π
am_misc_dbsizes.html
(4.06 KB)
π
am_misc_diskspace.html
(11.57 KB)
π
am_misc_error.html
(4.83 KB)
π
am_misc_faq.html
(10.34 KB)
π
am_misc_partial.html
(7.81 KB)
π
am_misc_perm.html
(4.19 KB)
π
am_misc_stability.html
(4.82 KB)
π
am_misc_struct.html
(5.06 KB)
π
am_misc_tune.html
(9.91 KB)
π
am_opensub.html
(7.84 KB)
π
am_partition.html
(17.19 KB)
π
am_put.html
(4.68 KB)
π
am_second.html
(14.76 KB)
π
am_stat.html
(3.11 KB)
π
am_sync.html
(3.63 KB)
π
am_truncate.html
(2.54 KB)
π
am_upgrade.html
(4.72 KB)
π
am_verify.html
(4.77 KB)
π
apprec.html
(8.14 KB)
π
apprec_auto.html
(12.16 KB)
π
apprec_config.html
(10 KB)
π
apprec_def.html
(9.13 KB)
π
arch.html
(11.09 KB)
π
arch_apis.html
(10.27 KB)
π
arch_bigpic.gif
(2.53 KB)
π
arch_progmodel.html
(3.1 KB)
π
arch_script.html
(4.39 KB)
π
arch_smallpic.gif
(1.58 KB)
π
arch_utilities.html
(8 KB)
π
bdb_usenix.pdf
(79.81 KB)
π
bt_conf.html
(29.94 KB)
π
cam.html
(11.77 KB)
π
cam_app.html
(16.91 KB)
π
cam_fail.html
(7.77 KB)
π
ch13s02.html
(4.19 KB)
π
csharp.html
(7.48 KB)
π
dumpload.html
(5.42 KB)
π
dumpload_format.html
(6.58 KB)
π
dumpload_text.html
(3.39 KB)
π
embedded.html
(31.62 KB)
π
env.html
(7.43 KB)
π
env_create.html
(10.06 KB)
π
env_db_config.html
(4.21 KB)
π
env_encrypt.html
(10.19 KB)
π
env_error.html
(4.77 KB)
π
env_faq.html
(5.54 KB)
π
env_naming.html
(15.54 KB)
π
env_open.html
(4.95 KB)
π
env_region.html
(8.11 KB)
π
env_remote.html
(5.28 KB)
π
env_security.html
(5.64 KB)
π
env_size.html
(8.11 KB)
π
ext.html
(7.13 KB)
π
ext_perl.html
(3.84 KB)
π
ext_php.html
(5.47 KB)
π
general_am_conf.html
(21.43 KB)
π
gettingStarted.css
(1.13 KB)
π
group_membership.html
(20.37 KB)
π
hash_conf.html
(6.96 KB)
π
hash_usenix.pdf
(256.14 KB)
π
heap_conf.html
(4.14 KB)
π
index.html
(77.48 KB)
π
intro.html
(9.57 KB)
π
intro_dbis.html
(15.02 KB)
π
intro_dbisnot.html
(13.49 KB)
π
intro_distrib.html
(2.92 KB)
π
intro_need.html
(5.06 KB)
π
intro_products.html
(14.3 KB)
π
intro_terrain.html
(19.43 KB)
π
intro_what.html
(4.94 KB)
π
intro_where.html
(3.75 KB)
π
java.html
(7.62 KB)
π
java_compat.html
(2.57 KB)
π
java_faq.html
(7.5 KB)
π
java_program.html
(6.69 KB)
π
libtp_usenix.pdf
(243.14 KB)
π
lock.html
(11.29 KB)
π
lock_am_conv.html
(10.62 KB)
π
lock_cam_conv.html
(4.95 KB)
π
lock_config.html
(4.67 KB)
π
lock_dead.html
(7.25 KB)
π
lock_deaddbg.html
(10.32 KB)
π
lock_max.html
(11.04 KB)
π
lock_nondb.html
(4.94 KB)
π
lock_notxn.html
(4.55 KB)
π
lock_page.html
(5.71 KB)
π
lock_stdmode.html
(5.27 KB)
π
lock_timeout.html
(6.16 KB)
π
lock_twopl.html
(4.48 KB)
π
log.html
(7.08 KB)
π
log_config.html
(5.06 KB)
π
log_limits.html
(4.24 KB)
π
magic.s5.be.txt
(3.54 KB)
π
magic.s5.le.txt
(3.56 KB)
π
magic.txt
(1.98 KB)
π
moreinfo.html
(7.45 KB)
π
mp.html
(8.86 KB)
π
mp_config.html
(6.08 KB)
π
mp_warm.html
(13.45 KB)
π
preface.html
(5.1 KB)
π
program.html
(7.21 KB)
π
program_cache.html
(3.3 KB)
π
program_compatible.html
(3.66 KB)
π
program_copy.html
(7.35 KB)
π
program_environ.html
(3.58 KB)
π
program_errorret.html
(10.38 KB)
π
program_faq.html
(4.58 KB)
π
program_mt.html
(7.54 KB)
π
program_namespace.html
(5.66 KB)
π
program_perfmon.html
(32.07 KB)
π
program_ram.html
(12.58 KB)
π
program_runtime.html
(7.09 KB)
π
program_scope.html
(9.8 KB)
π
refs.html
(11.84 KB)
π
rep.html
(16.57 KB)
π
rep_app.html
(9.75 KB)
π
rep_base_meth.html
(8.59 KB)
π
rep_bulk.html
(4.01 KB)
π
rep_clock_skew.html
(5.38 KB)
π
rep_comm.html
(11.28 KB)
π
rep_elect.html
(13.17 KB)
π
rep_ex.html
(9.64 KB)
π
rep_ex_chan.html
(8.52 KB)
π
rep_ex_comm.html
(7.58 KB)
π
rep_ex_rq.html
(5.52 KB)
π
rep_faq.html
(9.2 KB)
π
rep_filename.html
(7.7 KB)
π
rep_id.html
(4.76 KB)
π
rep_init.html
(5.14 KB)
π
rep_lease.html
(18.32 KB)
π
rep_mastersync.html
(11.24 KB)
π
rep_mgr_ack.html
(8.5 KB)
π
rep_mgr_meth.html
(11.06 KB)
π
rep_mgrmulti.html
(10.28 KB)
π
rep_newsite.html
(5.29 KB)
π
rep_partition.html
(9.21 KB)
π
rep_pri.html
(3.64 KB)
π
rep_replicate.html
(18.8 KB)
π
rep_ryw.html
(9.82 KB)
π
rep_trans.html
(21.58 KB)
π
rep_twosite.html
(6.76 KB)
π
repmgr_channels.html
(13.34 KB)
π
rq_conf.html
(18.29 KB)
π
second.javas
(3.87 KB)
π
sequence.html
(4.43 KB)
π
solaris.txt
(5.62 KB)
π
stl.html
(16.28 KB)
π
stl_complex_rw.html
(19.31 KB)
π
stl_container_specific.html
(9.04 KB)
π
stl_db_advanced_usage.html
(9.68 KB)
π
stl_db_usage.html
(13.27 KB)
π
stl_efficienct_use.html
(11.87 KB)
π
stl_examples.html
(8.24 KB)
π
stl_known_issues.html
(4.54 KB)
π
stl_memory_mgmt.html
(9.22 KB)
π
stl_misc.html
(8.22 KB)
π
stl_mt_usage.html
(9.06 KB)
π
stl_persistence.html
(14.74 KB)
π
stl_primitive_rw.html
(8.18 KB)
π
stl_txn_usage.html
(4.88 KB)
π
stl_usecase.html
(3.67 KB)
π
tcl.html
(7.88 KB)
π
tcl_error.html
(5.2 KB)
π
tcl_faq.html
(4.89 KB)
π
tcl_program.html
(3.78 KB)
π
tcl_using.html
(4.43 KB)
π
transapp.cs
(10.34 KB)
π
transapp.html
(8.55 KB)
π
transapp_admin.html
(4.8 KB)
π
transapp_app.html
(25.08 KB)
π
transapp_archival.html
(15.5 KB)
π
transapp_atomicity.html
(5.46 KB)
π
transapp_checkpoint.html
(6.18 KB)
π
transapp_cursor.html
(6.79 KB)
π
transapp_data_open.html
(7.52 KB)
π
transapp_deadlock.html
(7.35 KB)
π
transapp_env_open.html
(8.39 KB)
π
transapp_fail.html
(6.8 KB)
π
transapp_faq.html
(11.26 KB)
π
transapp_filesys.html
(5.89 KB)
π
transapp_hotfail.html
(10.54 KB)
π
transapp_inc.html
(8.09 KB)
π
transapp_journal.html
(4.72 KB)
π
transapp_logfile.html
(5.3 KB)
π
transapp_nested.html
(5.42 KB)
π
transapp_put.html
(12.47 KB)
π
transapp_read.html
(9.9 KB)
π
transapp_reclimit.html
(12.6 KB)
π
transapp_recovery.html
(8.74 KB)
π
transapp_term.html
(6.02 KB)
π
transapp_throughput.html
(9.06 KB)
π
transapp_tune.html
(13.99 KB)
π
transapp_why.html
(3.94 KB)
π
txn.html
(8.63 KB)
π
txn_config.html
(4.5 KB)
π
txn_limits.html
(5.77 KB)
π
witold.html
(745 B)
π
writetest.cs
(2.26 KB)
π
xa.html
(6.69 KB)
π
xa_build.html
(19.12 KB)
π
xa_faq.html
(7.27 KB)
π
xa_xa_config.html
(8.1 KB)
π
xa_xa_intro.html
(4.46 KB)
π
xa_xa_restrict.html
(6.02 KB)
Editing: rep_mgrmulti.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>Running Replication Manager in multiple processes</title> <link rel="stylesheet" href="gettingStarted.css" type="text/css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /> <link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" /> <link rel="up" href="rep.html" title="ChapterΒ 12.Β Berkeley DB Replication" /> <link rel="prev" href="rep_filename.html" title="Managing Replication Files" /> <link rel="next" href="rep_replicate.html" title="Running Replication using the db_replicate Utility" /> </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">Running Replication Manager in multiple processes</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="rep_filename.html">Prev</a>Β </td> <th width="60%" align="center">ChapterΒ 12.Β Berkeley DB Replication </th> <td width="20%" align="right">Β <a accesskey="n" href="rep_replicate.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="rep_mgrmulti"></a>Running Replication Manager in multiple processes</h2> </div> </div> </div> <div class="toc"> <dl> <dt> <span class="sect2"> <a href="rep_mgrmulti.html#idp52420616">One replication process and multiple subordinate processes</a> </span> </dt> <dt> <span class="sect2"> <a href="rep_mgrmulti.html#idp52417008">Persistence of local site network address configuration</a> </span> </dt> <dt> <span class="sect2"> <a href="rep_mgrmulti.html#idp52400144">Programming considerations</a> </span> </dt> <dt> <span class="sect2"> <a href="rep_mgrmulti.html#idp52414488">Handling failure</a> </span> </dt> <dt> <span class="sect2"> <a href="rep_mgrmulti.html#idp52412256">Other miscellaneous rules</a> </span> </dt> </dl> </div> <p>Replication Manager supports shared access to a database environment from multiple processes.</p> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp52420616"></a>One replication process and multiple subordinate processes</h3> </div> </div> </div> <p>Each site in a replication group has just one network address (TCP/IP host name and port number). This means that only one process can accept incoming connections. At least one application process must invoke the <a href="../api_reference/C/repmgrstart.html" class="olink">DB_ENV->repmgr_start()</a> method to initiate communications and management of the replication state.</p> <p>If it is convenient, multiple processes may issue calls to the Replication Manager configuration methods, and multiple processes may call <a href="../api_reference/C/repmgrstart.html" class="olink">DB_ENV->repmgr_start()</a>. Replication Manager automatically opens the TCP/IP listening socket in the first process to do so (we'll call it the "replication process" here), and ignores this step in any subsequent processes ("subordinate processes").</p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp52417008"></a>Persistence of local site network address configuration</h3> </div> </div> </div> <p>The local site network address is stored in shared memory, and remains intact even when (all) processes close their environment handles gracefully and terminate. A process which opens an environment handle without running recovery automatically inherits the existing local site network address configuration. Such a process may not change the local site address (although it is allowed to redundantly specify a local site configuration matching that which is already in effect).</p> <p>In order to change the local site network address, the application must run recovery. The application can then specify a new local site address before restarting Replication Manager. The application should also remove the old local site address from the replication group if it is no longer needed.</p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp52400144"></a>Programming considerations</h3> </div> </div> </div> <p>Note that Replication Manager applications must follow all the usual rules for Berkeley DB multi-threaded and/or multi-process applications, such as ensuring that the recovery operation occurs single-threaded, only once, before any other thread or processes operate in the environment. Since Replication Manager creates its own background threads which operate on the environment, all environment handles must be opened with the <a href="../api_reference/C/dbopen.html#open_DB_THREAD" class="olink">DB_THREAD</a> flag, even if the application is otherwise single-threaded per process.</p> <p>At the replication master site, each Replication Manager process opens outgoing TCP/IP connections to all clients in the replication group. It uses these direct connections to send to clients any log records resulting from update transactions that the process executes. But all other replication activity βmessage processing, elections, etc.β takes place only in the "replication process".</p> <p>Replication Manager notifies the application of certain events, using the callback function configured with the <a href="../api_reference/C/envevent_notify.html" class="olink">DB_ENV->set_event_notify()</a> method. These notifications occur only in the process where the event itself occurred. Generally this means that most notifications occur only in the "replication process". Currently the only replication notification that can occur in a "subordinate process" is <a href="../api_reference/C/envevent_notify.html#event_notify_DB_EVENT_REP_PERM_FAILED" class="olink">DB_EVENT_REP_PERM_FAILED</a>.</p> <p>It is not supported for a process running Replication Manager to spawn a subprocess.</p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp52414488"></a>Handling failure</h3> </div> </div> </div> <p>Multi-process Replication Manager applications should handle failures in a manner consistent with the rules described in <a class="xref" href="transapp_fail.html" title="Handling failure in Transactional Data Store applications">Handling failure in Transactional Data Store applications</a>. To summarize, there are two ways to handle failure of a process:</p> <div class="orderedlist"> <ol type="1"> <li> <p> The simple way is to kill all remaining processes, run recovery, and then restart all processes from the beginning. But this can be a bit drastic. </p> </li> <li> <p> Using the <a href="../api_reference/C/envfailchk.html" class="olink">DB_ENV->failchk()</a> method, it is sometimes possible to leave surviving processes running, and just restart the failed process. </p> <p> Multi-process Replication Manager applications using this technique must start a new process when an old process fails. It is not possible for a "subordinate process" to take over the duties of a failed "replication process". If the failed process happens to be the replication process, then after a failchk() call the next process to call <a href="../api_reference/C/repmgrstart.html" class="olink">DB_ENV->repmgr_start()</a> will become the new replication process. </p> </li> </ol> </div> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp52412256"></a>Other miscellaneous rules</h3> </div> </div> </div> <div class="orderedlist"> <ol type="1"> <li>A database environment may not be shared between a Replication Manager application process and a Base API application process.</li> <li>It is not possible to run multiple Replication Manager processes during mixed-version live upgrades from Berkeley DB versions prior to 4.8.</li> </ol> </div> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="rep_filename.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="rep_replicate.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">Managing Replication FilesΒ </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top">Β Running Replication using the db_replicate Utility</td> </tr> </table> </div> </body> </html>
Upload File
Create Folder