stasis/je-7.5.11/docs/examples/je/rep/quote/RunTransaction.html
2019-06-25 16:12:40 -04:00

318 lines
14 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:52 EDT 2017 -->
<title>RunTransaction (Oracle - Berkeley DB Java Edition Examples)</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="RunTransaction (Oracle - Berkeley DB Java Edition Examples)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":10,"i2":10,"i3":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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="../../../je/rep/quote/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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 Examples</b><br><font size=\"-1\"> version 7.5.11</font>
</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../je/rep/quote/RouterDrivenStockQuotes.html" title="class in je.rep.quote"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../je/rep/quote/SimpleRouter.html" title="class in je.rep.quote"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?je/rep/quote/RunTransaction.html" target="_top">Frames</a></li>
<li><a href="RunTransaction.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;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:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</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">je.rep.quote</div>
<h2 title="Class RunTransaction" class="title">Class RunTransaction</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>je.rep.quote.RunTransaction</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">RunTransaction</span>
extends java.lang.Object</pre>
<div class="block">Utility class to begin and commit/abort a transaction and handle exceptions
according to this application's policies. The doTransactionWork method is
abstract and must be implemented by callers. The transaction is run and
doTransactionWork is called by the run() method of this class. The
onReplicaWrite and onRetryFailure methods may optionally be overridden.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</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>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../je/rep/quote/RunTransaction.html#doTransactionWork-com.sleepycat.je.Transaction-">doTransactionWork</a></span>(<a href="../../../../java/com/sleepycat/je/Transaction.html?is-external=true" title="class or interface in com.sleepycat.je">Transaction</a>&nbsp;txn)</code>
<div class="block">Must be implemented to perform operations using the given Transaction.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../je/rep/quote/RunTransaction.html#onReplicaWrite-com.sleepycat.je.rep.ReplicaWriteException-">onReplicaWrite</a></span>(<a href="../../../../java/com/sleepycat/je/rep/ReplicaWriteException.html?is-external=true" title="class or interface in com.sleepycat.je.rep">ReplicaWriteException</a>&nbsp;replicaWrite)</code>
<div class="block">May be optionally overridden to handle a ReplicaWriteException.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../je/rep/quote/RunTransaction.html#onRetryFailure-com.sleepycat.je.OperationFailureException-">onRetryFailure</a></span>(<a href="../../../../java/com/sleepycat/je/OperationFailureException.html?is-external=true" title="class or interface in com.sleepycat.je">OperationFailureException</a>&nbsp;lastException)</code>
<div class="block">May be optionally overridden to handle a failure after the
TRANSACTION_RETRY_MAX has been exceeded.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../je/rep/quote/RunTransaction.html#run-boolean-">run</a></span>(boolean&nbsp;readOnly)</code>
<div class="block">Runs a transaction, calls the doTransactionWork method, and retries as
needed.</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&nbsp;java.lang.Object</h3>
<code>equals, 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">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="run-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public&nbsp;void&nbsp;run(boolean&nbsp;readOnly)
throws java.lang.InterruptedException,
<a href="../../../../java/com/sleepycat/je/EnvironmentFailureException.html?is-external=true" title="class or interface in com.sleepycat.je">EnvironmentFailureException</a></pre>
<div class="block">Runs a transaction, calls the doTransactionWork method, and retries as
needed.
<p>
If the transaction is read only, it uses Durability.READ_ONLY_TXN for
the Transaction. Since this Durability policy does not call for any
acknowledgments, it eliminates the possibility of a <a href="../../../../java/com/sleepycat/je/rep/InsufficientReplicasException.html?is-external=true" title="class or interface in com.sleepycat.je.rep"><code>InsufficientReplicasException</code></a> being thrown from the call to <a href="../../../../java/com/sleepycat/je/Environment.html?is-external=true#beginTransaction-com.sleepycat.je.Transaction-com.sleepycat.je.TransactionConfig-" title="class or interface in com.sleepycat.je"><code>Environment.beginTransaction(com.sleepycat.je.Transaction, com.sleepycat.je.TransactionConfig)</code></a> for a read only transaction on a Master,
which is an overly stringent requirement. This makes the Master more
available for read operations.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>readOnly</code> - determines whether the transaction to be run is read
only.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.InterruptedException</code></dd>
<dd><code><a href="../../../../java/com/sleepycat/je/EnvironmentFailureException.html?is-external=true" title="class or interface in com.sleepycat.je">EnvironmentFailureException</a></code></dd>
</dl>
</li>
</ul>
<a name="doTransactionWork-com.sleepycat.je.Transaction-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doTransactionWork</h4>
<pre>public abstract&nbsp;void&nbsp;doTransactionWork(<a href="../../../../java/com/sleepycat/je/Transaction.html?is-external=true" title="class or interface in com.sleepycat.je">Transaction</a>&nbsp;txn)</pre>
<div class="block">Must be implemented to perform operations using the given Transaction.</div>
</li>
</ul>
<a name="onReplicaWrite-com.sleepycat.je.rep.ReplicaWriteException-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onReplicaWrite</h4>
<pre>public&nbsp;void&nbsp;onReplicaWrite(<a href="../../../../java/com/sleepycat/je/rep/ReplicaWriteException.html?is-external=true" title="class or interface in com.sleepycat.je.rep">ReplicaWriteException</a>&nbsp;replicaWrite)</pre>
<div class="block">May be optionally overridden to handle a ReplicaWriteException. After
this method is called, the RunTransaction constructor will return. By
default, this method throws the ReplicaWriteException.</div>
</li>
</ul>
<a name="onRetryFailure-com.sleepycat.je.OperationFailureException-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onRetryFailure</h4>
<pre>public&nbsp;void&nbsp;onRetryFailure(<a href="../../../../java/com/sleepycat/je/OperationFailureException.html?is-external=true" title="class or interface in com.sleepycat.je">OperationFailureException</a>&nbsp;lastException)</pre>
<div class="block">May be optionally overridden to handle a failure after the
TRANSACTION_RETRY_MAX has been exceeded. After this method is called,
the RunTransaction constructor will return. By default, this method
prints the last exception.</div>
</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="../../../je/rep/quote/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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 Examples</b><br><font size=\"-1\"> version 7.5.11</font>
</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../je/rep/quote/RouterDrivenStockQuotes.html" title="class in je.rep.quote"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../je/rep/quote/SimpleRouter.html" title="class in je.rep.quote"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?je/rep/quote/RunTransaction.html" target="_top">Frames</a></li>
<li><a href="RunTransaction.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;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:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</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>