<?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>Managing Election Times</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="Getting Started with Replicated Berkeley DB Applications" /> <link rel="up" href="repapp.html" title="Chapter 3. The DB Replication Manager" /> <link rel="prev" href="fwrkpermmessage.html" title="Replication Manager Permanent Message Handling" /> <link rel="next" href="fmwrkconnectretry.html" title="Managing Connection Retries" /> </head> <body> <div xmlns="" class="navheader"> <div class="libver"> <p>Library Version 12.1.6.1</p> </div> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">Managing Election Times</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="fwrkpermmessage.html">Prev</a> </td> <th width="60%" align="center">Chapter 3. The DB Replication Manager</th> <td width="20%" align="right"> <a accesskey="n" href="fmwrkconnectretry.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="electiontimes"></a>Managing Election Times</h2> </div> </div> </div> <div class="toc"> <dl> <dt> <span class="sect2"> <a href="electiontimes.html#electiontimeout">Managing Election Timeouts</a> </span> </dt> <dt> <span class="sect2"> <a href="electiontimes.html#electretrytime">Managing Election Retry Times</a> </span> </dt> </dl> </div> <p> Where it comes to elections, there are two timeout values with which you should be concerned: election timeouts and election retries. </p> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="electiontimeout"></a>Managing Election Timeouts</h3> </div> </div> </div> <p> When an environment calls for an election, it will wait some amount of time for the other replicas in the replication group to respond. The amount of time that the environment will wait before declaring the election completed is the <span class="emphasis"><em>election timeout</em></span>. </p> <p> If the environment hears from all other known replicas before the election timeout occurs, the election is considered a success and a master is elected. </p> <p> If only a subset of replicas respond, then the success or failure of the election is determined by how many replicas have participated in the election. It only takes a simple majority of replicas to elect a master. If there are enough votes for a given environment to meet that standard, then the master has been elected and the election is considered a success. </p> <p> However, if not enough replicas have participated in the election when the election timeout value is reached, the election is considered a failure and a master is not elected. At this point, your replication group is operating without a master, which means that, essentially, your replicated application has been placed in read-only mode. </p> <p> Note, however, that the Replication Manager will attempt a new election after a given amount of time has passed. See the next section for details. </p> <p> You set the election timeout value using <code class="methodname">Environment.setReplicationTimeout()</code>. You pass this method the <code class="methodname">ReplicationTimeoutType.ELECTION_TIMEOUT</code> constant and a timeout value in microseconds. </p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="electretrytime"></a>Managing Election Retry Times</h3> </div> </div> </div> <p> In the event that a election fails (see the previous section), an election will not be attempted again until the election retry timeout value has expired. </p> <p> You set the election timeout value using <code class="methodname">Environment.setReplicationTimeout()</code>. You pass this method the <code class="methodname">ReplicationTimeoutType.ELECTION_RETRY</code> constant and a retry value in microseconds. </p> <p> Note that this <span>constant</span> is only valid when you are using the Replication Manager. If you are using the Base APIs, then this <span>constant</span> is ignored. </p> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="fwrkpermmessage.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="repapp.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="fmwrkconnectretry.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">Replication Manager Permanent Message Handling </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> Managing Connection Retries</td> </tr> </table> </div> </body> </html>