293 lines
11 KiB
HTML
293 lines
11 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>ThreadInterruptedException (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="ThreadInterruptedException (Oracle - Berkeley DB Java Edition API)";
|
||
|
}
|
||
|
}
|
||
|
catch(err) {
|
||
|
}
|
||
|
//-->
|
||
|
</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/ThreadInterruptedException.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/StatsConfig.html" title="class in com.sleepycat.je"><span class="typeNameLink">Prev Class</span></a></li>
|
||
|
<li><a href="../../../com/sleepycat/je/Transaction.html" title="class in com.sleepycat.je"><span class="typeNameLink">Next Class</span></a></li>
|
||
|
</ul>
|
||
|
<ul class="navList">
|
||
|
<li><a href="../../../index.html?com/sleepycat/je/ThreadInterruptedException.html" target="_top">Frames</a></li>
|
||
|
<li><a href="ThreadInterruptedException.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>Constr | </li>
|
||
|
<li><a href="#methods.inherited.from.class.com.sleepycat.je.EnvironmentFailureException">Method</a></li>
|
||
|
</ul>
|
||
|
<ul class="subNavList">
|
||
|
<li>Detail: </li>
|
||
|
<li>Field | </li>
|
||
|
<li>Constr | </li>
|
||
|
<li>Method</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</div>
|
||
|
<h2 title="Class ThreadInterruptedException" class="title">Class ThreadInterruptedException</h2>
|
||
|
</div>
|
||
|
<div class="contentContainer">
|
||
|
<ul class="inheritance">
|
||
|
<li>java.lang.Object</li>
|
||
|
<li>
|
||
|
<ul class="inheritance">
|
||
|
<li>java.lang.Throwable</li>
|
||
|
<li>
|
||
|
<ul class="inheritance">
|
||
|
<li>java.lang.Exception</li>
|
||
|
<li>
|
||
|
<ul class="inheritance">
|
||
|
<li>java.lang.RuntimeException</li>
|
||
|
<li>
|
||
|
<ul class="inheritance">
|
||
|
<li><a href="../../../com/sleepycat/je/DatabaseException.html" title="class in com.sleepycat.je">com.sleepycat.je.DatabaseException</a></li>
|
||
|
<li>
|
||
|
<ul class="inheritance">
|
||
|
<li><a href="../../../com/sleepycat/je/RunRecoveryException.html" title="class in com.sleepycat.je">com.sleepycat.je.RunRecoveryException</a></li>
|
||
|
<li>
|
||
|
<ul class="inheritance">
|
||
|
<li><a href="../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je">com.sleepycat.je.EnvironmentFailureException</a></li>
|
||
|
<li>
|
||
|
<ul class="inheritance">
|
||
|
<li>com.sleepycat.je.ThreadInterruptedException</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
<div class="description">
|
||
|
<ul class="blockList">
|
||
|
<li class="blockList">
|
||
|
<dl>
|
||
|
<dt>All Implemented Interfaces:</dt>
|
||
|
<dd>java.io.Serializable</dd>
|
||
|
</dl>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<pre>public class <span class="typeNameLabel">ThreadInterruptedException</span>
|
||
|
extends <a href="../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je">EnvironmentFailureException</a></pre>
|
||
|
<div class="block">Thrown when <code>java.lang.InterruptedException</code> (a thread interrupt) or
|
||
|
<code>java.nio.channels.ClosedChannelException</code> (which also results from a
|
||
|
thread interrupt) occurs in any JE method. This occurs when the application,
|
||
|
or perhaps a library or container that the application is using, calls
|
||
|
<code>Thread.interrupt()</code>.
|
||
|
|
||
|
<p>Calling <code>Thread.interrupt</code> is not recommended for an active JE
|
||
|
thread if the goal is to stop the thread or do thread coordination. If you
|
||
|
interrupt a thread that is executing a JE operation, the state of the
|
||
|
environment will be undefined. That's because JE might have been in the
|
||
|
middle of I/O activity when the operation was aborted midstream, and it
|
||
|
becomes very difficult to detect and handle all possible outcomes.</p>
|
||
|
|
||
|
<p>When JE detects the interrupt, it will mark the environment invalid and
|
||
|
will throw a <code>ThreadInterruptedException</code>. This tells you that you
|
||
|
must close the environment and re-open it before using it again. This is
|
||
|
necessary, because if JE didn't throw <code>ThreadInterruptedException</code>, it
|
||
|
is very likely that you would get some other exception that is less
|
||
|
meaningful, or simply see corrupted data.</p>
|
||
|
|
||
|
<p>Instead, applications should use other mechanisms like <code>Object.notify</code> and <code>wait</code> to coordinate threads. For example, use a
|
||
|
<code>keepRunning</code> variable of some kind in each thread. Check this
|
||
|
variable in your threads, and return from the thread when it is false. Set
|
||
|
it to false when you want to stop the thread. If this thread is waiting to
|
||
|
be woken up to do another unit of work, use <code>Object.notify</code> to wake it
|
||
|
up. This is the recommended technique.</p>
|
||
|
|
||
|
<p>However, if the use of <code>Thread.interrupt</code> is unavoidable, be sure
|
||
|
to use it only when shutting down the environment. In this situation,
|
||
|
the <code>ThreadInterruptedException</code> should be expected. Note that
|
||
|
by shutting down the environment abnormally, recovery time will be longer
|
||
|
when the environment is subsequently opened, because a final checkpoint was
|
||
|
not performed.</p>
|
||
|
|
||
|
<p>Existing <a href="../../../com/sleepycat/je/Environment.html" title="class in com.sleepycat.je"><code>Environment</code></a> handles are invalidated as a result of this
|
||
|
exception.</p></div>
|
||
|
<dl>
|
||
|
<dt><span class="simpleTagLabel">Since:</span></dt>
|
||
|
<dd>4.0</dd>
|
||
|
<dt><span class="seeLabel">See Also:</span></dt>
|
||
|
<dd><a href="../../../serialized-form.html#com.sleepycat.je.ThreadInterruptedException">Serialized Form</a></dd>
|
||
|
</dl>
|
||
|
</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>
|
||
|
<ul class="blockList">
|
||
|
<li class="blockList"><a name="methods.inherited.from.class.com.sleepycat.je.EnvironmentFailureException">
|
||
|
<!-- -->
|
||
|
</a>
|
||
|
<h3>Methods inherited from class com.sleepycat.je.<a href="../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je">EnvironmentFailureException</a></h3>
|
||
|
<code><a href="../../../com/sleepycat/je/EnvironmentFailureException.html#getMessage--">getMessage</a>, <a href="../../../com/sleepycat/je/EnvironmentFailureException.html#isCorrupted--">isCorrupted</a></code></li>
|
||
|
</ul>
|
||
|
<ul class="blockList">
|
||
|
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
|
||
|
<!-- -->
|
||
|
</a>
|
||
|
<h3>Methods inherited from class java.lang.Throwable</h3>
|
||
|
<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
|
||
|
</ul>
|
||
|
<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, wait, wait, wait</code></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/ThreadInterruptedException.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/StatsConfig.html" title="class in com.sleepycat.je"><span class="typeNameLink">Prev Class</span></a></li>
|
||
|
<li><a href="../../../com/sleepycat/je/Transaction.html" title="class in com.sleepycat.je"><span class="typeNameLink">Next Class</span></a></li>
|
||
|
</ul>
|
||
|
<ul class="navList">
|
||
|
<li><a href="../../../index.html?com/sleepycat/je/ThreadInterruptedException.html" target="_top">Frames</a></li>
|
||
|
<li><a href="ThreadInterruptedException.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>Constr | </li>
|
||
|
<li><a href="#methods.inherited.from.class.com.sleepycat.je.EnvironmentFailureException">Method</a></li>
|
||
|
</ul>
|
||
|
<ul class="subNavList">
|
||
|
<li>Detail: </li>
|
||
|
<li>Field | </li>
|
||
|
<li>Constr | </li>
|
||
|
<li>Method</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>
|