361 lines
15 KiB
HTML
361 lines
15 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<!-- NewPage -->
|
|
<html lang="en">
|
|
<head>
|
|
<!-- Generated by javadoc (1.8.0_151) on Tue Oct 31 17:36:46 EDT 2017 -->
|
|
<title>NetworkRestore (Oracle - Berkeley DB Java Edition API)</title>
|
|
<meta name="date" content="2017-10-31">
|
|
<link rel="stylesheet" type="text/css" href="../../../../style.css" title="Style">
|
|
<script type="text/javascript" src="../../../../script.js"></script>
|
|
</head>
|
|
<body>
|
|
<script type="text/javascript"><!--
|
|
try {
|
|
if (location.href.indexOf('is-external=true') == -1) {
|
|
parent.document.title="NetworkRestore (Oracle - Berkeley DB Java Edition API)";
|
|
}
|
|
}
|
|
catch(err) {
|
|
}
|
|
//-->
|
|
var methods = {"i0":10};
|
|
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
var altColor = "altColor";
|
|
var rowColor = "rowColor";
|
|
var tableTab = "tableTab";
|
|
var activeTableTab = "activeTableTab";
|
|
</script>
|
|
<noscript>
|
|
<div>JavaScript is disabled on your browser.</div>
|
|
</noscript>
|
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
<div class="topNav"><a name="navbar.top">
|
|
<!-- -->
|
|
</a>
|
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
<a name="navbar.top.firstrow">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="navList" title="Navigation">
|
|
<li><a href="../../../../overview-summary.html">Overview</a></li>
|
|
<li><a href="package-summary.html">Package</a></li>
|
|
<li class="navBarCell1Rev">Class</li>
|
|
<li><a href="class-use/NetworkRestore.html">Use</a></li>
|
|
<li><a href="package-tree.html">Tree</a></li>
|
|
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
|
|
<li><a href="../../../../index-all.html">Index</a></li>
|
|
<li><a href="../../../../help-doc.html">Help</a></li>
|
|
</ul>
|
|
<div class="aboutLanguage"><b>Berkeley DB Java Edition</b><br><font size=\"-1\"> version 7.5.11</font>
|
|
</div>
|
|
</div>
|
|
<div class="subNav">
|
|
<ul class="navList">
|
|
<li><a href="../../../../com/sleepycat/je/rep/MemberNotFoundException.html" title="class in com.sleepycat.je.rep"><span class="typeNameLink">Prev Class</span></a></li>
|
|
<li><a href="../../../../com/sleepycat/je/rep/NetworkRestoreConfig.html" title="class in com.sleepycat.je.rep"><span class="typeNameLink">Next Class</span></a></li>
|
|
</ul>
|
|
<ul class="navList">
|
|
<li><a href="../../../../index.html?com/sleepycat/je/rep/NetworkRestore.html" target="_top">Frames</a></li>
|
|
<li><a href="NetworkRestore.html" target="_top">No Frames</a></li>
|
|
</ul>
|
|
<ul class="navList" id="allclasses_navbar_top">
|
|
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
|
|
</ul>
|
|
<div>
|
|
<script type="text/javascript"><!--
|
|
allClassesLink = document.getElementById("allclasses_navbar_top");
|
|
if(window==top) {
|
|
allClassesLink.style.display = "block";
|
|
}
|
|
else {
|
|
allClassesLink.style.display = "none";
|
|
}
|
|
//-->
|
|
</script>
|
|
</div>
|
|
<div>
|
|
<ul class="subNavList">
|
|
<li>Summary: </li>
|
|
<li>Nested | </li>
|
|
<li>Field | </li>
|
|
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
<li><a href="#method.summary">Method</a></li>
|
|
</ul>
|
|
<ul class="subNavList">
|
|
<li>Detail: </li>
|
|
<li>Field | </li>
|
|
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
<li><a href="#method.detail">Method</a></li>
|
|
</ul>
|
|
</div>
|
|
<a name="skip.navbar.top">
|
|
<!-- -->
|
|
</a></div>
|
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
<!-- ======== START OF CLASS DATA ======== -->
|
|
<div class="header">
|
|
<div class="subTitle">com.sleepycat.je.rep</div>
|
|
<h2 title="Class NetworkRestore" class="title">Class NetworkRestore</h2>
|
|
</div>
|
|
<div class="contentContainer">
|
|
<ul class="inheritance">
|
|
<li>java.lang.Object</li>
|
|
<li>
|
|
<ul class="inheritance">
|
|
<li>com.sleepycat.je.rep.NetworkRestore</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class="description">
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<hr>
|
|
<br>
|
|
<pre>public class <span class="typeNameLabel">NetworkRestore</span>
|
|
extends java.lang.Object</pre>
|
|
<div class="block">Obtains log files for a Replica from other members of the replication
|
|
group. A Replica may need to do so if it has been offline for some time, and
|
|
has fallen behind in its execution of the replication stream.
|
|
<p>
|
|
During that time, the connected nodes may have reduced their log files by
|
|
deleting files after doing log cleaning. When this node rejoins the group,
|
|
it is possible that the current Master's log files do not go back far enough
|
|
to adequately <a
|
|
href="../../../../../ReplicationGuide/lifecycle.html#lifecycle-nodestartup">
|
|
sync * up</a> this node. In that case, the node can use a <code>NetworkRestore</code> object to copy the log files from one of the nodes in the
|
|
group. The system tries to avoid deleting log files that either would be
|
|
needed for replication by current nodes or where replication would be more
|
|
efficient than network restore.
|
|
<p>
|
|
A Replica discovers the need for a NetworkRestore operation when a call to
|
|
<code>ReplicatedEnvironment()</code> fails with a <a href="../../../../com/sleepycat/je/rep/InsufficientLogException.html" title="class in com.sleepycat.je.rep"><code>InsufficientLogException</code></a>.
|
|
<p>
|
|
A call to <code>NetworkRestore.execute()</code> will copy the required log
|
|
files from a member of the group who owns the files and seems to be the
|
|
least busy. For example:
|
|
<pre class=code>
|
|
try {
|
|
node = new ReplicatedEnvironment(envDir, envConfig, repConfig);
|
|
} catch (InsufficientLogException insufficientLogEx) {
|
|
|
|
NetworkRestore restore = new NetworkRestore();
|
|
NetworkRestoreConfig config = new NetworkRestoreConfig();
|
|
config.setRetainLogFiles(false); // delete obsolete log files.
|
|
|
|
// Use the members returned by insufficientLogEx.getLogProviders() to
|
|
// select the desired subset of members and pass the resulting list
|
|
// as the argument to config.setLogProviders(), if the default selection
|
|
// of providers is not suitable.
|
|
|
|
restore.execute(insufficientLogEx, config);
|
|
|
|
// retry
|
|
node = new ReplicatedEnvironment(envDir, envConfig, repConfig);
|
|
}
|
|
</pre></div>
|
|
<dl>
|
|
<dt><span class="seeLabel">See Also:</span></dt>
|
|
<dd><a href="../../../../../ReplicationGuide/logfile-restore.html">
|
|
Restoring Log Files</a></dd>
|
|
</dl>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="summary">
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
<ul class="blockList">
|
|
<li class="blockList"><a name="constructor.summary">
|
|
<!-- -->
|
|
</a>
|
|
<h3>Constructor Summary</h3>
|
|
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
|
|
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
<tr>
|
|
<th class="colOne" scope="col">Constructor and Description</th>
|
|
</tr>
|
|
<tr class="altColor">
|
|
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/sleepycat/je/rep/NetworkRestore.html#NetworkRestore--">NetworkRestore</a></span>()</code>
|
|
<div class="block">Creates an instance of NetworkRestore suitable for restoring the logs at
|
|
this node.</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</li>
|
|
</ul>
|
|
<!-- ========== METHOD SUMMARY =========== -->
|
|
<ul class="blockList">
|
|
<li class="blockList"><a name="method.summary">
|
|
<!-- -->
|
|
</a>
|
|
<h3>Method Summary</h3>
|
|
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
|
|
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
|
|
<tr>
|
|
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
<th class="colLast" scope="col">Method and Description</th>
|
|
</tr>
|
|
<tr id="i0" class="altColor">
|
|
<td class="colFirst"><code>void</code></td>
|
|
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/sleepycat/je/rep/NetworkRestore.html#execute-com.sleepycat.je.rep.InsufficientLogException-com.sleepycat.je.rep.NetworkRestoreConfig-">execute</a></span>(<a href="../../../../com/sleepycat/je/rep/InsufficientLogException.html" title="class in com.sleepycat.je.rep">InsufficientLogException</a> logException,
|
|
<a href="../../../../com/sleepycat/je/rep/NetworkRestoreConfig.html" title="class in com.sleepycat.je.rep">NetworkRestoreConfig</a> config)</code>
|
|
<div class="block">Restores the log files from one of the members of the replication group.</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<ul class="blockList">
|
|
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
|
|
<!-- -->
|
|
</a>
|
|
<h3>Methods inherited from class java.lang.Object</h3>
|
|
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="details">
|
|
<ul class="blockList">
|
|
<li class="blockList">
|
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
<ul class="blockList">
|
|
<li class="blockList"><a name="constructor.detail">
|
|
<!-- -->
|
|
</a>
|
|
<h3>Constructor Detail</h3>
|
|
<a name="NetworkRestore--">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="blockListLast">
|
|
<li class="blockList">
|
|
<h4>NetworkRestore</h4>
|
|
<pre>public NetworkRestore()</pre>
|
|
<div class="block">Creates an instance of NetworkRestore suitable for restoring the logs at
|
|
this node. After the logs are restored, the node can create a new
|
|
<a href="../../../../com/sleepycat/je/rep/ReplicatedEnvironment.html" title="class in com.sleepycat.je.rep"><code>ReplicatedEnvironment</code></a> and join the group</div>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<!-- ============ METHOD DETAIL ========== -->
|
|
<ul class="blockList">
|
|
<li class="blockList"><a name="method.detail">
|
|
<!-- -->
|
|
</a>
|
|
<h3>Method Detail</h3>
|
|
<a name="execute-com.sleepycat.je.rep.InsufficientLogException-com.sleepycat.je.rep.NetworkRestoreConfig-">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="blockListLast">
|
|
<li class="blockList">
|
|
<h4>execute</h4>
|
|
<pre>public void execute(<a href="../../../../com/sleepycat/je/rep/InsufficientLogException.html" title="class in com.sleepycat.je.rep">InsufficientLogException</a> logException,
|
|
<a href="../../../../com/sleepycat/je/rep/NetworkRestoreConfig.html" title="class in com.sleepycat.je.rep">NetworkRestoreConfig</a> config)
|
|
throws <a href="../../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je">EnvironmentFailureException</a>,
|
|
java.lang.IllegalArgumentException</pre>
|
|
<div class="block">Restores the log files from one of the members of the replication group.
|
|
<p>
|
|
If <code>config.getLogProviders()</code> returns null, or an empty list,
|
|
it uses the member that is least busy as the provider of the log files.
|
|
Otherwise it selects a member from the list, choosing the first member
|
|
that's available, to provide the log files. If the members in this list
|
|
are not present in <code>logException.getLogProviders()</code>, it will
|
|
result in an <code>IllegalArgumentException</code> being thrown.
|
|
Exceptions handlers for <code>InsufficientLogException</code> will
|
|
typically use <a href="../../../../com/sleepycat/je/rep/InsufficientLogException.html#getLogProviders--"><code>InsufficientLogException.getLogProviders()</code></a> as the
|
|
starting point to compute an appropriate list, with which to set up
|
|
the <code>config</code> argument.
|
|
<p>
|
|
Log files that are currently at the node will be retained if they are
|
|
part of a consistent set of log files. Obsolete log files are either
|
|
deleted, or are renamed based on the the configuration of
|
|
<code>config.getRetainLogFiles()</code>.</div>
|
|
<dl>
|
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
<dd><code>logException</code> - the exception thrown by <code>ReplicatedEnvironment()</code> that necessitated this log refresh operation</dd>
|
|
<dd><code>config</code> - configures the execution of the network restore operation</dd>
|
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
<dd><code><a href="../../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je">EnvironmentFailureException</a></code> - if an unexpected, internal or
|
|
environment-wide failure occurs.</dd>
|
|
<dd><code>java.lang.IllegalArgumentException</code> - if the <code>config</code> is invalid</dd>
|
|
<dt><span class="seeLabel">See Also:</span></dt>
|
|
<dd><a href="../../../../com/sleepycat/je/rep/NetworkRestoreConfig.html" title="class in com.sleepycat.je.rep"><code>NetworkRestoreConfig</code></a></dd>
|
|
</dl>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<!-- ========= END OF CLASS DATA ========= -->
|
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
<div class="bottomNav"><a name="navbar.bottom">
|
|
<!-- -->
|
|
</a>
|
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
<a name="navbar.bottom.firstrow">
|
|
<!-- -->
|
|
</a>
|
|
<ul class="navList" title="Navigation">
|
|
<li><a href="../../../../overview-summary.html">Overview</a></li>
|
|
<li><a href="package-summary.html">Package</a></li>
|
|
<li class="navBarCell1Rev">Class</li>
|
|
<li><a href="class-use/NetworkRestore.html">Use</a></li>
|
|
<li><a href="package-tree.html">Tree</a></li>
|
|
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
|
|
<li><a href="../../../../index-all.html">Index</a></li>
|
|
<li><a href="../../../../help-doc.html">Help</a></li>
|
|
</ul>
|
|
<div class="aboutLanguage"><b>Berkeley DB Java Edition</b><br><font size=\"-1\"> version 7.5.11</font>
|
|
</div>
|
|
</div>
|
|
<div class="subNav">
|
|
<ul class="navList">
|
|
<li><a href="../../../../com/sleepycat/je/rep/MemberNotFoundException.html" title="class in com.sleepycat.je.rep"><span class="typeNameLink">Prev Class</span></a></li>
|
|
<li><a href="../../../../com/sleepycat/je/rep/NetworkRestoreConfig.html" title="class in com.sleepycat.je.rep"><span class="typeNameLink">Next Class</span></a></li>
|
|
</ul>
|
|
<ul class="navList">
|
|
<li><a href="../../../../index.html?com/sleepycat/je/rep/NetworkRestore.html" target="_top">Frames</a></li>
|
|
<li><a href="NetworkRestore.html" target="_top">No Frames</a></li>
|
|
</ul>
|
|
<ul class="navList" id="allclasses_navbar_bottom">
|
|
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
|
|
</ul>
|
|
<div>
|
|
<script type="text/javascript"><!--
|
|
allClassesLink = document.getElementById("allclasses_navbar_bottom");
|
|
if(window==top) {
|
|
allClassesLink.style.display = "block";
|
|
}
|
|
else {
|
|
allClassesLink.style.display = "none";
|
|
}
|
|
//-->
|
|
</script>
|
|
</div>
|
|
<div>
|
|
<ul class="subNavList">
|
|
<li>Summary: </li>
|
|
<li>Nested | </li>
|
|
<li>Field | </li>
|
|
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
<li><a href="#method.summary">Method</a></li>
|
|
</ul>
|
|
<ul class="subNavList">
|
|
<li>Detail: </li>
|
|
<li>Field | </li>
|
|
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
<li><a href="#method.detail">Method</a></li>
|
|
</ul>
|
|
</div>
|
|
<a name="skip.navbar.bottom">
|
|
<!-- -->
|
|
</a></div>
|
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
<p class="legalCopy"><small><font size=1>Copyright (c) 2002, 2017 Oracle and/or its affiliates. All rights reserved.</font> </small></p>
|
|
</body>
|
|
</html>
|