stasis/je-7.5.11/docs/java/com/sleepycat/je/EnvironmentConfig.html
2019-06-25 16:12:40 -04:00

7254 lines
312 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:45 EDT 2017 -->
<title>EnvironmentConfig (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="EnvironmentConfig (Oracle - Berkeley DB Java Edition API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":42,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":42,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":42,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":42,"i31":10,"i32":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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/EnvironmentConfig.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/Environment.html" title="class in com.sleepycat.je"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/sleepycat/je/EnvironmentConfig.html" target="_top">Frames</a></li>
<li><a href="EnvironmentConfig.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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">com.sleepycat.je</div>
<h2 title="Class EnvironmentConfig" class="title">Class EnvironmentConfig</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html" title="class in com.sleepycat.je">com.sleepycat.je.EnvironmentMutableConfig</a></li>
<li>
<ul class="inheritance">
<li>com.sleepycat.je.EnvironmentConfig</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, java.lang.Cloneable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">EnvironmentConfig</span>
extends <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html" title="class in com.sleepycat.je">EnvironmentMutableConfig</a></pre>
<div class="block">Specifies the attributes of an environment.
<p>To change the default settings for a database environment, an application
creates a configuration object, customizes settings and uses it for
environment construction. The set methods of this class validate the
configuration values when the method is invoked. An
IllegalArgumentException is thrown if the value is not valid for that
attribute.</p>
<p>Most parameters are described by the parameter name String constants in
this class. These parameters can be specified or individually by calling
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#setConfigParam-java.lang.String-java.lang.String-"><code>setConfigParam(java.lang.String, java.lang.String)</code></a>, through a Properties object passed to <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EnvironmentConfig-java.util.Properties-"><code>EnvironmentConfig(Properties)</code></a>, or via properties in the je.properties
files located in the environment home directory.</p>
<p>For example, an application can change the default btree node size
with:</p>
<pre>
envConfig.setConfigParam(EnvironmentConfig.LOCK_TIMEOUT, "250 ms");
</pre>
<p>Some commonly used environment attributes have convenience setter/getter
methods defined in this class. For example, to change the default
lock timeout setting for an environment, the application can instead do
the following:</p>
<pre class=code>
// customize an environment configuration
EnvironmentConfig envConfig = new EnvironmentConfig();
// will throw if timeout value is invalid
envConfig.setLockTimeout(250, TimeUnit.MILLISECONDS);
// Open the environment using this configuration.
Environment myEnvironment = new Environment(home, envConfig);
</pre>
<p>Parameter values are applied using this order of precedence:</p>
<ol>
<li>Configuration parameters specified in je.properties take first
precedence.</li>
<li>Configuration parameters set in the EnvironmentConfig object used at
Environment construction are next.</li>
<li>Any configuration parameters not set by the application are set to
system defaults, described along with the parameter name String
constants in this class.</li>
</ol>
<p>However, a small number of parameters do not have string constants in
this class, and cannot be set using <a href="../../../com/sleepycat/je/EnvironmentConfig.html#setConfigParam-java.lang.String-java.lang.String-"><code>setConfigParam(java.lang.String, java.lang.String)</code></a>, a Properties
object, or the je.properties file. These parameters can only be changed
via the following setter methods:</p>
<ul>
<li><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setAllowCreate-boolean-"><code>setAllowCreate(boolean)</code></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setCacheMode-com.sleepycat.je.CacheMode-"><code>EnvironmentMutableConfig.setCacheMode(com.sleepycat.je.CacheMode)</code></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setClassLoader-java.lang.ClassLoader-"><code>setClassLoader(java.lang.ClassLoader)</code></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setCustomStats-com.sleepycat.je.CustomStats-"><code>setCustomStats(com.sleepycat.je.CustomStats)</code></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setExceptionListener-com.sleepycat.je.ExceptionListener-"><code>EnvironmentMutableConfig.setExceptionListener(com.sleepycat.je.ExceptionListener)</code></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLoggingHandler-java.util.logging.Handler-"><code>setLoggingHandler(java.util.logging.Handler)</code></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setNodeName-java.lang.String-"><code>setNodeName(java.lang.String)</code></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setRecoveryProgressListener-com.sleepycat.je.ProgressListener-"><code>setRecoveryProgressListener(com.sleepycat.je.ProgressListener&lt;com.sleepycat.je.RecoveryProgress&gt;)</code></a></li>
</ul>
<p>An EnvironmentConfig can be used to specify both mutable and immutable
environment properties. Immutable properties may be specified when the
first Environment handle (instance) is opened for a given physical
environment. When more handles are opened for the same environment, the
following rules apply:</p>
<ol>
<li>Immutable properties must equal the original values specified when
constructing an Environment handle for an already open environment. When a
mismatch occurs, an exception is thrown.</li>
<li>Mutable properties are ignored when constructing an Environment handle
for an already open environment.</li>
</ol>
<p>After an Environment has been constructed, its mutable properties may be
changed using <a href="../../../com/sleepycat/je/Environment.html#setMutableConfig-com.sleepycat.je.EnvironmentMutableConfig-"><code>Environment.setMutableConfig(com.sleepycat.je.EnvironmentMutableConfig)</code></a>. See <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html" title="class in com.sleepycat.je"><code>EnvironmentMutableConfig</code></a> for a list of mutable properties; all other
properties are immutable. Whether a property is mutable or immutable is
also described along with the parameter name String constants in this
class.</p>
<h4>Getting the Current Environment Properties</h4>
To get the current "live" properties of an environment after constructing it
or changing its properties, you must call <a href="../../../com/sleepycat/je/Environment.html#getConfig--"><code>Environment.getConfig()</code></a> or
<a href="../../../com/sleepycat/je/Environment.html#getMutableConfig--"><code>Environment.getMutableConfig()</code></a>. The original EnvironmentConfig or
EnvironmentMutableConfig object used to set the properties is not kept up to
date as properties are changed, and does not reflect property validation or
properties that are computed.
<h4><a name="timeDuration">Time Duration Properties</a></h4>
<p>Several environment and transaction configuration properties are time
durations. For these properties, a time unit is specified along with an
integer duration value.</p>
<p>When specific setter and getter methods exist for a time duration
property, these methods have a <code>TimeUnit</code> argument. Examples are
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLockTimeout-long-java.util.concurrent.TimeUnit-"><code>setLockTimeout(long,TimeUnit)</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#getLockTimeout-java.util.concurrent.TimeUnit-"><code>getLockTimeout(TimeUnit)</code></a>. Note that the <code>TimeUnit</code> argument may
be null only when the duration value is zero; there is no default unit that
is used when null is specified.</p>
<p>When a time duration is specified as a string value, the following format
is used.</p>
<pre> <code> &lt;value&gt; [ &lt;whitespace&gt; &lt;unit&gt; ]</code></pre>
<p>The <code>&lt;value&gt;</code> is an integer. The <code>&lt;unit&gt;</code> name, if present,
must be preceded by one or more spaces or tabs.</p>
<p>The following <code>&lt;unit&gt;</code> names are allowed. Both <code>TimeUnit</code>
names and IEEE standard abbreviations are allowed. Unit names are case
insensitive.</p>
<table border="true">
<tr><th>IEEE abbreviation</th>
<th>TimeUnit name</td>
<th>Definition</th>
</tr>
<tr><td><code>ns</code></td>
<td><code>NANOSECONDS</code></td>
<td>one billionth (10<sup>-9</sup>) of a second</td>
</tr>
<tr><td><code>us</code></td>
<td><code>MICROSECONDS</code></td>
<td>one millionth (10<sup>-6</sup>) of a second</td>
</tr>
<tr><td><code>ms</code></td>
<td><code>MILLISECONDS</code></td>
<td>one thousandth (10<sup>-3</sup>) of a second</td>
</tr>
<tr><td><code>s</code></td>
<td><code>SECONDS</code></td>
<td>1 second</td>
</tr>
<tr><td><code>min</code></td>
<td>&nbsp;</td>
<td>60 seconds</td>
</tr>
<tr><td><code>h</code></td>
<td>&nbsp;</td>
<td>3600 seconds</td>
</tr>
</table>
<p>Examples are:</p>
<pre>
3 seconds
3 s
500 ms
1000000 (microseconds is implied)
</pre>
<p>The maximum duration value is currently Integer.MAX_VALUE milliseconds.
This translates to almost 25 days (2147483647999999 ns, 2147483647999 us,
2147483647 ms, 2147483 s, 35791 min, 596 h).</p>
<p>Note that when the <code>&lt;unit&gt;</code> is omitted, microseconds is implied.
This default is supported for compatibility with JE 3.3 and earlier. In JE
3.3 and earlier, explicit time units were not used and durations were always
implicitly specified in microseconds. The older methods that do not have a
<code>TimeUnit</code> argument, such as <a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLockTimeout-long-"><code>setLockTimeout(long)</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#getLockTimeout--"><code>getLockTimeout()</code></a>, use microsecond durations and have been deprecated.</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../serialized-form.html#com.sleepycat.je.EnvironmentConfig">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ADLER32_CHUNK_SIZE">ADLER32_CHUNK_SIZE</a></span></code>
<div class="block">By default, JE passes an entire log record to the Adler32 class for
checksumming.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_BYTES_INTERVAL">CHECKPOINTER_BYTES_INTERVAL</a></span></code>
<div class="block">Ask the checkpointer to run every time we write this many bytes to the
log.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_DEADLOCK_RETRY">CHECKPOINTER_DEADLOCK_RETRY</a></span></code>
<div class="block">The number of times to retry a checkpoint if it runs into a deadlock.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_HIGH_PRIORITY">CHECKPOINTER_HIGH_PRIORITY</a></span></code>
<div class="block">If true, the checkpointer uses more resources in order to complete the
checkpoint in a shorter time interval.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_WAKEUP_INTERVAL">CHECKPOINTER_WAKEUP_INTERVAL</a></span></code>
<div class="block">The checkpointer wakeup interval in microseconds.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_ADJUST_UTILIZATION">CLEANER_ADJUST_UTILIZATION</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">in JE 6.3. Adjustments are no longer needed because LN log
sizes have been stored in the Btree since JE 6.0.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_BACKGROUND_PROACTIVE_MIGRATION">CLEANER_BACKGROUND_PROACTIVE_MIGRATION</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">This parameter is ignored and proactive migration is no
longer supported due to its negative impact on eviction and
checkpointing. To reduce a cleaner backlog, configure more cleaner
threads.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_BYTES_INTERVAL">CLEANER_BYTES_INTERVAL</a></span></code>
<div class="block">The cleaner checks disk utilization every time we write this many bytes
to the log.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_DEADLOCK_RETRY">CLEANER_DEADLOCK_RETRY</a></span></code>
<div class="block">The number of times to retry cleaning if a deadlock occurs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_DETAIL_MAX_MEMORY_PERCENTAGE">CLEANER_DETAIL_MAX_MEMORY_PERCENTAGE</a></span></code>
<div class="block">Tracking of detailed cleaning information will use no more than this
percentage of the cache.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_EXPUNGE">CLEANER_EXPUNGE</a></span></code>
<div class="block">If true (the default setting), the cleaner deletes log files after
successful cleaning.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_FETCH_OBSOLETE_SIZE">CLEANER_FETCH_OBSOLETE_SIZE</a></span></code>
<div class="block">If true, the cleaner will fetch records to determine their size and more
accurately calculate log utilization.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_FORCE_CLEAN_FILES">CLEANER_FORCE_CLEAN_FILES</a></span></code>
<div class="block">Specifies a list of files or file ranges to be cleaned at a time when no
other log cleaning is necessary.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_FOREGROUND_PROACTIVE_MIGRATION">CLEANER_FOREGROUND_PROACTIVE_MIGRATION</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">This parameter is ignored and proactive migration is no
longer supported due to its negative impact on eviction and Btree
splits. To reduce a cleaner backlog, configure more cleaner threads.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_LAZY_MIGRATION">CLEANER_LAZY_MIGRATION</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">This parameter is ignored and lazy migration is no longer
supported due to its negative impact on eviction and checkpointing.
To reduce a cleaner backlog, configure more cleaner threads.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_LOCK_TIMEOUT">CLEANER_LOCK_TIMEOUT</a></span></code>
<div class="block">The lock timeout for cleaner transactions in microseconds.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_LOOK_AHEAD_CACHE_SIZE">CLEANER_LOOK_AHEAD_CACHE_SIZE</a></span></code>
<div class="block">The look ahead cache size for cleaning in bytes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_MAX_BATCH_FILES">CLEANER_MAX_BATCH_FILES</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">in 7.0. No longer used because the cleaner no longer has a
backlog.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_MIN_AGE">CLEANER_MIN_AGE</a></span></code>
<div class="block">The minimum age of a file (number of files between it and the active
file) to qualify it for cleaning under any conditions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_MIN_FILE_UTILIZATION">CLEANER_MIN_FILE_UTILIZATION</a></span></code>
<div class="block">A log file will be cleaned if its utilization percentage is below this
value, irrespective of total utilization.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_MIN_UTILIZATION">CLEANER_MIN_UTILIZATION</a></span></code>
<div class="block">The cleaner will keep the total disk space utilization percentage above
this value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_READ_SIZE">CLEANER_READ_SIZE</a></span></code>
<div class="block">The read buffer size for cleaning.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_THREADS">CLEANER_THREADS</a></span></code>
<div class="block">The number of threads allocated by the cleaner for log file processing.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_UPGRADE_TO_LOG_VERSION">CLEANER_UPGRADE_TO_LOG_VERSION</a></span></code>
<div class="block">All log files having a log version prior to the specified version will
be cleaned at a time when no other log cleaning is necessary.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_USE_DELETED_DIR">CLEANER_USE_DELETED_DIR</a></span></code>
<div class="block">When <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_EXPUNGE"><code>CLEANER_EXPUNGE</code></a> is false, the <code>CLEANER_USE_DELETED_DIR</code> parameter determines whether successfully
cleaned files are moved to the "deleted" sub-directory.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_WAKEUP_INTERVAL">CLEANER_WAKEUP_INTERVAL</a></span></code>
<div class="block">The cleaner checks whether cleaning is needed if this interval elapses
without any writing, to handle the case where cleaning or checkpointing
is necessary to reclaim disk space, but writing has stopped.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#COMPRESSOR_DEADLOCK_RETRY">COMPRESSOR_DEADLOCK_RETRY</a></span></code>
<div class="block">The number of times to retry a compression run if a deadlock occurs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#COMPRESSOR_LOCK_TIMEOUT">COMPRESSOR_LOCK_TIMEOUT</a></span></code>
<div class="block">The lock timeout for compressor transactions in microseconds.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#COMPRESSOR_PURGE_ROOT">COMPRESSOR_PURGE_ROOT</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 3.3.87. Compression of the root node no longer has
any benefit and this feature has been removed. This parameter has no
effect.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#COMPRESSOR_WAKEUP_INTERVAL">COMPRESSOR_WAKEUP_INTERVAL</a></span></code>
<div class="block">The compressor thread wakeup interval in microseconds.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CONSOLE_LOGGING_LEVEL">CONSOLE_LOGGING_LEVEL</a></span></code>
<div class="block">Trace messages equal and above this level will be logged to the
console.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#DOS_PRODUCER_QUEUE_TIMEOUT">DOS_PRODUCER_QUEUE_TIMEOUT</a></span></code>
<div class="block">The timeout for Disk Ordered Scan producer thread queue offers in
milliseconds.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_READ_LIMIT">ENV_BACKGROUND_READ_LIMIT</a></span></code>
<div class="block">The maximum number of read operations performed by JE background
activities (e.g., cleaning) before sleeping to ensure that application
threads can perform I/O.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_SLEEP_INTERVAL">ENV_BACKGROUND_SLEEP_INTERVAL</a></span></code>
<div class="block">The duration that JE background activities will sleep when the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_WRITE_LIMIT"><code>ENV_BACKGROUND_WRITE_LIMIT</code></a> or <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_READ_LIMIT"><code>ENV_BACKGROUND_READ_LIMIT</code></a> is
reached.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_WRITE_LIMIT">ENV_BACKGROUND_WRITE_LIMIT</a></span></code>
<div class="block">The maximum number of write operations performed by JE background
activities (e.g., checkpointing and eviction) before sleeping to ensure
that application threads can perform I/O.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_CHECK_LEAKS">ENV_CHECK_LEAKS</a></span></code>
<div class="block">Debugging support: check leaked locks and txns at env close.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_DB_EVICTION">ENV_DB_EVICTION</a></span></code>
<div class="block">If true, enable eviction of metadata for closed databases.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_DUP_CONVERT_PRELOAD_ALL">ENV_DUP_CONVERT_PRELOAD_ALL</a></span></code>
<div class="block">If true (the default) preload all duplicates databases at once when
upgrading from JE 4.1 and earlier.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_EXPIRATION_ENABLED">ENV_EXPIRATION_ENABLED</a></span></code>
<div class="block">If true (the default), expired data is filtered from queries and purged
by the cleaner.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_FAIR_LATCHES">ENV_FAIR_LATCHES</a></span></code>
<div class="block">If true, use latches instead of synchronized blocks to implement the
lock table and log write mutexes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_FORCED_YIELD">ENV_FORCED_YIELD</a></span></code>
<div class="block">Debugging support: call Thread.yield() at strategic points.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_IS_LOCKING">ENV_IS_LOCKING</a></span></code>
<div class="block">Configures the database environment for no locking.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_IS_TRANSACTIONAL">ENV_IS_TRANSACTIONAL</a></span></code>
<div class="block">Configures the use of transactions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_LATCH_TIMEOUT">ENV_LATCH_TIMEOUT</a></span></code>
<div class="block">The timeout for detecting internal latch timeouts, so that deadlocks can
be detected.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_READ_ONLY">ENV_READ_ONLY</a></span></code>
<div class="block">Configures the database environment to be read-only, and any attempt to
modify a database will fail.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RECOVERY_FORCE_CHECKPOINT">ENV_RECOVERY_FORCE_CHECKPOINT</a></span></code>
<div class="block">If true, a checkpoint is forced following recovery, even if the
log ends with a checkpoint.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RECOVERY_FORCE_NEW_FILE">ENV_RECOVERY_FORCE_NEW_FILE</a></span></code>
<div class="block">Used after performing a restore from backup to force creation of a new
log file prior to recovery.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_CHECKPOINTER">ENV_RUN_CHECKPOINTER</a></span></code>
<div class="block">If true, starts up the checkpointer thread.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_CLEANER">ENV_RUN_CLEANER</a></span></code>
<div class="block">If true, starts up the cleaner thread.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_EVICTOR">ENV_RUN_EVICTOR</a></span></code>
<div class="block">If true, eviction is done by a pool of evictor threads, as well as being
done inline by application threads.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_IN_COMPRESSOR">ENV_RUN_IN_COMPRESSOR</a></span></code>
<div class="block">If true, starts up the INCompressor thread.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_OFFHEAP_EVICTOR">ENV_RUN_OFFHEAP_EVICTOR</a></span></code>
<div class="block">If true, off-heap eviction is done by a pool of evictor threads, as well
as being done inline by application threads.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_VERIFIER">ENV_RUN_VERIFIER</a></span></code>
<div class="block">Whether to run the background verifier.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_TTL_CLOCK_TOLERANCE">ENV_TTL_CLOCK_TOLERANCE</a></span></code>
<div class="block">The interval added to the system clock time for determining that a
record may have expired.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_ALLOW_BIN_DELTAS">EVICTOR_ALLOW_BIN_DELTAS</a></span></code>
<div class="block">Allow Bottom Internal Nodes (BINs) to be written in a delta format
during eviction.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_CORE_THREADS">EVICTOR_CORE_THREADS</a></span></code>
<div class="block">The minimum number of threads in the eviction thread pool.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_CRITICAL_PERCENTAGE">EVICTOR_CRITICAL_PERCENTAGE</a></span></code>
<div class="block">At this percentage over the allotted cache, critical eviction will
start.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_DEADLOCK_RETRY">EVICTOR_DEADLOCK_RETRY</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of JE 4.1, since the single evictor thread has
been replaced be a more robust thread pool.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_EVICT_BYTES">EVICTOR_EVICT_BYTES</a></span></code>
<div class="block">When eviction occurs, the evictor will push memory usage to this number
of bytes below <a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY"><code>MAX_MEMORY</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_FORCED_YIELD">EVICTOR_FORCED_YIELD</a></span></code>
<div class="block">Call Thread.yield() at each check for cache overflow.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_KEEP_ALIVE">EVICTOR_KEEP_ALIVE</a></span></code>
<div class="block">The duration that excess threads in the eviction thread pool will stay
idle; after this period, idle threads will terminate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_LRU_ONLY">EVICTOR_LRU_ONLY</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of JE 6.0. This parameter is ignored by the new,
more efficient and more accurate evictor.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_MAX_THREADS">EVICTOR_MAX_THREADS</a></span></code>
<div class="block">The maximum number of threads in the eviction thread pool.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_N_LRU_LISTS">EVICTOR_N_LRU_LISTS</a></span></code>
<div class="block">The number of LRU lists in the main JE cache.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_NODES_PER_SCAN">EVICTOR_NODES_PER_SCAN</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of JE 6.0. This parameter is ignored by the new, more
efficient and more accurate evictor.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#FILE_LOGGING_LEVEL">FILE_LOGGING_LEVEL</a></span></code>
<div class="block">Trace messages equal and above this level will be logged to the je.info
file, which is in the Environment home directory.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#FREE_DISK">FREE_DISK</a></span></code>
<div class="block">A lower limit on the number of bytes of free space to maintain on a
volume and per JE Environment.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#HALT_ON_COMMIT_AFTER_CHECKSUMEXCEPTION">HALT_ON_COMMIT_AFTER_CHECKSUMEXCEPTION</a></span></code>
<div class="block">By default, if a checksum exception is found at the end of the log
during Environment startup, JE will assume the checksum is due to
previously interrupted I/O and will quietly truncate the log and
restart.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_DEADLOCK_DETECT">LOCK_DEADLOCK_DETECT</a></span></code>
<div class="block">Whether to perform deadlock detection when a lock conflict occurs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_DEADLOCK_DETECT_DELAY">LOCK_DEADLOCK_DETECT_DELAY</a></span></code>
<div class="block">The delay after a lock conflict, before performing deadlock detection.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_N_LOCK_TABLES">LOCK_N_LOCK_TABLES</a></span></code>
<div class="block">Number of Lock Tables.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_OLD_LOCK_EXCEPTIONS">LOCK_OLD_LOCK_EXCEPTIONS</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">since JE 6.5; has no effect, as if it were set to false.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_TIMEOUT">LOCK_TIMEOUT</a></span></code>
<div class="block">Configures the default lock timeout.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_BUFFER_SIZE">LOG_BUFFER_SIZE</a></span></code>
<div class="block">The maximum starting size of a JE log buffer.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_CHECKSUM_READ">LOG_CHECKSUM_READ</a></span></code>
<div class="block">If true, perform a checksum check when reading entries from log.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_CHUNKED_NIO">LOG_CHUNKED_NIO</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">NIO is no longer used by JE and this parameter has no
effect.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_DETECT_FILE_DELETE">LOG_DETECT_FILE_DELETE</a></span></code>
<div class="block">If true, periodically detect unexpected file deletions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_DETECT_FILE_DELETE_INTERVAL">LOG_DETECT_FILE_DELETE_INTERVAL</a></span></code>
<div class="block">The interval used to check for unexpected file deletions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_DIRECT_NIO">LOG_DIRECT_NIO</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">NIO is no longer used by JE and this parameter has no
effect.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FAULT_READ_SIZE">LOG_FAULT_READ_SIZE</a></span></code>
<div class="block">The buffer size for faulting in objects from disk, in bytes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FILE_CACHE_SIZE">LOG_FILE_CACHE_SIZE</a></span></code>
<div class="block">The size of the file handle cache.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FILE_MAX">LOG_FILE_MAX</a></span></code>
<div class="block">The maximum size of each individual JE log file, in bytes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FLUSH_NO_SYNC_INTERVAL">LOG_FLUSH_NO_SYNC_INTERVAL</a></span></code>
<div class="block">The maximum time interval between committing a transaction with
<a href="../../../com/sleepycat/je/Durability.html#COMMIT_NO_SYNC"><code>NO_SYNC</code></a> durability, and
making the transaction durable with respect to the file system.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FLUSH_SYNC_INTERVAL">LOG_FLUSH_SYNC_INTERVAL</a></span></code>
<div class="block">The maximum time interval between committing a transaction with
<a href="../../../com/sleepycat/je/Durability.html#COMMIT_NO_SYNC"><code>NO_SYNC</code></a> or <a href="../../../com/sleepycat/je/Durability.html#COMMIT_WRITE_NO_SYNC"><code>WRITE_NO_SYNC</code></a> durability,
and making the transaction durable with respect to the storage device.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FSYNC_TIME_LIMIT">LOG_FSYNC_TIME_LIMIT</a></span></code>
<div class="block">If the time taken by an fsync exceeds this limit, a WARNING level
message is logged.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FSYNC_TIMEOUT">LOG_FSYNC_TIMEOUT</a></span></code>
<div class="block">The timeout limit for group file sync, in microseconds.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_GROUP_COMMIT_INTERVAL">LOG_GROUP_COMMIT_INTERVAL</a></span></code>
<div class="block">The time interval in nanoseconds during which transactions may be
grouped to amortize the cost of write and/or fsync when a transaction
commits with SyncPolicy#SYNC or SyncPolicy#WRITE_NO_SYNC on the local
machine.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_GROUP_COMMIT_THRESHOLD">LOG_GROUP_COMMIT_THRESHOLD</a></span></code>
<div class="block">The threshold value impacts the number of transactions that may be
grouped to amortize the cost of write and/or fsync when a
transaction commits with SyncPolicy#SYNC or SyncPolicy#WRITE_NO_SYNC
on the local machine.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_ITERATOR_MAX_SIZE">LOG_ITERATOR_MAX_SIZE</a></span></code>
<div class="block">The maximum read buffer size for log iterators, which are used when
scanning the log during activities like log cleaning and environment
open, in bytes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_ITERATOR_READ_SIZE">LOG_ITERATOR_READ_SIZE</a></span></code>
<div class="block">The read buffer size for log iterators, which are used when scanning the
log during activities like log cleaning and environment open, in bytes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_MEM_ONLY">LOG_MEM_ONLY</a></span></code>
<div class="block">If true, operates in an in-memory test mode without flushing the log to
disk.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_N_DATA_DIRECTORIES">LOG_N_DATA_DIRECTORIES</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 7.3. This feature is not known to provide benefits
beyond that of a simple RAID configuration, and will be removed in the
next release, which is slated for mid-April, 2017.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_NUM_BUFFERS">LOG_NUM_BUFFERS</a></span></code>
<div class="block">The number of JE log buffers.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_TOTAL_BUFFER_BYTES">LOG_TOTAL_BUFFER_BYTES</a></span></code>
<div class="block">The total memory taken by log buffers, in bytes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_USE_NIO">LOG_USE_NIO</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">NIO is no longer used by JE and this parameter has no
effect.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_USE_ODSYNC">LOG_USE_ODSYNC</a></span></code>
<div class="block">If true (default is false) O_DSYNC is used to open JE log files.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_USE_WRITE_QUEUE">LOG_USE_WRITE_QUEUE</a></span></code>
<div class="block">If true (default is true) the Write Queue is used for file I/O
operations which are blocked by concurrent I/O operations.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_VERIFY_CHECKSUMS">LOG_VERIFY_CHECKSUMS</a></span></code>
<div class="block">If true, perform a checksum verification just before and after writing
to the log.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_WRITE_QUEUE_SIZE">LOG_WRITE_QUEUE_SIZE</a></span></code>
<div class="block">The size of the Write Queue.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_DISK">MAX_DISK</a></span></code>
<div class="block">An upper limit on the number of bytes used for data storage.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY">MAX_MEMORY</a></span></code>
<div class="block">Configures the JE main cache size in bytes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY_PERCENT">MAX_MEMORY_PERCENT</a></span></code>
<div class="block">Configures the JE main cache size as a percentage of the JVM maximum
memory.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_OFF_HEAP_MEMORY">MAX_OFF_HEAP_MEMORY</a></span></code>
<div class="block">Configures the number of bytes to be used as a secondary, off-heap cache.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#NODE_DUP_TREE_MAX_ENTRIES">NODE_DUP_TREE_MAX_ENTRIES</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">this property no longer has any effect; <a href="../../../com/sleepycat/je/DatabaseConfig.html#setNodeMaxEntries-int-"><code>DatabaseConfig.setNodeMaxEntries(int)</code></a> should be used instead.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#NODE_MAX_ENTRIES">NODE_MAX_ENTRIES</a></span></code>
<div class="block">The maximum number of entries in an internal btree node.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_CHECKSUM">OFFHEAP_CHECKSUM</a></span></code>
<div class="block">Can be used to add a checksum to each off-heap block when the block is
written, and validate the checksum when the block is read, for debugging
purposes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_CORE_THREADS">OFFHEAP_CORE_THREADS</a></span></code>
<div class="block">The minimum number of threads in the off-heap eviction thread pool.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_EVICT_BYTES">OFFHEAP_EVICT_BYTES</a></span></code>
<div class="block">The off-heap evictor will attempt to keep memory usage this number of
bytes below <a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_OFF_HEAP_MEMORY"><code>MAX_OFF_HEAP_MEMORY</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_KEEP_ALIVE">OFFHEAP_KEEP_ALIVE</a></span></code>
<div class="block">The duration that excess threads in the off-heap eviction thread pool
will stay idle; after this period, idle threads will terminate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_MAX_THREADS">OFFHEAP_MAX_THREADS</a></span></code>
<div class="block">The maximum number of threads in the off-heap eviction thread pool.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_N_LRU_LISTS">OFFHEAP_N_LRU_LISTS</a></span></code>
<div class="block">The number of LRU lists in the off-heap JE cache.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#SHARED_CACHE">SHARED_CACHE</a></span></code>
<div class="block">If true, the shared cache is used by this environment.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#STARTUP_DUMP_THRESHOLD">STARTUP_DUMP_THRESHOLD</a></span></code>
<div class="block">If environment startup exceeds this duration, startup statistics are
logged and can be found in the je.info file.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#STATS_COLLECT">STATS_COLLECT</a></span></code>
<div class="block">If true collect and log statistics.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#STATS_COLLECT_INTERVAL">STATS_COLLECT_INTERVAL</a></span></code>
<div class="block">The duration of the statistics capture interval.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#STATS_FILE_DIRECTORY">STATS_FILE_DIRECTORY</a></span></code>
<div class="block">The directory to save the statistics log file.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#STATS_FILE_ROW_COUNT">STATS_FILE_ROW_COUNT</a></span></code>
<div class="block">Log file maximum row count for Stat collection.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#STATS_MAX_FILES">STATS_MAX_FILES</a></span></code>
<div class="block">Maximum number of statistics log files to retain.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_CONSOLE">TRACE_CONSOLE</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">in favor of <code>CONSOLE_LOGGING_LEVEL</code> As of JE
4.0, use the standard java.util.logging configuration
methodologies. To enable console output, set
com.sleepycat.je.util.ConsoleHandler.level = &lt;LEVEL&gt; through
the java.util.logging configuration file, or through the
java.util.logging.LogManager. To set the handler level programmatically,
set "com.sleepycat.je.util.ConsoleHandler.level" in the
EnvironmentConfig object.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_DB">TRACE_DB</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JE 4.0, event tracing to the .jdb files has been
separated from the java.util.logging mechanism. This parameter has
no effect.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_FILE">TRACE_FILE</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">in favor of <code>FILE_LOGGING_LEVEL</code> As of JE 4.0,
use the standard java.util.logging configuration methodologies. To
enable logging output to the je.info files, set
com.sleepycat.je.util.FileHandler.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager. To set the handler level programmatically,
set "com.sleepycat.je.util.FileHandler.level" in the EnvironmentConfig
object.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_FILE_COUNT">TRACE_FILE_COUNT</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To set the FileHandler output file count,
set com.sleepycat.je.util.FileHandler.count = &lt;NUMBER&gt;
through the java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_FILE_LIMIT">TRACE_FILE_LIMIT</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To set the FileHandler output file size,
set com.sleepycat.je.util.FileHandler.limit = &lt;NUMBER&gt;
through the java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_LEVEL">TRACE_LEVEL</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. Set logging levels using class names
through the java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_LEVEL_CLEANER">TRACE_LEVEL_CLEANER</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To see cleaner logging, set
com.sleepycat.je.cleaner.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_LEVEL_EVICTOR">TRACE_LEVEL_EVICTOR</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To see evictor logging, set
com.sleepycat.je.evictor.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_LEVEL_LOCK_MANAGER">TRACE_LEVEL_LOCK_MANAGER</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To see locking logging, set
com.sleepycat.je.txn.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TRACE_LEVEL_RECOVERY">TRACE_LEVEL_RECOVERY</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To see recovery logging, set
com.sleepycat.je.recovery.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TREE_BIN_DELTA">TREE_BIN_DELTA</a></span></code>
<div class="block">If more than this percentage of entries are changed on a BIN, log a a
full version instead of a delta.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TREE_COMPACT_MAX_KEY_LENGTH">TREE_COMPACT_MAX_KEY_LENGTH</a></span></code>
<div class="block">Specifies the maximum unprefixed key length for use in the compact
in-memory key representation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TREE_MAX_DELTA">TREE_MAX_DELTA</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of JE 6.0. The <a href="../../../com/sleepycat/je/EnvironmentConfig.html#TREE_BIN_DELTA"><code>TREE_BIN_DELTA</code></a> param alone now
determines whether a delta is logged.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TREE_MAX_EMBEDDED_LN">TREE_MAX_EMBEDDED_LN</a></span></code>
<div class="block">The maximum size (in bytes) of a record's data portion that will cause
the record to be embedded in its parent LN.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TREE_MIN_MEMORY">TREE_MIN_MEMORY</a></span></code>
<div class="block">The minimum bytes allocated out of the memory cache to hold Btree data
including internal nodes and record keys and data.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_DEADLOCK_STACK_TRACE">TXN_DEADLOCK_STACK_TRACE</a></span></code>
<div class="block">Set this parameter to true to add stacktrace information to deadlock
(lock timeout) exception messages.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_DUMP_LOCKS">TXN_DUMP_LOCKS</a></span></code>
<div class="block">Dump the lock table when a lock timeout is encountered, for debugging
assistance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_DURABILITY">TXN_DURABILITY</a></span></code>
<div class="block">Configures the default durability associated with transactions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_SERIALIZABLE_ISOLATION">TXN_SERIALIZABLE_ISOLATION</a></span></code>
<div class="block">Configures all transactions for this environment to have Serializable
(Degree 3) isolation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_TIMEOUT">TXN_TIMEOUT</a></span></code>
<div class="block">Configures the transaction timeout.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE">VERIFY_BTREE</a></span></code>
<div class="block">Whether the background verifier should perform Btree verification,
as if the <a href="../../../com/sleepycat/je/util/DbVerify.html" title="class in com.sleepycat.je.util"><code>DbVerify</code></a> utility were run.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE_BATCH_DELAY">VERIFY_BTREE_BATCH_DELAY</a></span></code>
<div class="block">The delay between batches during <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE"><code>Btree
verification</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE_BATCH_SIZE">VERIFY_BTREE_BATCH_SIZE</a></span></code>
<div class="block">The number of records verified per batch during <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE"><code>Btree verification</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_DATA_RECORDS">VERIFY_DATA_RECORDS</a></span></code>
<div class="block">Whether to verify data records (leaf nodes, or LNs) during Btree
verification.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_LOG">VERIFY_LOG</a></span></code>
<div class="block">Whether the background verifier should verify checksums in the log,
as if the <a href="../../../com/sleepycat/je/util/DbVerifyLog.html" title="class in com.sleepycat.je.util"><code>DbVerifyLog</code></a> utility were run.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_LOG_READ_DELAY">VERIFY_LOG_READ_DELAY</a></span></code>
<div class="block">The delay between reads during <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_LOG"><code>log verification</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_SCHEDULE">VERIFY_SCHEDULE</a></span></code>
<div class="block">A crontab-format string indicating when to start the background
verifier.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_SECONDARIES">VERIFY_SECONDARIES</a></span></code>
<div class="block">Whether to verify secondary index references during Btree verification.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== 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">&nbsp;</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/EnvironmentConfig.html#EnvironmentConfig--">EnvironmentConfig</a></span>()</code>
<div class="block">Creates an EnvironmentConfig initialized with the system default
settings.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#EnvironmentConfig-java.util.Properties-">EnvironmentConfig</a></span>(java.util.Properties&nbsp;properties)</code>
<div class="block">Creates an EnvironmentConfig which includes the properties specified in
the properties parameter.</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">&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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#clone--">clone</a></span>()</code>
<div class="block">Returns a copy of this configuration object.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getAllowCreate--">getAllowCreate</a></span>()</code>
<div class="block">Returns a flag that specifies if we may create this environment.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.ClassLoader</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getClassLoader--">getClassLoader</a></span>()</code>
<div class="block">Returns the ClassLoader for loading user-supplied classes by name, or
null if no specified ClassLoader is configured.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/CustomStats.html" title="interface in com.sleepycat.je">CustomStats</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getCustomStats--">getCustomStats</a></span>()</code>
<div class="block">Gets the custom statstics object.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getLocking--">getLocking</a></span>()</code>
<div class="block">Returns true if the database environment is configured for locking.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getLockTimeout--">getLockTimeout</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 4.0, replaced by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#getLockTimeout-java.util.concurrent.TimeUnit-"><code>getLockTimeout(TimeUnit)</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getLockTimeout-java.util.concurrent.TimeUnit-">getLockTimeout</a></span>(java.util.concurrent.TimeUnit&nbsp;unit)</code>
<div class="block">Returns the lock timeout setting.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.util.logging.Handler</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getLoggingHandler--">getLoggingHandler</a></span>()</code>
<div class="block">Returns the custom java.util.logging.Handler specified by the
application.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getNodeName--">getNodeName</a></span>()</code>
<div class="block">Returns the user defined nodeName for the Environment.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getReadOnly--">getReadOnly</a></span>()</code>
<div class="block">Returns true if the database environment is configured to be read only.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/ProgressListener.html" title="interface in com.sleepycat.je">ProgressListener</a>&lt;<a href="../../../com/sleepycat/je/RecoveryProgress.html" title="enum in com.sleepycat.je">RecoveryProgress</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getRecoveryProgressListener--">getRecoveryProgressListener</a></span>()</code>
<div class="block">Return the ProgressListener to be used at this environment startup.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getSharedCache--">getSharedCache</a></span>()</code>
<div class="block">A convenience method for getting the
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#SHARED_CACHE"><code>SHARED_CACHE</code></a> parameter.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getTransactional--">getTransactional</a></span>()</code>
<div class="block">Returns true if the database environment is configured for transactions.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getTxnSerializableIsolation--">getTxnSerializableIsolation</a></span>()</code>
<div class="block">A convenience method for getting
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_SERIALIZABLE_ISOLATION"><code>TXN_SERIALIZABLE_ISOLATION</code></a>.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getTxnTimeout--">getTxnTimeout</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 4.0, replaced by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#getTxnTimeout-java.util.concurrent.TimeUnit-"><code>getTxnTimeout(TimeUnit)</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#getTxnTimeout-java.util.concurrent.TimeUnit-">getTxnTimeout</a></span>(java.util.concurrent.TimeUnit&nbsp;unit)</code>
<div class="block">A convenience method for getting <a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_TIMEOUT"><code>TXN_TIMEOUT</code></a>.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setAllowCreate-boolean-">setAllowCreate</a></span>(boolean&nbsp;allowCreate)</code>
<div class="block">If true, creates the database environment if it doesn't already exist.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setClassLoader-java.lang.ClassLoader-">setClassLoader</a></span>(java.lang.ClassLoader&nbsp;classLoader)</code>
<div class="block">Configure the environment to use a specified ClassLoader for loading
user-supplied classes by name.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setConfigParam-java.lang.String-java.lang.String-">setConfigParam</a></span>(java.lang.String&nbsp;paramName,
java.lang.String&nbsp;value)</code>
<div class="block">Set this configuration parameter.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setCustomStats-com.sleepycat.je.CustomStats-">setCustomStats</a></span>(<a href="../../../com/sleepycat/je/CustomStats.html" title="interface in com.sleepycat.je">CustomStats</a>&nbsp;customStats)</code>
<div class="block">Sets the custom statistics object.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLocking-boolean-">setLocking</a></span>(boolean&nbsp;locking)</code>
<div class="block">Convenience method for setting
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_IS_LOCKING"><code>ENV_IS_LOCKING</code></a>.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLockTimeout-long-">setLockTimeout</a></span>(long&nbsp;timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 4.0, replaced by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLockTimeout-long-java.util.concurrent.TimeUnit-"><code>setLockTimeout(long,
TimeUnit)</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLockTimeout-long-java.util.concurrent.TimeUnit-">setLockTimeout</a></span>(long&nbsp;timeout,
java.util.concurrent.TimeUnit&nbsp;unit)</code>
<div class="block">Convenience method for setting <a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_TIMEOUT"><code>LOCK_TIMEOUT</code></a>.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLoggingHandler-java.util.logging.Handler-">setLoggingHandler</a></span>(java.util.logging.Handler&nbsp;handler)</code>
<div class="block">Set a java.util.logging.Handler which will be used by all
java.util.logging.Loggers instantiated by this Environment.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setNodeName-java.lang.String-">setNodeName</a></span>(java.lang.String&nbsp;nodeName)</code>
<div class="block">Sets the user defined nodeName for the Environment.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setReadOnly-boolean-">setReadOnly</a></span>(boolean&nbsp;readOnly)</code>
<div class="block">Convenience method for setting <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_READ_ONLY"><code>ENV_READ_ONLY</code></a>.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setRecoveryProgressListener-com.sleepycat.je.ProgressListener-">setRecoveryProgressListener</a></span>(<a href="../../../com/sleepycat/je/ProgressListener.html" title="interface in com.sleepycat.je">ProgressListener</a>&lt;<a href="../../../com/sleepycat/je/RecoveryProgress.html" title="enum in com.sleepycat.je">RecoveryProgress</a>&gt;&nbsp;progressListener)</code>
<div class="block">Configure the environment to make periodic calls to a ProgressListener to
provide feedback on environment startup (recovery).</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setSharedCache-boolean-">setSharedCache</a></span>(boolean&nbsp;sharedCache)</code>
<div class="block">A convenience method for setting the
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#SHARED_CACHE"><code>SHARED_CACHE</code></a> parameter.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTransactional-boolean-">setTransactional</a></span>(boolean&nbsp;transactional)</code>
<div class="block">Convenience method for setting
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_IS_TRANSACTIONAL"><code>ENV_IS_TRANSACTIONAL</code></a>.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTxnSerializableIsolation-boolean-">setTxnSerializableIsolation</a></span>(boolean&nbsp;txnSerializableIsolation)</code>
<div class="block">A convenience method for setting
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_SERIALIZABLE_ISOLATION"><code>TXN_SERIALIZABLE_ISOLATION</code></a>.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTxnTimeout-long-">setTxnTimeout</a></span>(long&nbsp;timeout)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 4.0, replaced by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTxnTimeout-long-java.util.concurrent.TimeUnit-"><code>setTxnTimeout(long,
TimeUnit)</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTxnTimeout-long-java.util.concurrent.TimeUnit-">setTxnTimeout</a></span>(long&nbsp;timeout,
java.util.concurrent.TimeUnit&nbsp;unit)</code>
<div class="block">A convenience method for setting <a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_TIMEOUT"><code>TXN_TIMEOUT</code></a>.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/sleepycat/je/EnvironmentConfig.html#toString--">toString</a></span>()</code>
<div class="block">Display configuration values.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.com.sleepycat.je.EnvironmentMutableConfig">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.sleepycat.je.<a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html" title="class in com.sleepycat.je">EnvironmentMutableConfig</a></h3>
<code><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getCacheMode--">getCacheMode</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getCachePercent--">getCachePercent</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getCacheSize--">getCacheSize</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getConfigParam-java.lang.String-">getConfigParam</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getDurability--">getDurability</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getExceptionListener--">getExceptionListener</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getMaxDisk--">getMaxDisk</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getOffHeapCacheSize--">getOffHeapCacheSize</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getTxnNoSync--">getTxnNoSync</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getTxnWriteNoSync--">getTxnWriteNoSync</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setCacheMode-com.sleepycat.je.CacheMode-">setCacheMode</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setCachePercent-int-">setCachePercent</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setCacheSize-long-">setCacheSize</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setDurability-com.sleepycat.je.Durability-">setDurability</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setExceptionListener-com.sleepycat.je.ExceptionListener-">setExceptionListener</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setMaxDisk-long-">setMaxDisk</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setOffHeapCacheSize-long-">setOffHeapCacheSize</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setTxnNoSync-boolean-">setTxnNoSync</a>, <a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setTxnWriteNoSync-boolean-">setTxnWriteNoSync</a></code></li>
</ul>
<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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="MAX_MEMORY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_MEMORY</h4>
<pre>public static final&nbsp;java.lang.String MAX_MEMORY</pre>
<div class="block">Configures the JE main cache size in bytes.
<p>Either MAX_MEMORY or MAX_MEMORY_PERCENT may be used to configure the
cache size. When MAX_MEMORY is zero (its default value),
MAX_MEMORY_PERCENT determines the cache size. See
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY_PERCENT"><code>MAX_MEMORY_PERCENT</code></a> for more information.</p>
<p>When using MAX_MEMORY, take care to ensure that the overhead
of the JVM does not leave less free space in the heap than intended.
Some JVMs have more overhead than others, and some JVMs allocate their
overhead within the specified heap size (the -Xmx value). To be sure
that enough free space is available, use MAX_MEMORY_PERCENT rather than
MAX_MEMORY.</p>
<p>When using the Oracle NoSQL DB product</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.maxMemory"</td>
<td>Long</td>
<td>Yes</td>
<td>0</td>
<td>-none-</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setCacheSize-long-"><code>EnvironmentMutableConfig.setCacheSize(long)</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY_PERCENT"><code>MAX_MEMORY_PERCENT</code></a>,
<a href="EnvironmentStats.html#cacheSizing">Cache Statistics:
Sizing</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.MAX_MEMORY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_MEMORY_PERCENT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_MEMORY_PERCENT</h4>
<pre>public static final&nbsp;java.lang.String MAX_MEMORY_PERCENT</pre>
<div class="block">Configures the JE main cache size as a percentage of the JVM maximum
memory.
<p>The system will evict database objects when it comes within a
prescribed margin of the limit.</p>
<p>By default, JE sets the cache size to:</p>
<pre><blockquote>
(MAX_MEMORY_PERCENT * JVM maximum memory) / 100
</pre></blockquote>
<p>where JVM maximum memory is specified by the JVM -Xmx flag. Note that
the actual heap size may be somewhat less, depending on JVM overheads.
The value used in the calculation above is the actual heap size as
returned by <code>Runtime.maxMemory()</code>.</p>
<p>The above calculation applies when <a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY"><code>MAX_MEMORY</code></a> is zero, which
is its default value. Setting MAX_MEMORY to a non-zero value overrides
the percentage based calculation and sets the cache size explicitly.</p>
<p>The following details apply to setting the cache size to a percentage
of the JVM heap size byte size (this parameter) as well as to a byte
size (<a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY"><code>MAX_MEMORY</code></a></p>
<p>If <a href="../../../com/sleepycat/je/EnvironmentConfig.html#SHARED_CACHE"><code>SHARED_CACHE</code></a> is set to true, MAX_MEMORY and
MAX_MEMORY_PERCENT specify the total size of the shared cache, and
changing these parameters will change the size of the shared cache. New
environments that join the cache may alter the cache size if their
configuration uses a different cache size parameter.</p>
<p>The size of the cache is often directly proportional to operation
performance. See <a href="EnvironmentStats.java#cache">Cache
Statistics</a> for information on understanding and monitoring the
cache. It is strongly recommended that the cache is large enough to
hold all INs. See <a href="../../../com/sleepycat/je/util/DbCacheSize.html" title="class in com.sleepycat.je.util"><code>DbCacheSize</code></a> for information on sizing the
cache.</p>
<p>To take full advantage of JE cache memory, it is strongly recommended
that
<a href="http://download.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html#compressedOop">compressed oops</a>
(<code>-XX:+UseCompressedOops</code>) is specified when a 64-bit JVM is
used and the maximum heap size is less than 32 GB. As described in the
referenced documentation, compressed oops is sometimes the default JVM
mode even when it is not explicitly specified in the Java command.
However, if compressed oops is desired then it <em>must</em> be
explicitly specified in the Java command when running DbCacheSize or a
JE application. If it is not explicitly specified then JE will not
aware of it, even if it is the JVM default setting, and will not take it
into account when calculating cache memory sizes.</p>
<p>Note that log write buffers may be flushed to disk if the cache size
is changed after the environment has been opened.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.maxMemoryPercent"</td>
<td>Integer</td>
<td>Yes</td>
<td>60</td>
<td>1</td>
<td>90</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setCachePercent-int-"><code>EnvironmentMutableConfig.setCachePercent(int)</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY"><code>MAX_MEMORY</code></a>,
<a href="EnvironmentStats.html#cacheSizing">Cache Statistics:
Sizing</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.MAX_MEMORY_PERCENT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_OFF_HEAP_MEMORY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_OFF_HEAP_MEMORY</h4>
<pre>public static final&nbsp;java.lang.String MAX_OFF_HEAP_MEMORY</pre>
<div class="block">Configures the number of bytes to be used as a secondary, off-heap cache.
The off-heap cache is used to hold record data and Btree nodes when
these are evicted from the "main cache" because it overflows. Eviction
occurs according to an LRU algorithm and takes into account the user-
specified <a href="../../../com/sleepycat/je/CacheMode.html" title="enum in com.sleepycat.je"><code>CacheMode</code></a>. When the off-heap cache overflows, eviction
occurs there also according to the same algorithm.
<p>
The main cache is in the Java heap and consists primarily of the Java
objects making up the in-memory Btree data structure. Btree objects are
not serialized the main cache, so no object materialization is needed to
access the Btree there. Access to records in the main cache is therefore
very fast, but the main cache has drawbacks as well: 1) The larger the
main cache, the more likely it is to have Java GC performance problems.
2) When the Java heap exceeds 32GB, the "compressed OOPs" setting no
longer applies and less data will fit in the same amount of memory. For
these reasons, JE applications often configure a heap of 32GB or less,
and a main cache that is significantly less than 32GB, leaving any
additional machine memory for use by the file system cache.
<p>
The use of the file system cache has performance benefits, but
also has its own drawbacks: 1) There is a significant redundancy
between the main cache and the file system cache because all data and
Btree information that is logged (written) by JE appears in the file
system and may also appear in the main cache. 2) It is not possible
for <em>dirty</em> Btree information to be placed in the file system
cache without logging it, this logging may be otherwise unnecessary, and
the logging creates additional work for the JE cleaner; in other words,
the size of the main cache alone determines the maximum size of the
in-memory "dirty set".
<p>
The off-heap cache is stored outside the Java heap using a native
platform memory allocator. The current implementation relies on
internals that are specific to the Oracle and IBM JDKs; however, a
memory allocator interface that can be implemented for other situations
is being considered for a future release. Records and Btree objects are
serialized when they are placed in the off-heap cache, and they must be
materialized when they are moved back to the main cache in order to
access them. This serialization and materialization adds some CPU
overhead and thread contention, as compared to accessing data directly
in the main cache. The off-heap cache can contain dirty Btree
information, so it can be used to increase the maximum size of the
in-memory "dirty set".
<p>
NOTE: If an off-heap cache is configured but cannot be used because
that native allocator is not available in the JDK that is used, an
<code>IllegalStateException</code> will be thrown by the <a href="../../../com/sleepycat/je/Environment.html" title="class in com.sleepycat.je"><code>Environment</code></a>
or <a href="../../../com/sleepycat/je/rep/ReplicatedEnvironment.html" title="class in com.sleepycat.je.rep"><code>ReplicatedEnvironment</code></a> constructor. In
the current release, this means that the <code>sun.misc.Unsafe</code> class
must contain the <code>allocateMemory</code> method and related methods, as
defined in the Oracle JDK.
<p>
When configuring an off-heap cache you can think of the performance
trade-offs in two ways. First, if the off-heap cache is considered to be
a replacement for the file system cache, the serialization and
materialization overhead is not increased. In this case, the use of
the off-heap cache is clearly beneficial, and using the off-heap cache
"instead of" the file system cache is normally recommended. Second, the
off-heap cache can be used along with a main cache that is reduced in
size in order to compensate for Java GC problems. In this case, the
trade-off is between the additional serialization, materialization and
contention overheads of the off-heap cache, as compared to the Java GC
overhead.
<p>
When dividing up available memory for the JVM heap, the off-heap cache,
and for other uses, please be aware that the file system cache and the
off-heap cache are different in one important respect. The file system
cache automatically shrinks when memory is needed by the OS or other
processes, while the off-heap cache does not. Therefore, it is best to
be conservative about leaving memory free for other uses, and it is not
a good idea to size the off-heap cache such that all machine memory will
be allocated. If off-heap allocations or other allocations fail because
there is no available memory, the process is likely to die without any
exception being thrown. In one test on Linux, for example, the process
was killed abruptly by the OS and the only indication of the problem was
the following shown by <code>dmesg</code>.
<pre>
Out of memory: Kill process 28768 (java) score 974 or sacrifice child
Killed process 28768 (java)
total-vm:278255336kB, anon-rss:257274420kB, file-rss:0kB
</pre>
<p>
WARNING: Although this configuration property is mutable, it cannot be
changed from zero to non-zero, or non-zero to zero. In other words, the
size of the off-heap cache can be changed after initially configuring a
non-zero size, but the off-heap cache cannot be turned on and off
dynamically. An attempt to do so will cause an <code>IllegalArgumentException</code> to be thrown by the <a href="../../../com/sleepycat/je/Environment.html" title="class in com.sleepycat.je"><code>Environment</code></a> or
<a href="../../../com/sleepycat/je/rep/ReplicatedEnvironment.html" title="class in com.sleepycat.je.rep"><code>ReplicatedEnvironment</code></a> constructor.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.maxOffHeapMemory"</td>
<td>Long</td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setOffHeapCacheSize-long-"><code>EnvironmentMutableConfig.setOffHeapCacheSize(long)</code></a>,
<a href="EnvironmentStats.html#cacheSizing">Cache Statistics:
Sizing</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.MAX_OFF_HEAP_MEMORY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SHARED_CACHE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SHARED_CACHE</h4>
<pre>public static final&nbsp;java.lang.String SHARED_CACHE</pre>
<div class="block">If true, the shared cache is used by this environment.
<p>By default this parameter is false and this environment uses a
private cache. If this parameter is set to true, this environment will
use a cache that is shared with all other open environments in this
process that also set this parameter to true. There is a single shared
cache per process.</p>
<p>By using the shared cache, multiple open environments will make
better use of memory because the cache LRU algorithm is applied across
all information in all environments sharing the cache. For example, if
one environment is open but not recently used, then it will only use a
small portion of the cache, leaving the rest of the cache for
environments that have been recently used.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.sharedCache"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setSharedCache-boolean-"><code>setSharedCache(boolean)</code></a>,
<a href="EnvironmentStats.html#cacheSizing">Cache Statistics:
Sizing</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.SHARED_CACHE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_DISK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_DISK</h4>
<pre>public static final&nbsp;java.lang.String MAX_DISK</pre>
<div class="block">An upper limit on the number of bytes used for data storage. Works
with <a href="../../../com/sleepycat/je/EnvironmentConfig.html#FREE_DISK"><code>FREE_DISK</code></a> to define the storage limit. If the limit is
exceeded, write operations will be prohibited.
<p>
If set to zero (the default), no usage limit is enforced, meaning that
all space on the storage volume, minus <a href="../../../com/sleepycat/je/EnvironmentConfig.html#FREE_DISK"><code>FREE_DISK</code></a>, may be used.
If MAX_DISK is non-zero, FREE_DISK is subtracted from MAX_DISK to
determine the usage threshold for prohibiting write operations. If
multiple JE environments share the same storage volume, setting MAX_DISK
to a non-zero value is strongly recommended.
<p style="margin-left: 2em">Note: An exception to the rule above is
when MAX_DISK is less than or equal to 10GB and FREE_DISK is not
explicitly specified. See <a href="../../../com/sleepycat/je/EnvironmentConfig.html#FREE_DISK"><code>FREE_DISK</code></a> more information.</p>
Both the FREE_DISK and MAX_DISK thresholds (if configured) are checked
during a write operation. If either threshold is crossed, the behavior
of the JE environment is as follows:
<ul>
<li>
Application write operations will throw <a href="../../../com/sleepycat/je/DiskLimitException.html" title="class in com.sleepycat.je"><code>DiskLimitException</code></a>.
DiskLimitException extends <a href="../../../com/sleepycat/je/OperationFailureException.html" title="class in com.sleepycat.je"><code>OperationFailureException</code></a> and
will invalidate the transaction, but will not invalidate the
environment. Read operations may continue even when write operations
are prohibited.
</li>
<li>
When using NoSQL DB, the above item applies to client CRUD
operations as well as operations performed on internal metadata.
When a disk limit is violated, NoSQL DB will throw exceptions for
client write operations and for operations that update internal
metadata. Related exceptions may be logged for other internal write
operations. Such exceptions will be derived from the JE
DiskLimitException.
</li>
<li>
<a href="../../../com/sleepycat/je/Environment.html#checkpoint-com.sleepycat.je.CheckpointConfig-"><code>Environment.checkpoint(com.sleepycat.je.CheckpointConfig)</code></a>, <a href="../../../com/sleepycat/je/Environment.html#sync--"><code>Environment.sync()</code></a> and
<a href="../../../com/sleepycat/je/Database.html#sync--"><code>Database.sync()</code></a> will throw DiskLimitException.
</li>
<li>
<a href="../../../com/sleepycat/je/Environment.html#close--"><code>Environment.close()</code></a> may throw DiskLimitException when a final
checkpoint is performed. However, the environment will be properly
closed in other respects.
</li>
<li>
The JE evictor will not log dirty nodes when the cache overflows
and therefore dirty nodes cannot be evicted from cache. So
although read operations are allowed, cache thrashing may occur if
all INs do not fit in cache as <a href="../../../com/sleepycat/je/util/DbCacheSize.html" title="class in com.sleepycat.je.util"><code>recommended</code></a>.
</li>
<li>
In an HA environment a disk limit may be violated on a replica node
but not the master node. In this case, a DiskLimitException will not
be thrown by a write operation on the master node. Instead,
<a href="../../../com/sleepycat/je/rep/InsufficientAcksException.html" title="class in com.sleepycat.je.rep"><code>InsufficientAcksException</code></a> or
<a href="../../../com/sleepycat/je/rep/InsufficientReplicasException.html" title="class in com.sleepycat.je.rep"><code>InsufficientReplicasException</code></a> will be
thrown if the <a href="../../../com/sleepycat/je/Durability.html#getReplicaAck--"><code>ack requirements</code></a>
are not met.
</li>
</ul>
<p>
JE uses a log structured storage system where data files often become
gradually obsolete over time (see <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_MIN_UTILIZATION"><code>CLEANER_MIN_UTILIZATION</code></a>). The
JE cleaner is responsible for reclaiming obsolete space by cleaning and
deleting data files. In a standalone (non-HA) environment, data files
are normally deleted quickly after being cleaned, but may be reserved
and protected temporarily by a <a href="../../../com/sleepycat/je/util/DbBackup.html" title="class in com.sleepycat.je.util"><code>DbBackup</code></a> or
<a href="../../../com/sleepycat/je/DiskOrderedCursor.html" title="class in com.sleepycat.je"><code>DiskOrderedCursor</code></a>. These reserved files will be deleted as soon
as they are no longer protected.
<p>
In an HA environment, JE will retain as many reserved files as possible
to support replication to nodes that are out of contact. All cleaned
files are reserved (not deleted) until approaching a disk limit, at
which time they are deleted, as long as they are not protected.
Reserved files are protected when they are needed for
replication to active nodes or for feeding an active network restore.
<p>
For more information on reserved and protected data files, see
<a href="../../../com/sleepycat/je/EnvironmentStats.html#getActiveLogSize--"><code>EnvironmentStats.getActiveLogSize()</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentStats.html#getReservedLogSize--"><code>EnvironmentStats.getReservedLogSize()</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentStats.html#getProtectedLogSize--"><code>EnvironmentStats.getProtectedLogSize()</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentStats.html#getProtectedLogSizeMap--"><code>EnvironmentStats.getProtectedLogSizeMap()</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentStats.html#getAvailableLogSize--"><code>EnvironmentStats.getAvailableLogSize()</code></a> and
<a href="../../../com/sleepycat/je/EnvironmentStats.html#getTotalLogSize--"><code>EnvironmentStats.getTotalLogSize()</code></a>.
<p>
When multiple JE environments share the same storage volume, the
FREE_DISK amount will be maintained for each environment. The following
scenario illustrates use of a single shared volume with capacity 300GB:
<ul>
<li>
JE-1 and JE-2 each have MAX_DISK=100GB and FREE_DISK=5GB,
</li>
<li>
100GB is used for fixed miscellaneous storage.
</li>
</ul>
<p>
Each JE environment will use no more than 95GB each, so at least 10GB
will remain free overall. In other words, if both JE environments reach
their threshold and write operations are prohibited, each JE environment
will have 5GB of free space for recovery (10GB total).
<p>
On the other hand, when an external service is also consuming disk
space and its usage of disk space is variable over time, the situation
is more complex and JE cannot always guarantee that FREE_DISK is
honored. The following scenario includes multiple JE environments as
well an external service, all sharing a 300GB volume.
<ul>
<li>
JE-1 and JE-2 each have MAX_DISK=100GB and FREE_DISK=5GB,
</li>
<li>
an external service is expected to use up to 50GB, and
</li>
<li>
50GB is used for fixed miscellaneous storage.
</li>
</ul>
<p>
Assuming that the external service stays within its 50GB limit then, as
the previous example, each JE environment will normally use no more than
95GB each, and at least 10GB will remain free overall. However, if the
external service exceeds its threshold, JE will make a best effort to
prohibit write operations in order to honor the FREE_DISK limit, but
this is not always possible, as illustrated by the following sequence
of events:
<ul>
<li>
If the external service uses all its allocated space, 50GB, and JE
environments are each using 75GB, then there will be 50GB free
overall (25GB for each JE environment). Write operations are allowed
in both JE environments.
</li>
<li>
If the external service then exceeds its limit by 25GB and uses
75GB, there will only 25GB free overall. But each JE environment is
still under its 90GB limit and there is still more than 5GB free
overall, so write operations are still allowed.
</li>
<li>
If each JE environment uses an additional 10GB of space, there will
only be 5GB free overall. Each JE environment is using only 85GB,
which is under its 95GB limit. But the 5GB FREE_DISK limit for the
volume overall has been reached and therefore JE write operations
will be prohibited.
</li>
</ul>
Leaving only 5GB of free space in the prior scenario is not ideal, but
it is at least enough for one JE environment at a time to be recovered.
The reality is that when an external entity exceeds its expected disk
usage, JE cannot always compensate. For example, if the external service
continues to use more space in the scenario above, the volume will
eventually be filled completely.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.maxDisk"</td>
<td>Long</td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#FREE_DISK"><code>FREE_DISK</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setMaxDisk-long-"><code>EnvironmentMutableConfig.setMaxDisk(long)</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#getMaxDisk--"><code>EnvironmentMutableConfig.getMaxDisk()</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.MAX_DISK">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FREE_DISK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FREE_DISK</h4>
<pre>public static final&nbsp;java.lang.String FREE_DISK</pre>
<div class="block">A lower limit on the number of bytes of free space to maintain on a
volume and per JE Environment. Works with <a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_DISK"><code>MAX_DISK</code></a> to define
the storage limit. If the limit is exceeded, write operations will be
prohibited.
<p>
The default FREE_DISK value is 5GB. This value is designed to be large
enough to allow manual recovery after exceeding a disk threshold.
<p>
If FREE_DISK is set to zero, no free space limit is enforced. This is
not recommended, since manual recovery may be very difficult or
impossible when the volume is completely full.
<p>
If non-zero, this parameter is used in two ways.
<ul>
<li>
FREE_DISK determines the minimum of free space left on the storage
volume. If less than this amount is free, write operations are
prohibited.
</li>
<li>
If MAX_DISK is configured, FREE_DISK is subtracted from MAX_DISK to
determine the usage threshold for prohibiting write operations. See
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_DISK"><code>MAX_DISK</code></a> for more information.
<p style="margin-left: 2em">Note that this subtraction could make
testing inconvenient when a small value is specified for MAX_DISK
and FREE_DISK is not also specified. For example, if MAX_DISK is
1GB and FREE_DISK is 5G (its default value), then no writing
would be allowed (MAX_DISK minus FREE_DISK is negative 4G). To
address this, the subtraction is performed only if one of two
conditions is met:
<ol>
<li>FREE_DISK is explicitly specified, or</li>
<li>MAX_DISK is greater than 10GB.</li>
</ol></p>
</li>
</ul>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.freeDisk"</td>
<td>Long</td>
<td>Yes</td>
<td>5,368,709,120 (5GB)</td>
<td>-none-</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_DISK"><code>MAX_DISK</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.FREE_DISK">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_RECOVERY_FORCE_CHECKPOINT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_RECOVERY_FORCE_CHECKPOINT</h4>
<pre>public static final&nbsp;java.lang.String ENV_RECOVERY_FORCE_CHECKPOINT</pre>
<div class="block">If true, a checkpoint is forced following recovery, even if the
log ends with a checkpoint.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.recoveryForceCheckpoint"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_RECOVERY_FORCE_CHECKPOINT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_RECOVERY_FORCE_NEW_FILE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_RECOVERY_FORCE_NEW_FILE</h4>
<pre>public static final&nbsp;java.lang.String ENV_RECOVERY_FORCE_NEW_FILE</pre>
<div class="block">Used after performing a restore from backup to force creation of a new
log file prior to recovery.
<p>
As of JE 6.3, the use of this parameter is unnecessary except in special
cases. See the "Restoring from a backup" section in the DbBackup javadoc
for more information.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.recoveryForceNewFile"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="util/DbBackup.html#restore">Restoring from a backup</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_RECOVERY_FORCE_NEW_FILE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="HALT_ON_COMMIT_AFTER_CHECKSUMEXCEPTION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HALT_ON_COMMIT_AFTER_CHECKSUMEXCEPTION</h4>
<pre>public static final&nbsp;java.lang.String HALT_ON_COMMIT_AFTER_CHECKSUMEXCEPTION</pre>
<div class="block">By default, if a checksum exception is found at the end of the log
during Environment startup, JE will assume the checksum is due to
previously interrupted I/O and will quietly truncate the log and
restart. If this property is set to true, when a ChecksumException
occurs in the last log file during recovery, instead of truncating the
log file, and automatically restarting, attempt to continue reading past
the corrupted record with the checksum error to see if there are commit
records following the corruption. If there are, throw an
EnvironmentFailureException to indicate the presence of committed
transactions. The user may then need to run DbTruncateLog to truncate
the log for further recovery after doing manual analysis of the log.
Setting this property is suitable when the application wants to guard
against unusual cases.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.haltOnCommitAfterChecksumException"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.HALT_ON_COMMIT_AFTER_CHECKSUMEXCEPTION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_RUN_IN_COMPRESSOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_RUN_IN_COMPRESSOR</h4>
<pre>public static final&nbsp;java.lang.String ENV_RUN_IN_COMPRESSOR</pre>
<div class="block">If true, starts up the INCompressor thread.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.runINCompressor"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_RUN_IN_COMPRESSOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_RUN_CHECKPOINTER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_RUN_CHECKPOINTER</h4>
<pre>public static final&nbsp;java.lang.String ENV_RUN_CHECKPOINTER</pre>
<div class="block">If true, starts up the checkpointer thread.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.runCheckpointer"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_RUN_CHECKPOINTER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_RUN_CLEANER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_RUN_CLEANER</h4>
<pre>public static final&nbsp;java.lang.String ENV_RUN_CLEANER</pre>
<div class="block">If true, starts up the cleaner thread.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.runCleaner"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_RUN_CLEANER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_RUN_EVICTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_RUN_EVICTOR</h4>
<pre>public static final&nbsp;java.lang.String ENV_RUN_EVICTOR</pre>
<div class="block">If true, eviction is done by a pool of evictor threads, as well as being
done inline by application threads. If false, the evictor pool is not
used, regardless of the values of <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_CORE_THREADS"><code>EVICTOR_CORE_THREADS</code></a> and
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_MAX_THREADS"><code>EVICTOR_MAX_THREADS</code></a>.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.runEvictor"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_RUN_EVICTOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_RUN_OFFHEAP_EVICTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_RUN_OFFHEAP_EVICTOR</h4>
<pre>public static final&nbsp;java.lang.String ENV_RUN_OFFHEAP_EVICTOR</pre>
<div class="block">If true, off-heap eviction is done by a pool of evictor threads, as well
as being done inline by application threads. If false, the evictor pool
is not used, regardless of the values of <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_CORE_THREADS"><code>OFFHEAP_CORE_THREADS</code></a>
and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_MAX_THREADS"><code>OFFHEAP_MAX_THREADS</code></a>.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.runOffHeapEvictor"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_RUN_OFFHEAP_EVICTOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_BACKGROUND_READ_LIMIT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_BACKGROUND_READ_LIMIT</h4>
<pre>public static final&nbsp;java.lang.String ENV_BACKGROUND_READ_LIMIT</pre>
<div class="block">The maximum number of read operations performed by JE background
activities (e.g., cleaning) before sleeping to ensure that application
threads can perform I/O. If zero (the default) then no limitation on
I/O is enforced.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.backgroundReadLimit"</td>
<td>Integer</td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_SLEEP_INTERVAL"><code>ENV_BACKGROUND_SLEEP_INTERVAL</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_BACKGROUND_READ_LIMIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_BACKGROUND_WRITE_LIMIT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_BACKGROUND_WRITE_LIMIT</h4>
<pre>public static final&nbsp;java.lang.String ENV_BACKGROUND_WRITE_LIMIT</pre>
<div class="block">The maximum number of write operations performed by JE background
activities (e.g., checkpointing and eviction) before sleeping to ensure
that application threads can perform I/O. If zero (the default) then no
limitation on I/O is enforced.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.backgroundWriteLimit"</td>
<td>Integer</td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_SLEEP_INTERVAL"><code>ENV_BACKGROUND_SLEEP_INTERVAL</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_BACKGROUND_WRITE_LIMIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_BACKGROUND_SLEEP_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_BACKGROUND_SLEEP_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String ENV_BACKGROUND_SLEEP_INTERVAL</pre>
<div class="block">The duration that JE background activities will sleep when the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_WRITE_LIMIT"><code>ENV_BACKGROUND_WRITE_LIMIT</code></a> or <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_READ_LIMIT"><code>ENV_BACKGROUND_READ_LIMIT</code></a> is
reached. If <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_WRITE_LIMIT"><code>ENV_BACKGROUND_WRITE_LIMIT</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_BACKGROUND_READ_LIMIT"><code>ENV_BACKGROUND_READ_LIMIT</code></a> are zero, this setting is not used.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.backgroundSleepInterval"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>1 ms</td>
<td>1 ms</td>
<td>24 d</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_BACKGROUND_SLEEP_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_CHECK_LEAKS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_CHECK_LEAKS</h4>
<pre>public static final&nbsp;java.lang.String ENV_CHECK_LEAKS</pre>
<div class="block">Debugging support: check leaked locks and txns at env close.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.checkLeaks"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_CHECK_LEAKS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_FORCED_YIELD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_FORCED_YIELD</h4>
<pre>public static final&nbsp;java.lang.String ENV_FORCED_YIELD</pre>
<div class="block">Debugging support: call Thread.yield() at strategic points.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.forcedYield"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_FORCED_YIELD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_IS_TRANSACTIONAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_IS_TRANSACTIONAL</h4>
<pre>public static final&nbsp;java.lang.String ENV_IS_TRANSACTIONAL</pre>
<div class="block">Configures the use of transactions.
<p>This should be set to true when transactional guarantees such as
atomicity of multiple operations and durability are important.</p>
<p>If true, create an environment that is capable of performing
transactions. If true is not passed, transactions may not be used. For
licensing purposes, the use of this method distinguishes the use of the
Transactional product. Note that if transactions are not used,
specifying true does not create additional overhead in the
environment.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.isTransactional"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTransactional-boolean-"><code>setTransactional(boolean)</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_IS_TRANSACTIONAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_IS_LOCKING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_IS_LOCKING</h4>
<pre>public static final&nbsp;java.lang.String ENV_IS_LOCKING</pre>
<div class="block">Configures the database environment for no locking.
<p>If true, create the environment with record locking. This property
should be set to false only in special circumstances when it is safe to
run without record locking.</p>
<p>This configuration option should be used when locking guarantees such
as consistency and isolation are not important. If locking mode is
disabled (it is enabled by default), the cleaner is automatically
disabled. The user is responsible for invoking the cleaner and ensuring
that there are no concurrent operations while the cleaner is
running.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.isLocking"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLocking-boolean-"><code>setLocking(boolean)</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_IS_LOCKING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_READ_ONLY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_READ_ONLY</h4>
<pre>public static final&nbsp;java.lang.String ENV_READ_ONLY</pre>
<div class="block">Configures the database environment to be read-only, and any attempt to
modify a database will fail.
<p>A read-only environment has several limitations and is recommended
only in special circumstances. Note that there is no performance
advantage to opening an environment read-only.</p>
<p>The primary reason for opening an environment read-only is to open a
single environment in multiple JVM processes. Only one JVM process at a
time may open the environment read-write. See <a href="../../../com/sleepycat/je/EnvironmentLockedException.html" title="class in com.sleepycat.je"><code>EnvironmentLockedException</code></a>.</p>
<p>When the environment is open read-only, the following limitations
apply.</p>
<ul>
<li>In the read-only environment no writes may be performed, as
expected, and databases must be opened read-only using <a href="../../../com/sleepycat/je/DatabaseConfig.html#setReadOnly-boolean-"><code>DatabaseConfig.setReadOnly(boolean)</code></a>.</li>
<li>The read-only environment receives a snapshot of the data that is
effectively frozen at the time the environment is opened. If the
application has the environment open read-write in another JVM process
and modifies the environment's databases in any way, the read-only
version of the data will not be updated until the read-only JVM process
closes and reopens the environment (and by extension all databases in
that environment).</li>
<li>If the read-only environment is opened while the environment is in
use by another JVM process in read-write mode, opening the environment
read-only (recovery) is likely to take longer than it does after a clean
shutdown. This is due to the fact that the read-write JVM process is
writing and checkpoints are occurring that are not coordinated with the
read-only JVM process. The effect is similar to opening an environment
after a crash.</li>
<li>In a read-only environment, the JE cache will contain information
that cannot be evicted because it was reconstructed by recovery and
cannot be flushed to disk. This means that the read-only environment
may not be suitable for operations that use large amounts of memory, and
poor performance may result if this is attempted.</li>
<li>In a read-write environment, the log cleaner will be prohibited from
deleting log files for as long as the environment is open read-only in
another JVM process. This may cause disk usage to rise, and for this
reason it is not recommended that an environment is kept open read-only
in this manner for long periods.</li>
</ul>
<p>For these reasons, it is recommended that a read-only environment be
used only for short periods and for operations that are not performance
critical or memory intensive. With few exceptions, all application
functions that require access to a JE environment should be built into a
single application so that they can be performed in the JVM process
where the environment is open read-write.</p>
<p>In most applications, opening an environment read-only can and should
be avoided.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.isReadOnly"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setReadOnly-boolean-"><code>setReadOnly(boolean)</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_READ_ONLY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_FAIR_LATCHES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_FAIR_LATCHES</h4>
<pre>public static final&nbsp;java.lang.String ENV_FAIR_LATCHES</pre>
<div class="block">If true, use latches instead of synchronized blocks to implement the
lock table and log write mutexes. Latches require that threads queue to
obtain the mutex in question and therefore guarantee that there will be
no mutex starvation, but do incur a performance penalty. Latches should
not be necessary in most cases, so synchronized blocks are the default.
An application that puts heavy load on JE with threads with different
thread priorities might find it useful to use latches. In a Java 5 JVM,
where java.util.concurrent.locks.ReentrantLock is used for the latch
implementation, this parameter will determine whether they are 'fair' or
not. This parameter is 'static' across all environments.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.fairLatches"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_FAIR_LATCHES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_LATCH_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_LATCH_TIMEOUT</h4>
<pre>public static final&nbsp;java.lang.String ENV_LATCH_TIMEOUT</pre>
<div class="block">The timeout for detecting internal latch timeouts, so that deadlocks can
be detected. Latches are held internally for very short durations. If
due to unforeseen problems a deadlock occurs, a timeout will occur after
the duration specified by this parameter. When a latch timeout occurs:
<ul>
<li>The Environment is invalidated and must be closed.</li>
<li>An <a href="../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je"><code>EnvironmentFailureException</code></a> is thrown.</li>
<li>A full thread dump is logged at level SEVERE.</li>
</ul>
If this happens, thread dump in je.info file should be preserved so it
can be used to analyze the problem.
<p>
Most applications should not change this parameter. The default value, 5
minutes, should be much longer than a latch is ever held.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.latchTimeout"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>5 min</td>
<td>1 ms</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>6.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_LATCH_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_TTL_CLOCK_TOLERANCE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_TTL_CLOCK_TOLERANCE</h4>
<pre>public static final&nbsp;java.lang.String ENV_TTL_CLOCK_TOLERANCE</pre>
<div class="block">The interval added to the system clock time for determining that a
record may have expired. Used when an internal integrity error may be
present, but may also be due to a record that expired and the system
clock was moved back.
<p>
For example, say a record expires and then the clock is moved back by
one hour to correct a daylight savings time error. Because the LN and
BIN slot for an expired record are purged separately (see
<a href="WriteOptions#ttl">Time-To_live</a>), in this case the LN was
purged but the BIN slot was not purged. When accessing the record's key
via the BIN slot, it will appear that it is not expired. But then when
accessing the the data, the LN will not be accessible. Normally this
would be considered a fatal integrity error, but since the record will
expire within the 2 hour limit, it is simply treated as an expired
record.
<p>
Most applications should not change this parameter. The default value,
two hours, is enough to account for minor clock adjustments or
accidentally setting the clock one hour off.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.ttlClockTolerance"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>2 h</td>
<td>1 ms</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_TTL_CLOCK_TOLERANCE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_EXPIRATION_ENABLED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_EXPIRATION_ENABLED</h4>
<pre>public static final&nbsp;java.lang.String ENV_EXPIRATION_ENABLED</pre>
<div class="block">If true (the default), expired data is filtered from queries and purged
by the cleaner. This might be set to false to recover data after an
extended down time.
<p>
WARNING: Disabling expiration is intended for special-purpose access
for data recovery only. When this parameter is set to false, records
that have expired may or may not have been purged, so they may or may
not be accessible. In addition, it is possible for the key and data of
a record to expire independently, so the key may be accessible (if the
data is not requested by the read operation), while the record will
appear to be deleted when the data is requested. The same thing is
true of primary and secondary records, which are also purged
independently. A record may be accessible by primary key but not
secondary key, and vice-versa.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.expirationEnabled"</td>
<td>Boolean</td>
<td>yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_EXPIRATION_ENABLED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_DB_EVICTION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_DB_EVICTION</h4>
<pre>public static final&nbsp;java.lang.String ENV_DB_EVICTION</pre>
<div class="block">If true, enable eviction of metadata for closed databases. There is
no known benefit to setting this parameter to false.
<p>This param is unlikely to be needed for tuning, but is sometimes
useful for debugging and testing.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.dbEviction"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheDebugging">Cache Statistics:
Debugging</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_DB_EVICTION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_DUP_CONVERT_PRELOAD_ALL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_DUP_CONVERT_PRELOAD_ALL</h4>
<pre>public static final&nbsp;java.lang.String ENV_DUP_CONVERT_PRELOAD_ALL</pre>
<div class="block">If true (the default) preload all duplicates databases at once when
upgrading from JE 4.1 and earlier. If false, preload each duplicates
database individually instead. Preloading all databases at once gives a
performance advantage if the JE cache is roughly large enough to contain
the internal nodes for all duplicates databases. Preloading each
database individually gives a performance advantage if the JE cache is
roughly large enough to contain the internal nodes for a single
duplicates database.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.dupConvertPreloadAll"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_DUP_CONVERT_PRELOAD_ALL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ADLER32_CHUNK_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ADLER32_CHUNK_SIZE</h4>
<pre>public static final&nbsp;java.lang.String ADLER32_CHUNK_SIZE</pre>
<div class="block">By default, JE passes an entire log record to the Adler32 class for
checksumming. This can cause problems with the GC in some cases if the
records are large and there is concurrency. Setting this parameter will
cause JE to pass chunks of the log record to the checksumming class so
that the GC does not block. 0 means do not chunk.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.adler32.chunkSize"</td>
<td>Integer</td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>1048576 (1M)</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ADLER32_CHUNK_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_TOTAL_BUFFER_BYTES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_TOTAL_BUFFER_BYTES</h4>
<pre>public static final&nbsp;java.lang.String LOG_TOTAL_BUFFER_BYTES</pre>
<div class="block">The total memory taken by log buffers, in bytes. If 0, use 7% of
je.maxMemory. If 0 and je.sharedCache=true, use 7% divided by N where N
is the number of environments sharing the global cache.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.totalBufferBytes"</td>
<td>Long</td>
<td>No</td>
<td>0</td>
<td>6144L</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_TOTAL_BUFFER_BYTES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_NUM_BUFFERS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_NUM_BUFFERS</h4>
<pre>public static final&nbsp;java.lang.String LOG_NUM_BUFFERS</pre>
<div class="block">The number of JE log buffers.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.numBuffers"</td>
<td>Integer</td>
<td>No</td>
<td>3</td>
<td>2</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_NUM_BUFFERS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_BUFFER_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_BUFFER_SIZE</h4>
<pre>public static final&nbsp;java.lang.String LOG_BUFFER_SIZE</pre>
<div class="block">The maximum starting size of a JE log buffer. JE silently restricts
this value to be no more than the configured maximum log file size
(je.log.fileMax).
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.bufferSize"</td>
<td>Integer</td>
<td>No</td>
<td>1048576 (1M)</td>
<td>1024 (1K)</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_BUFFER_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_FAULT_READ_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_FAULT_READ_SIZE</h4>
<pre>public static final&nbsp;java.lang.String LOG_FAULT_READ_SIZE</pre>
<div class="block">The buffer size for faulting in objects from disk, in bytes.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.faultReadSize"</td>
<td>Integer</td>
<td>No</td>
<td>2048 (2K)</td>
<td>32</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_FAULT_READ_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_ITERATOR_READ_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_ITERATOR_READ_SIZE</h4>
<pre>public static final&nbsp;java.lang.String LOG_ITERATOR_READ_SIZE</pre>
<div class="block">The read buffer size for log iterators, which are used when scanning the
log during activities like log cleaning and environment open, in bytes.
This may grow as the system encounters larger log entries.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.iteratorReadSize"</td>
<td>Integer</td>
<td>No</td>
<td>8192 (8K)</td>
<td>128</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_ITERATOR_READ_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_ITERATOR_MAX_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_ITERATOR_MAX_SIZE</h4>
<pre>public static final&nbsp;java.lang.String LOG_ITERATOR_MAX_SIZE</pre>
<div class="block">The maximum read buffer size for log iterators, which are used when
scanning the log during activities like log cleaning and environment
open, in bytes.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.iteratorMaxSize"</td>
<td>Integer</td>
<td>No</td>
<td>16777216 (16M)</td>
<td>128</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_ITERATOR_MAX_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_FILE_MAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_FILE_MAX</h4>
<pre>public static final&nbsp;java.lang.String LOG_FILE_MAX</pre>
<div class="block">The maximum size of each individual JE log file, in bytes.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.fileMax"</td>
<td>Long</td>
<td>No</td>
<td>10000000 (10M)</td>
<td>1000000 (1M)</td>
<td>1073741824 (1G)</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_FILE_MAX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_N_DATA_DIRECTORIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_N_DATA_DIRECTORIES</h4>
<pre>public static final&nbsp;java.lang.String LOG_N_DATA_DIRECTORIES</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 7.3. This feature is not known to provide benefits
beyond that of a simple RAID configuration, and will be removed in the
next release, which is slated for mid-April, 2017.</span></div>
<div class="block">The JE environment can be spread across multiple subdirectories.
Environment subdirectories may be used to spread an environment's .jdb
files over multiple directories, and therefore over multiple disks or
file systems. Environment subdirectories reside in the environment home
directory and are named data001/ through dataNNN/, consecutively, where
NNN is the value of je.log.nDataDirectories. A typical configuration
would be to have each of the dataNNN/ names be symbolic links to actual
directories which each reside on separate file systems or disks.
<p>
If 0, all log files (*.jdb) will reside in the environment
home directory passed to the Environment constructor. A non-zero value
indicates the number of environment subdirectories to use for holding the
environment log files.
<p>
If data subdirectories are used (i.e. je.log.nDataDirectories > 0), this
parameter must be set when the environment is initially created.
Like the environment home directory, each and every one of the dataNNN/
subdirectories must also be present and writable. This parameter must
be set to the same value for all subsequent openings of the environment
or an exception will be thrown.
<p>
If the set of existing dataNNN/ subdirectories is not equivalent to the
set { 1 ... je.log.nDataDirectories } when the environment is opened, an
EnvironmentFailureException will be thrown, and the Environment will
fail to be opened.
<p>
This parameter should be set using the je.properties file rather than
the EnvironmentConfig. If not, JE command line utilities that open the
Environment will throw an exception because they will not know of the
non-zero value of this parameter.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td><td>JVM</td></tr>
<tr>
<td>"je.log.nDataDirectories"</td>
<td>Integer</td>
<td>No</td>
<td>0</td>
<td>0</td>
<td>256</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_N_DATA_DIRECTORIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_CHECKSUM_READ">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_CHECKSUM_READ</h4>
<pre>public static final&nbsp;java.lang.String LOG_CHECKSUM_READ</pre>
<div class="block">If true, perform a checksum check when reading entries from log.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.log.checksumRead"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_CHECKSUM_READ">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_VERIFY_CHECKSUMS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_VERIFY_CHECKSUMS</h4>
<pre>public static final&nbsp;java.lang.String LOG_VERIFY_CHECKSUMS</pre>
<div class="block">If true, perform a checksum verification just before and after writing
to the log. This is primarily used for debugging.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.log.verifyChecksums"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_VERIFY_CHECKSUMS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_MEM_ONLY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_MEM_ONLY</h4>
<pre>public static final&nbsp;java.lang.String LOG_MEM_ONLY</pre>
<div class="block">If true, operates in an in-memory test mode without flushing the log to
disk. An environment directory must be specified, but it need not exist
and no files are written. The system operates until it runs out of
memory, at which time an OutOfMemoryError is thrown. Because the entire
log is kept in memory, this mode is normally useful only for testing.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.log.memOnly"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_MEM_ONLY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_FILE_CACHE_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_FILE_CACHE_SIZE</h4>
<pre>public static final&nbsp;java.lang.String LOG_FILE_CACHE_SIZE</pre>
<div class="block">The size of the file handle cache.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.fileCacheSize"</td>
<td>Integer</td>
<td>No</td>
<td>100</td>
<td>3</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_FILE_CACHE_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_DETECT_FILE_DELETE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_DETECT_FILE_DELETE</h4>
<pre>public static final&nbsp;java.lang.String LOG_DETECT_FILE_DELETE</pre>
<div class="block">If true, periodically detect unexpected file deletions. Normally all
file deletions should be performed as a result of JE log cleaning.
If an external file deletion is detected, JE assumes this was
accidental. This will cause the environment to be invalidated and
all methods will throw <a href="../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je"><code>EnvironmentFailureException</code></a>.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.log.detectFileDelete"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_DETECT_FILE_DELETE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_DETECT_FILE_DELETE_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_DETECT_FILE_DELETE_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String LOG_DETECT_FILE_DELETE_INTERVAL</pre>
<div class="block">The interval used to check for unexpected file deletions.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.detectFileDeleteInterval"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>1000 ms</td>
<td>1 ms</td>
<td>none</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_DETECT_FILE_DELETE_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_FSYNC_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_FSYNC_TIMEOUT</h4>
<pre>public static final&nbsp;java.lang.String LOG_FSYNC_TIMEOUT</pre>
<div class="block">The timeout limit for group file sync, in microseconds.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.fsyncTimeout"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>500 ms</td>
<td>10 ms</td>
<td>24 d</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_FSYNC_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_FSYNC_TIME_LIMIT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_FSYNC_TIME_LIMIT</h4>
<pre>public static final&nbsp;java.lang.String LOG_FSYNC_TIME_LIMIT</pre>
<div class="block">If the time taken by an fsync exceeds this limit, a WARNING level
message is logged. If this parameter set to zero, a message will not be
logged. By default, this parameter is 5 seconds.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.fsyncTimeLimit"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>5 s</td>
<td>zero</td>
<td>30 s</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentStats.html#getFSyncMaxTime--"><code>EnvironmentStats.getFSyncMaxTime()</code></a>,
<a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_FSYNC_TIME_LIMIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_GROUP_COMMIT_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_GROUP_COMMIT_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String LOG_GROUP_COMMIT_INTERVAL</pre>
<div class="block">The time interval in nanoseconds during which transactions may be
grouped to amortize the cost of write and/or fsync when a transaction
commits with SyncPolicy#SYNC or SyncPolicy#WRITE_NO_SYNC on the local
machine.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.groupCommitInterval"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>0</td>
<td>0</td>
<td>none</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0.76</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_GROUP_COMMIT_THRESHOLD"><code>LOG_GROUP_COMMIT_THRESHOLD</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_GROUP_COMMIT_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_GROUP_COMMIT_THRESHOLD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_GROUP_COMMIT_THRESHOLD</h4>
<pre>public static final&nbsp;java.lang.String LOG_GROUP_COMMIT_THRESHOLD</pre>
<div class="block">The threshold value impacts the number of transactions that may be
grouped to amortize the cost of write and/or fsync when a
transaction commits with SyncPolicy#SYNC or SyncPolicy#WRITE_NO_SYNC
on the local machine.
<p>
Specifying larger values can result in more transactions being grouped
together decreasing average commit times.
<p>
<table border="1">
<tr>
<td>Name</td>
<td>Type</td>
<td>Mutable</td>
<td>Default</td>
<td>Minimum</td>
<td>Maximum</td>
</tr>
<tr>
<td>"je.log.groupCommitThreshold"</td>
<td>Integer</td>
<td>No</td>
<td>0</td>
<td>0</td>
<td>-none-</td>
</tr>
</table>
</p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0.76</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_GROUP_COMMIT_INTERVAL"><code>LOG_GROUP_COMMIT_INTERVAL</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_GROUP_COMMIT_THRESHOLD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_FLUSH_SYNC_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_FLUSH_SYNC_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String LOG_FLUSH_SYNC_INTERVAL</pre>
<div class="block">The maximum time interval between committing a transaction with
<a href="../../../com/sleepycat/je/Durability.html#COMMIT_NO_SYNC"><code>NO_SYNC</code></a> or <a href="../../../com/sleepycat/je/Durability.html#COMMIT_WRITE_NO_SYNC"><code>WRITE_NO_SYNC</code></a> durability,
and making the transaction durable with respect to the storage device.
To provide this guarantee, a JE background thread is used to flush any
data buffered by JE to the file system, and also perform an fsync to
force any data buffered by the file system to the storage device. If
this parameter is set to zero, this JE background task is disabled and
no such guarantee is provided.
<p>
Separately, the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FLUSH_NO_SYNC_INTERVAL"><code>LOG_FLUSH_NO_SYNC_INTERVAL</code></a> flushing provides a
guarantee that data is periodically flushed to the file system. To guard
against data loss due to an OS crash (and to improve performance) we
recommend that the file system is configured to periodically flush dirty
pages to the storage device. This parameter, <code>LOG_FLUSH_SYNC_INTERVAL</code>, provides a fallback for flushing to the
storage device, in case the file system is not adequately configured.
<p>
<table border="1">
<tr>
<td>Name</td>
<td>Type</td>
<td>Mutable</td>
<td>Default</td>
<td>Minimum</td>
<td>Maximum</td>
</tr>
<tr>
<td>"je.log.flushSyncInterval"</td>
<td>
<a href="../EnvironmentConfig.html#timeDuration">Duration</a>
</td>
<td>Yes</td>
<td>20 s</td>
<td>0</td>
<td>-none-</td>
</tr>
</table>
</p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_FLUSH_SYNC_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_FLUSH_NO_SYNC_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_FLUSH_NO_SYNC_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String LOG_FLUSH_NO_SYNC_INTERVAL</pre>
<div class="block">The maximum time interval between committing a transaction with
<a href="../../../com/sleepycat/je/Durability.html#COMMIT_NO_SYNC"><code>NO_SYNC</code></a> durability, and
making the transaction durable with respect to the file system. To
provide this guarantee, a JE background thread is used to flush any data
buffered by JE to the file system. If this parameter is set to zero,
this JE background task is disabled and no such guarantee is provided.
<p>
Frequent periodic flushing to the file system provides improved
durability for NO_SYNC transactions. Without this flushing, if
application write operations stop, then some number of NO_SYNC
transactions would be left in JE memory buffers and would be lost in the
event of a crash. For HA applications, this flushing reduces the
possibility of <a href="../../../com/sleepycat/je/rep/RollbackProhibitedException.html" title="class in com.sleepycat.je.rep"><code>RollbackProhibitedException</code></a>.
Note that periodic flushing reduces the time window where a crash can
cause transaction loss and <code>RollbackProhibitedException</code>, but the
window cannot be closed completely when using NO_SYNC durability.
<p>
<table border="1">
<tr>
<td>Name</td>
<td>Type</td>
<td>Mutable</td>
<td>Default</td>
<td>Minimum</td>
<td>Maximum</td>
</tr>
<tr>
<td>"je.log.flushNoSyncInterval"</td>
<td>
<a href="../EnvironmentConfig.html#timeDuration">Duration</a>
</td>
<td>Yes</td>
<td>5 s</td>
<td>0</td>
<td>-none-</td>
</tr>
</table>
</p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_FLUSH_NO_SYNC_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_USE_ODSYNC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_USE_ODSYNC</h4>
<pre>public static final&nbsp;java.lang.String LOG_USE_ODSYNC</pre>
<div class="block">If true (default is false) O_DSYNC is used to open JE log files.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.log.useODSYNC"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_USE_ODSYNC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_USE_NIO">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_USE_NIO</h4>
<pre>public static final&nbsp;java.lang.String LOG_USE_NIO</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">NIO is no longer used by JE and this parameter has no
effect.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_USE_NIO">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_USE_WRITE_QUEUE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_USE_WRITE_QUEUE</h4>
<pre>public static final&nbsp;java.lang.String LOG_USE_WRITE_QUEUE</pre>
<div class="block">If true (default is true) the Write Queue is used for file I/O
operations which are blocked by concurrent I/O operations.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.log.useWriteQueue"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_USE_WRITE_QUEUE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_WRITE_QUEUE_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_WRITE_QUEUE_SIZE</h4>
<pre>public static final&nbsp;java.lang.String LOG_WRITE_QUEUE_SIZE</pre>
<div class="block">The size of the Write Queue.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.log.writeQueueSize"</td>
<td>Integer</td>
<td>No</td>
<td>1MB</td>
<td>4KB</td>
<td>32MB-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_WRITE_QUEUE_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_DIRECT_NIO">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_DIRECT_NIO</h4>
<pre>public static final&nbsp;java.lang.String LOG_DIRECT_NIO</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">NIO is no longer used by JE and this parameter has no
effect.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_DIRECT_NIO">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOG_CHUNKED_NIO">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG_CHUNKED_NIO</h4>
<pre>public static final&nbsp;java.lang.String LOG_CHUNKED_NIO</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">NIO is no longer used by JE and this parameter has no
effect.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOG_CHUNKED_NIO">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENV_RUN_VERIFIER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENV_RUN_VERIFIER</h4>
<pre>public static final&nbsp;java.lang.String ENV_RUN_VERIFIER</pre>
<div class="block">Whether to run the background verifier.
<p>
If true (the default), the verifier runs according to the schedule
given by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_SCHEDULE"><code>VERIFY_SCHEDULE</code></a>. Each time the verifier runs, it
performs checksum verification if the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_LOG"><code>VERIFY_LOG</code></a> setting is
true and performs Btree verification if the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE"><code>VERIFY_BTREE</code></a>
setting is true.
<p>
When corruption is detected, the Environment will be invalidated and an
EnvironmentFailureException will be thrown. Applications catching this
exception can call the new <a href="../../../com/sleepycat/je/EnvironmentFailureException.html#isCorrupted--"><code>EnvironmentFailureException.isCorrupted()</code></a> method to determine whether
corruption was detected.
<p>
If isCorrupted returns true, a full restore (an HA <a href="../../../com/sleepycat/je/rep/NetworkRestore.html" title="class in com.sleepycat.je.rep"><code>NetworkRestore</code></a> or restore from backup)
should be performed to avoid further problems. The advantage of
performing verification frequently is that a problem may be detected
sooner than it would be otherwise. For HA applications, this means that
the network restore can be done while the other nodes in the group are
up, minimizing exposure to additional failures.
<p>
When index corruption is detected, the environment is not invalidated.
Instead, the corrupt index (secondary database) is marked as corrupt
in memory and a warning message is logged. All subsequent access to the
index will throw <a href="../../../com/sleepycat/je/SecondaryIntegrityException.html" title="class in com.sleepycat.je"><code>SecondaryIntegrityException</code></a>. To correct the
problem, the application may perform a full restore or rebuild the
corrupt index.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.runVerifier"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.ENV_RUN_VERIFIER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERIFY_SCHEDULE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERIFY_SCHEDULE</h4>
<pre>public static final&nbsp;java.lang.String VERIFY_SCHEDULE</pre>
<div class="block">A crontab-format string indicating when to start the background
verifier.
<p>
See https://en.wikipedia.org/wiki/Cron#Configuration_file
Note that times and dates are specified in local time, not UTC time.
<p>
The data verifier will run at most once per scheduled interval. If the
complete verification (log verification followed by Btree verification)
takes longer than the scheduled interval, then the next verification
will start at the next increment of the interval. For example, if the
default schedule is used (one per day at midnight), and verification
takes 25 hours, then verification will occur once every two
days (48 hours), starting at midnight.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.verifySchedule"</td>
<td>String</td>
<td>Yes</td>
<td>"0 0 * * * (run once a day at midnight, local time)"</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.VERIFY_SCHEDULE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERIFY_LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERIFY_LOG</h4>
<pre>public static final&nbsp;java.lang.String VERIFY_LOG</pre>
<div class="block">Whether the background verifier should verify checksums in the log,
as if the <a href="../../../com/sleepycat/je/util/DbVerifyLog.html" title="class in com.sleepycat.je.util"><code>DbVerifyLog</code></a> utility were run.
<p>
If true, the entire log is read sequentially and verified. The size
of the read buffer is determined by LOG_ITERATOR_READ_SIZE.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.verifyLog"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.VERIFY_LOG">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERIFY_LOG_READ_DELAY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERIFY_LOG_READ_DELAY</h4>
<pre>public static final&nbsp;java.lang.String VERIFY_LOG_READ_DELAY</pre>
<div class="block">The delay between reads during <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_LOG"><code>log verification</code></a>.
A delay between reads is needed to allow other JE components, such as
HA, to make timely progress.
<p>
A 100ms delay, the default value, with the read buffer size 131072, i.e.
128K, for a 1GB file, the total delay time is about 13 minutes.
<p>
This parameter applies only to the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_VERIFIER"><code>background
verifier</code></a>. It does not apply to use of <a href="../../../com/sleepycat/je/util/DbVerifyLog.html" title="class in com.sleepycat.je.util"><code>DbVerifyLog</code></a>.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.verifyLogReadDelay"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>100 ms</td>
<td>0 ms</td>
<td>10 s</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.VERIFY_LOG_READ_DELAY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERIFY_BTREE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERIFY_BTREE</h4>
<pre>public static final&nbsp;java.lang.String VERIFY_BTREE</pre>
<div class="block">Whether the background verifier should perform Btree verification,
as if the <a href="../../../com/sleepycat/je/util/DbVerify.html" title="class in com.sleepycat.je.util"><code>DbVerify</code></a> utility were run.
<p>
If true, the Btree of all databases, external and internal, is
verified. The in-memory cache is used for verification and internal
data structures are checked. References to data records (log sequence
numbers, or LSNs) are checked to ensure they do not refer to deleted
files -- this is the most common type of corruption. Additional
checks are performed, depending on the settings for <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_SECONDARIES"><code>VERIFY_SECONDARIES</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_DATA_RECORDS"><code>VERIFY_DATA_RECORDS</code></a>.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.verifyBtree"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.VERIFY_BTREE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERIFY_SECONDARIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERIFY_SECONDARIES</h4>
<pre>public static final&nbsp;java.lang.String VERIFY_SECONDARIES</pre>
<div class="block">Whether to verify secondary index references during Btree verification.
<p>
An index record contains a reference to a primary key, and the
verification involves checking that a record for the primary key exists.
<p>
Note that secondary index references are verified only for each
<a href="../../../com/sleepycat/je/SecondaryDatabase.html" title="class in com.sleepycat.je"><code>SecondaryDatabase</code></a> (and <a href="../../../com/sleepycat/persist/SecondaryIndex.html" title="class in com.sleepycat.persist"><code>SecondaryIndex</code></a>) that is currently
open. The relationship between a secondary and primary database is not
stored persistently, so JE is not aware of the relationship unless the
secondary database has been opened by the application.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.verifySecondaries"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.VERIFY_SECONDARIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERIFY_DATA_RECORDS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERIFY_DATA_RECORDS</h4>
<pre>public static final&nbsp;java.lang.String VERIFY_DATA_RECORDS</pre>
<div class="block">Whether to verify data records (leaf nodes, or LNs) during Btree
verification.
<p>
Regardless of this parameter's value, the Btree reference to the data
record (the log sequence number, or LSN) is checked to ensure that
it doesn't refer to a file that has been deleted by the JE cleaner --
this sort of "dangling reference" is the most common type of
corruption. If this parameter value is true, the LN is additionally
fetched from disk (if not in cache) to verify that the LSN refers to
a valid log entry. Because LNs are often not cached, this can cause
expensive random IO, and the default value for this parameter is false
for this reason. Some applications may choose to set this parameter to
true, for example, when using a storage device with fast random
IO (an SSD).
<p>
Note that Btree internal nodes (INs) are always fetched from disk
during verification, if they are not in cache, and this can result
in random IO. Verification was implemented with the assumption that
most INs will be in cache.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.env.verifyDataRecords"</td>
<td>Boolean</td>
<td>Yes</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.VERIFY_DATA_RECORDS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERIFY_BTREE_BATCH_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERIFY_BTREE_BATCH_SIZE</h4>
<pre>public static final&nbsp;java.lang.String VERIFY_BTREE_BATCH_SIZE</pre>
<div class="block">The number of records verified per batch during <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE"><code>Btree verification</code></a>. In order to give database remove/truncate the
opportunity to execute, records are verified in batches and there is
a <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE_BATCH_DELAY"><code>delay</code></a> between batches.
<p>
This parameter applies only to the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_VERIFIER"><code>background
verifier</code></a>. It does not apply to use of <a href="../../../com/sleepycat/je/util/DbVerify.html" title="class in com.sleepycat.je.util"><code>DbVerify</code></a>.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.verifyBtreeBatchSize"</td>
<td>Integer</td>
<td>Yes</td>
<td>1000</td>
<td>1</td>
<td>10000</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.VERIFY_BTREE_BATCH_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERIFY_BTREE_BATCH_DELAY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERIFY_BTREE_BATCH_DELAY</h4>
<pre>public static final&nbsp;java.lang.String VERIFY_BTREE_BATCH_DELAY</pre>
<div class="block">The delay between batches during <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE"><code>Btree
verification</code></a>. In order to give database remove/truncate the
opportunity to execute, records are verified in <a href="../../../com/sleepycat/je/EnvironmentConfig.html#VERIFY_BTREE_BATCH_SIZE"><code>batches</code></a> and there is a delay between batches.
<p>
A 10ms delay, the default value, should be enough to allow other
threads to run. A large value, for example 1s, would result in a total
delay of 28 hours when verifying 100m records or 100k batches.
<p>
This parameter applies only to the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_RUN_VERIFIER"><code>background
verifier</code></a>. It does not apply to use of <a href="../../../com/sleepycat/je/util/DbVerify.html" title="class in com.sleepycat.je.util"><code>DbVerify</code></a>.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.verifyBtreeBatchDelay"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>10 ms</td>
<td>0 ms</td>
<td>10 s</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.VERIFY_BTREE_BATCH_DELAY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NODE_MAX_ENTRIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NODE_MAX_ENTRIES</h4>
<pre>public static final&nbsp;java.lang.String NODE_MAX_ENTRIES</pre>
<div class="block">The maximum number of entries in an internal btree node. This can be
set per-database using the DatabaseConfig object.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.nodeMaxEntries"</td>
<td>Integer</td>
<td>No</td>
<td>128</td>
<td>4</td>
<td>32767 (32K)</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.NODE_MAX_ENTRIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NODE_DUP_TREE_MAX_ENTRIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NODE_DUP_TREE_MAX_ENTRIES</h4>
<pre>public static final&nbsp;java.lang.String NODE_DUP_TREE_MAX_ENTRIES</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">this property no longer has any effect; <a href="../../../com/sleepycat/je/DatabaseConfig.html#setNodeMaxEntries-int-"><code>DatabaseConfig.setNodeMaxEntries(int)</code></a> should be used instead.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.NODE_DUP_TREE_MAX_ENTRIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TREE_MAX_EMBEDDED_LN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TREE_MAX_EMBEDDED_LN</h4>
<pre>public static final&nbsp;java.lang.String TREE_MAX_EMBEDDED_LN</pre>
<div class="block">The maximum size (in bytes) of a record's data portion that will cause
the record to be embedded in its parent LN.
<p>
Normally, records (key-value pairs) are stored on disk as individual
byte sequences called LNs (leaf nodes) and they are accessed via a
Btree. The nodes of the Btree are called INs (Internal Nodes) and the
INs at the bottom layer of the Btree are called BINs (Bottom Internal
Nodes). Conceptually, each BIN contains an array of slots. A slot
represents an associated data record. Among other things, it stores
the key of the record and the most recent disk address of that record.
Records and INs share the disk space (are stored in the same kind of
files), but LNs are stored separately from BINs, i.e., there is no
clustering or co-location of a BIN and its child LNs.
<p>
With embedded LNs, a whole record may be stored inside a BIN (i.e.,
a BIN slot may contain both the key and the data portion of a record).
Specifically, a record will be "embedded" if the size (in bytes) of its
data portion is less than or equal to the value of the
TREE_MAX_EMBEDDED_LN configuration parameter. The decision to embed a
record or not is taken on a record-by-record basis. As a result, a BIN
may contain both embedded and non-embedded records. The "embeddedness"
of a record is a dynamic property: a size-changing update may turn a
non-embedded record to an embedded one or vice-versa.
<p>
Notice that even though a record may be embedded, when the record is
inserted, updated, or deleted an LN for that record is still generated
and written to disk. This is because LNs also act as log records,
which are needed during recovery and/or transaction abort to undo/redo
operations that are/are-not currently reflected in the BINs. However,
during normal processing, these LNs will never be fetched from disk.
<p>
Obviously, embedding records has the performance advantage that no
extra disk read is needed to fetch the record data (i.e., the LN)
during read operations. This is especially true for operations like
cursor scans and for random searches within key ranges whose
containing BINs can fit in the JE cache (in other words when there
is locality of reference). Furthermore, embedded records do not need
to be migrated during cleaning; they are considered obsolete by default,
because they will never be needed again after their containing log file
is deleted. This makes cleaning faster, and more importantly, avoids
the dirtying of the parent BINs, which would otherwise cause even more
cleaning later.
<p>
On the other hand, embedded LNs make the BINs larger, which can lead to
more cache eviction of BINs and the associated performance problems.
When eviction does occur, performance can deteriorate as the size of
the data portion of the records grows. This is especially true for
insertion-only workloads. Therefore, increasing the value of
TREE_MAX_EMBEDDED_LN beyond the default value of 16 bytes should be
done "carefully": by considering the kind of workloads that will be run
against BDB-JE and their relative importance and expected response
times, and by running performance tests with both embedded and
non-embedded LNs.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.tree.maxEmbeddedLN"</td>
<td>Integer</td>
<td>No</td>
<td>16</td>
<td>0</td>
<td>Integer.MAX_VALUE</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheSizeOptimizations">Cache
Statistics: Size Optimizations</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TREE_MAX_EMBEDDED_LN">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TREE_MAX_DELTA">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TREE_MAX_DELTA</h4>
<pre>public static final&nbsp;java.lang.String TREE_MAX_DELTA</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of JE 6.0. The <a href="../../../com/sleepycat/je/EnvironmentConfig.html#TREE_BIN_DELTA"><code>TREE_BIN_DELTA</code></a> param alone now
determines whether a delta is logged.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TREE_MAX_DELTA">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TREE_BIN_DELTA">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TREE_BIN_DELTA</h4>
<pre>public static final&nbsp;java.lang.String TREE_BIN_DELTA</pre>
<div class="block">If more than this percentage of entries are changed on a BIN, log a a
full version instead of a delta.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.tree.binDelta"</td>
<td>Integer</td>
<td>No</td>
<td>25</td>
<td>0</td>
<td>75</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TREE_BIN_DELTA">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TREE_MIN_MEMORY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TREE_MIN_MEMORY</h4>
<pre>public static final&nbsp;java.lang.String TREE_MIN_MEMORY</pre>
<div class="block">The minimum bytes allocated out of the memory cache to hold Btree data
including internal nodes and record keys and data. If the specified
value is larger than the size initially available in the cache, it will
be truncated to the amount available.
<p><code>TREE_MIN_MEMORY</code> is the minimum for a single environment. By
default, 500 KB or the size initially available in the cache is used,
whichever is smaller.</p>
<p>This param is only likely to be needed for tuning of Environments
with extremely small cache sizes. It is sometimes also useful for
debugging and testing.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.tree.minMemory"</td>
<td>Long</td>
<td>Yes</td>
<td>512000 (500K)</td>
<td>51200 (50K)</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheDebugging">Cache Statistics:
Debugging</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TREE_MIN_MEMORY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TREE_COMPACT_MAX_KEY_LENGTH">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TREE_COMPACT_MAX_KEY_LENGTH</h4>
<pre>public static final&nbsp;java.lang.String TREE_COMPACT_MAX_KEY_LENGTH</pre>
<div class="block">Specifies the maximum unprefixed key length for use in the compact
in-memory key representation.
<p>In the Btree, the JE in-memory cache, the default representation for
keys uses a byte array object per key. The per-key object overhead of
this approach ranges from 20 to 32 bytes, depending on the JVM
platform.</p>
<p>To reduce memory overhead, a compact representation can instead be
used where keys will be represented inside a single byte array instead
of having one byte array per key. Within the single array, all keys are
assigned a storage size equal to that taken up by the largest key, plus
one byte to hold the actual key length. The use of the fixed size array
reduces Java GC activity as well as memory overhead.</p>
<p>In order for the compact representation to reduce memory usage, all
keys in a database, or in a Btree internal node, must be roughly the
same size. The more fully populated the internal node, the more the
savings with this representation since the single byte array is sized to
hold the maximum number of keys in the internal node, regardless of the
actual number of keys that are present.</p>
<p>It's worth noting that the storage savings of the compact
representation are realized in addition to the storage benefits of key
prefixing (if it is configured), since the keys stored in the key array
are the smaller key values after the prefix has been stripped, reducing
the length of the key and making it more likely that it's small enough
for this specialized representation. This configuration parameter
(<code>TREE_COMPACT_MAX_KEY_LENGTH</code>) is the maximum key length, not
including the common prefix, for the keys in a Btree internal node
stored using the compact representation. See <a href="../../../com/sleepycat/je/DatabaseConfig.html#setKeyPrefixing-boolean-"><code>DatabaseConfig.setKeyPrefixing(boolean)</code></a>.</p>
<p>The compact representation is used automatically when both of the
following conditions hold.</p>
<ul>
<li>All keys in a Btree internal node must have an unprefixed length
that is less than or equal to the length specified by this parameter
(<code>TREE_COMPACT_MAX_KEY_LENGTH</code>).</li>
<li>If key lengths vary by large amounts within an internal node, the
wasted space of the fixed length storage may negate the benefits of the
compact representation and cause more memory to be used than with the
default representation. In that case, the default representation will
be used.</li>
</ul>
<p>If this configuration parameter is set to zero, the compact
representation will not be used.</p>
<p>The default value of this configuration parameter is 16 bytes. The
potential drawbacks of specifying a larger length are:</p>
<ul>
<li>Insertion and deletion for larger keys move bytes proportional to
the storage length of the keys.</li>
<li>With the compact representation, all operations create temporary
byte arrays for each key involved in the operation. Larger byte arrays
mean more work for the Java GC, even though these objects are short
lived.</li>
</ul>
<p>Mutation of the key representation between the default and compact
approaches is automatic on a per-Btree internal node basis. For
example, if a key that exceeds the configured length is added to a node
that uses the compact representation, the node is automatically
mutated to the default representation. A best effort is made to
prevent frequent mutations that could increase Java GC activity.</p>
<p>To determine how often the compact representation is used in a
running application, see <a href="../../../com/sleepycat/je/EnvironmentStats.html#getNINCompactKeyIN--"><code>EnvironmentStats.getNINCompactKeyIN()</code></a>.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.tree.compactMaxKeyLength"</td>
<td>Integer</td>
<td>No</td>
<td>16</td>
<td>0</td>
<td>256</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/DatabaseConfig.html#setKeyPrefixing-boolean-"><code>DatabaseConfig.setKeyPrefixing(boolean)</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentStats.html#getNINCompactKeyIN--"><code>EnvironmentStats.getNINCompactKeyIN()</code></a>,
<a href="EnvironmentStats.html#cacheSizeOptimizations">Cache
Statistics: Size Optimizations</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TREE_COMPACT_MAX_KEY_LENGTH">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="COMPRESSOR_WAKEUP_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPRESSOR_WAKEUP_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String COMPRESSOR_WAKEUP_INTERVAL</pre>
<div class="block">The compressor thread wakeup interval in microseconds.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.compressor.wakeupInterval"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>5 s</td>
<td>1 s</td>
<td>75 min</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.COMPRESSOR_WAKEUP_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="COMPRESSOR_DEADLOCK_RETRY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPRESSOR_DEADLOCK_RETRY</h4>
<pre>public static final&nbsp;java.lang.String COMPRESSOR_DEADLOCK_RETRY</pre>
<div class="block">The number of times to retry a compression run if a deadlock occurs.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.compressor.deadlockRetry"</td>
<td>Integer</td>
<td>No</td>
<td>3</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.COMPRESSOR_DEADLOCK_RETRY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="COMPRESSOR_LOCK_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPRESSOR_LOCK_TIMEOUT</h4>
<pre>public static final&nbsp;java.lang.String COMPRESSOR_LOCK_TIMEOUT</pre>
<div class="block">The lock timeout for compressor transactions in microseconds.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.compressor.lockTimeout"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>500 ms</td>
<td>0</td>
<td>75 min</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.COMPRESSOR_LOCK_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="COMPRESSOR_PURGE_ROOT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPRESSOR_PURGE_ROOT</h4>
<pre>public static final&nbsp;java.lang.String COMPRESSOR_PURGE_ROOT</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 3.3.87. Compression of the root node no longer has
any benefit and this feature has been removed. This parameter has no
effect.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.COMPRESSOR_PURGE_ROOT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_EVICT_BYTES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_EVICT_BYTES</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_EVICT_BYTES</pre>
<div class="block">When eviction occurs, the evictor will push memory usage to this number
of bytes below <a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY"><code>MAX_MEMORY</code></a>. No more than 50% of je.maxMemory
will be evicted per eviction cycle, regardless of this setting.
<p>When using the shared cache feature, the value of this property is
applied the first time the cache is set up. New environments that
join the cache do not alter the cache setting.</p>
<p>This parameter impacts
<a href="EnvironmentStats.html#cacheEviction">how often background
evictor threads are awoken</a> as well as the size of latency spikes
caused by
<a href="EnvironmentStats.html#cacheCriticalEviction">critical
eviction</a>.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.evictor.evictBytes"</td>
<td>Long</td>
<td>No</td>
<td>524288 (512K)</td>
<td>1024 (1K)</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheEviction">Cache Statistics:
Eviction</a>,
<a href="EnvironmentStats.html#cacheCriticalEviction">Cache
Statistics: Critical Eviction</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_EVICT_BYTES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_NODES_PER_SCAN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_NODES_PER_SCAN</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_NODES_PER_SCAN</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of JE 6.0. This parameter is ignored by the new, more
efficient and more accurate evictor.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_NODES_PER_SCAN">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_CRITICAL_PERCENTAGE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_CRITICAL_PERCENTAGE</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_CRITICAL_PERCENTAGE</pre>
<div class="block">At this percentage over the allotted cache, critical eviction will
start. For example, if this parameter is 5, then when the cache size is
5% over its maximum or 105% full, critical eviction will start.
<p>
Critical eviction is eviction performed in application threads as part
of normal database access operations. Background eviction, on the other
hand, is performed in JE evictor threads as well as during log cleaning
and checkpointing. Background eviction is unconditionally started when
the cache size exceeds its maximum. When critical eviction is also
performed (concurrently with background eviction), it helps to ensure
that the cache size does not continue to grow, but can have a negative
impact on operation latency.
<p>
By default this parameter is zero, which means that critical eviction
will start as soon as the cache size exceeds its maximum. Some
applications may wish to set this parameter to a non-zero value to
improve operation latency, when eviction is a significant performance
factor and latency requirements are not being satisfied.
<p>
When setting this parameter to a non-zero value, for example 5, be sure
to reserve enough heap memory for the cache size to be over its
configured maximum, for example 105% full.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.evictor.criticalPercentage"</td>
<td>Integer</td>
<td>No</td>
<td>0</td>
<td>0</td>
<td>1000</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheCriticalEviction">Cache
Statistics: Critical Eviction</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_CRITICAL_PERCENTAGE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_DEADLOCK_RETRY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_DEADLOCK_RETRY</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_DEADLOCK_RETRY</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of JE 4.1, since the single evictor thread has
been replaced be a more robust thread pool.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_DEADLOCK_RETRY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_LRU_ONLY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_LRU_ONLY</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_LRU_ONLY</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of JE 6.0. This parameter is ignored by the new,
more efficient and more accurate evictor.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_LRU_ONLY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_N_LRU_LISTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_N_LRU_LISTS</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_N_LRU_LISTS</pre>
<div class="block">The number of LRU lists in the main JE cache.
<p>Ideally, all nodes managed by an LRU eviction policy should appear in
a single LRU list, ordered by the "hotness" of each node. However,
such a list is accessed very frequently by multiple threads, and can
become a synchronization bottleneck. To avoid this problem, the
evictor can employ multiple LRU lists. The nLRULists parameter
specifies the number of LRU lists to be used. Increasing the number
of LRU lists alleviates any potential synchronization bottleneck, but
it also decreases the quality of the LRU approximation.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.evictor.nLRULists"</td>
<td>Integer</td>
<td>No</td>
<td>4</td>
<td>1</td>
<td>32</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#cacheLRUListContention">Cache Statistics: LRU List
Contention</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_N_LRU_LISTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_FORCED_YIELD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_FORCED_YIELD</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_FORCED_YIELD</pre>
<div class="block">Call Thread.yield() at each check for cache overflow. This potentially
improves GC performance, but little testing has been done and the actual
benefit is unknown.
<p>When using the shared cache feature, the value of this property is
applied the first time the cache is set up. New environments that
join the cache do not alter the cache setting.</p>
<p>This param is unlikely to be needed for tuning, but is sometimes
useful for debugging and testing.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.evictor.forcedYield"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheDebugging">Cache Statistics:
Debugging</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_FORCED_YIELD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_CORE_THREADS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_CORE_THREADS</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_CORE_THREADS</pre>
<div class="block">The minimum number of threads in the eviction thread pool.
<p>
These threads help keep memory usage within cache bounds, offloading
work from application threads.
<p>
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_CORE_THREADS"><code>EVICTOR_CORE_THREADS</code></a>, <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_MAX_THREADS"><code>EVICTOR_MAX_THREADS</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_KEEP_ALIVE"><code>EVICTOR_KEEP_ALIVE</code></a> are used to configure the core, max and keepalive
attributes for the <code>ThreadPoolExecutor</code> which
implements the eviction thread pool.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.evictor.coreThreads"</td>
<td>Integer</td>
<td>yes</td>
<td>1</td>
<td>0</td>
<td>Integer.MAX_VALUE</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_CORE_THREADS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_MAX_THREADS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_MAX_THREADS</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_MAX_THREADS</pre>
<div class="block">The maximum number of threads in the eviction thread pool.
<p>
These threads help keep memory usage within cache bound, offloading work
from application threads. If the eviction thread pool receives more
work, it will allocate up to this number of threads. These threads will
terminate if they are idle for more than the time indicated by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_KEEP_ALIVE"><code>EVICTOR_KEEP_ALIVE</code></a>.
<p>
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_CORE_THREADS"><code>EVICTOR_CORE_THREADS</code></a>, <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_MAX_THREADS"><code>EVICTOR_MAX_THREADS</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_KEEP_ALIVE"><code>EVICTOR_KEEP_ALIVE</code></a> are used to configure the core, max and keepalive
attributes for the <code>ThreadPoolExecutor</code> which
implements the eviction thread pool.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.evictor.maxThreads"</td>
<td>Integer</td>
<td>yes</td>
<td>10</td>
<td>1</td>
<td>Integer.MAX_VALUE</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_MAX_THREADS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_KEEP_ALIVE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_KEEP_ALIVE</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_KEEP_ALIVE</pre>
<div class="block">The duration that excess threads in the eviction thread pool will stay
idle; after this period, idle threads will terminate.
<p>
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_CORE_THREADS"><code>EVICTOR_CORE_THREADS</code></a>, <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_MAX_THREADS"><code>EVICTOR_MAX_THREADS</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#EVICTOR_KEEP_ALIVE"><code>EVICTOR_KEEP_ALIVE</code></a> are used to configure the core, max and keepalive
attributes for the <code>ThreadPoolExecutor</code> which
implements the eviction thread pool.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.evictor.keepAlive"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>10 min</td>
<td>1 s</td>
<td>1 d</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_KEEP_ALIVE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EVICTOR_ALLOW_BIN_DELTAS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICTOR_ALLOW_BIN_DELTAS</h4>
<pre>public static final&nbsp;java.lang.String EVICTOR_ALLOW_BIN_DELTAS</pre>
<div class="block">Allow Bottom Internal Nodes (BINs) to be written in a delta format
during eviction. Using a delta format will improve write and log
cleaning performance. There is no known performance benefit to setting
this parameter to false.
<p>This param is unlikely to be needed for tuning, but is sometimes
useful for debugging and testing.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.evictor.allowBinDeltas"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheDebugging">Cache Statistics:
Debugging</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.EVICTOR_ALLOW_BIN_DELTAS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OFFHEAP_EVICT_BYTES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OFFHEAP_EVICT_BYTES</h4>
<pre>public static final&nbsp;java.lang.String OFFHEAP_EVICT_BYTES</pre>
<div class="block">The off-heap evictor will attempt to keep memory usage this number of
bytes below <a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_OFF_HEAP_MEMORY"><code>MAX_OFF_HEAP_MEMORY</code></a>.
<p>
If this value is too small, memory usage may exceed the maximum and then
"critical eviction" is needed, which will increase operation latency in
the application threads.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.offHeap.evictBytes"</td>
<td>Long</td>
<td>No</td>
<td>52428800 (50MB)</td>
<td>1024 (1K)</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheCriticalEviction">Cache
Statistics: Critical Eviction</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.OFFHEAP_EVICT_BYTES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OFFHEAP_N_LRU_LISTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OFFHEAP_N_LRU_LISTS</h4>
<pre>public static final&nbsp;java.lang.String OFFHEAP_N_LRU_LISTS</pre>
<div class="block">The number of LRU lists in the off-heap JE cache.
<p>Ideally, all nodes managed by an LRU eviction policy should appear in
a single LRU list, ordered by the "hotness" of each node. However,
such a list is accessed very frequently by multiple threads, and can
become a synchronization bottleneck. To avoid this problem, the
evictor can employ multiple LRU lists. The nLRULists parameter
specifies the number of LRU lists to be used. Increasing the number
of LRU lists alleviates any potential synchronization bottleneck, but
it also decreases the quality of the LRU approximation.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.evictor.nLRULists"</td>
<td>Integer</td>
<td>No</td>
<td>4</td>
<td>1</td>
<td>32</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#cacheLRUListContention">Cache Statistics: LRU List
Contention</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.OFFHEAP_N_LRU_LISTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OFFHEAP_CHECKSUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OFFHEAP_CHECKSUM</h4>
<pre>public static final&nbsp;java.lang.String OFFHEAP_CHECKSUM</pre>
<div class="block">Can be used to add a checksum to each off-heap block when the block is
written, and validate the checksum when the block is read, for debugging
purposes. Setting this param to true adds memory and CPU overhead, and
it should normally be set to false in a production environment.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.offHeap.checksum"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentStats.html#cacheDebugging">Cache Statistics:
Debugging</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.OFFHEAP_CHECKSUM">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OFFHEAP_CORE_THREADS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OFFHEAP_CORE_THREADS</h4>
<pre>public static final&nbsp;java.lang.String OFFHEAP_CORE_THREADS</pre>
<div class="block">The minimum number of threads in the off-heap eviction thread pool.
<p>
These threads help keep memory usage within cache bounds, offloading
work from application threads.
<p>
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_CORE_THREADS"><code>OFFHEAP_CORE_THREADS</code></a>, <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_MAX_THREADS"><code>OFFHEAP_MAX_THREADS</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_KEEP_ALIVE"><code>OFFHEAP_KEEP_ALIVE</code></a> are used to configure the core, max and keepalive
attributes for the <code>ThreadPoolExecutor</code> which
implements the eviction thread pool.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.offHeap.coreThreads"</td>
<td>Integer</td>
<td>yes</td>
<td>1</td>
<td>0</td>
<td>Integer.MAX_VALUE</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.OFFHEAP_CORE_THREADS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OFFHEAP_MAX_THREADS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OFFHEAP_MAX_THREADS</h4>
<pre>public static final&nbsp;java.lang.String OFFHEAP_MAX_THREADS</pre>
<div class="block">The maximum number of threads in the off-heap eviction thread pool.
<p>
These threads help keep memory usage within cache bound, offloading
work from application threads. If the eviction thread pool receives
more work, it will allocate up to this number of threads. These
threads will terminate if they are idle for more than the time
indicated by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_KEEP_ALIVE"><code>OFFHEAP_KEEP_ALIVE</code></a>.
<p>
If the number of threads is too small, memory usage may exceed the
maximum and then "critical eviction" is needed, which will increase
operation latency in the application threads.
<p>
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_CORE_THREADS"><code>OFFHEAP_CORE_THREADS</code></a>, <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_MAX_THREADS"><code>OFFHEAP_MAX_THREADS</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_KEEP_ALIVE"><code>OFFHEAP_KEEP_ALIVE</code></a> are used to configure the core, max and keepalive
attributes for the <code>ThreadPoolExecutor</code> which
implements the eviction thread pool.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.offHeap.maxThreads"</td>
<td>Integer</td>
<td>yes</td>
<td>3</td>
<td>1</td>
<td>Integer.MAX_VALUE</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.OFFHEAP_MAX_THREADS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OFFHEAP_KEEP_ALIVE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OFFHEAP_KEEP_ALIVE</h4>
<pre>public static final&nbsp;java.lang.String OFFHEAP_KEEP_ALIVE</pre>
<div class="block">The duration that excess threads in the off-heap eviction thread pool
will stay idle; after this period, idle threads will terminate.
<p>
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_CORE_THREADS"><code>OFFHEAP_CORE_THREADS</code></a>, <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_MAX_THREADS"><code>OFFHEAP_MAX_THREADS</code></a> and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#OFFHEAP_KEEP_ALIVE"><code>OFFHEAP_KEEP_ALIVE</code></a> are used to configure the core, max and keepalive
attributes for the <code>ThreadPoolExecutor</code> which
implements the eviction thread pool.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.offHeap.keepAlive"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>10 min</td>
<td>1 s</td>
<td>1 d</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.OFFHEAP_KEEP_ALIVE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CHECKPOINTER_BYTES_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHECKPOINTER_BYTES_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String CHECKPOINTER_BYTES_INTERVAL</pre>
<div class="block">Ask the checkpointer to run every time we write this many bytes to the
log. If set, supersedes <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_WAKEUP_INTERVAL"><code>CHECKPOINTER_WAKEUP_INTERVAL</code></a>. To use
time based checkpointing, set this to 0.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.checkpointer.bytesInterval"</td>
<td>Long</td>
<td>No</td>
<td>20000000 (20M)</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CHECKPOINTER_BYTES_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CHECKPOINTER_WAKEUP_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHECKPOINTER_WAKEUP_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String CHECKPOINTER_WAKEUP_INTERVAL</pre>
<div class="block">The checkpointer wakeup interval in microseconds. By default, this
is inactive and we wakeup the checkpointer as a function of the
number of bytes written to the log (<a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_BYTES_INTERVAL"><code>CHECKPOINTER_BYTES_INTERVAL</code></a>).
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.checkpointer.wakeupInterval"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>0</td>
<td>1 s</td>
<td>75 min</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CHECKPOINTER_WAKEUP_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CHECKPOINTER_DEADLOCK_RETRY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHECKPOINTER_DEADLOCK_RETRY</h4>
<pre>public static final&nbsp;java.lang.String CHECKPOINTER_DEADLOCK_RETRY</pre>
<div class="block">The number of times to retry a checkpoint if it runs into a deadlock.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.checkpointer.deadlockRetry"</td>
<td>Integer</td>
<td>No</td>
<td>3</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CHECKPOINTER_DEADLOCK_RETRY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CHECKPOINTER_HIGH_PRIORITY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHECKPOINTER_HIGH_PRIORITY</h4>
<pre>public static final&nbsp;java.lang.String CHECKPOINTER_HIGH_PRIORITY</pre>
<div class="block">If true, the checkpointer uses more resources in order to complete the
checkpoint in a shorter time interval. Btree latches are held and other
threads are blocked for a longer period. When set to true, application
response time may be longer during a checkpoint.
<p><table border"1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.checkpointer.highPriority"</td>
<td>Boolean</td>
<td>Yes</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CHECKPOINTER_HIGH_PRIORITY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_MIN_UTILIZATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_MIN_UTILIZATION</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_MIN_UTILIZATION</pre>
<div class="block">The cleaner will keep the total disk space utilization percentage above
this value.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.minUtilization"</td>
<td>Integer</td>
<td>Yes</td>
<td>50</td>
<td>0</td>
<td>90</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_MIN_UTILIZATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_MIN_FILE_UTILIZATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_MIN_FILE_UTILIZATION</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_MIN_FILE_UTILIZATION</pre>
<div class="block">A log file will be cleaned if its utilization percentage is below this
value, irrespective of total utilization.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.minFileUtilization"</td>
<td>Integer</td>
<td>Yes</td>
<td>5</td>
<td>0</td>
<td>50</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_MIN_FILE_UTILIZATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_BYTES_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_BYTES_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_BYTES_INTERVAL</pre>
<div class="block">The cleaner checks disk utilization every time we write this many bytes
to the log. If zero (and by default) it is set to either the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_FILE_MAX"><code>LOG_FILE_MAX</code></a> value divided by four, or to 100 MB, whichever is
smaller.
<p>When overriding the default value, use caution to ensure that the
cleaner is woken frequently enough, so that reserved files are deleted
quickly enough to avoid violating a disk limit.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.bytesInterval"</td>
<td>Long</td>
<td>Yes</td>
<td>0</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_WAKEUP_INTERVAL"><code>CLEANER_WAKEUP_INTERVAL</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_BYTES_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_WAKEUP_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_WAKEUP_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_WAKEUP_INTERVAL</pre>
<div class="block">The cleaner checks whether cleaning is needed if this interval elapses
without any writing, to handle the case where cleaning or checkpointing
is necessary to reclaim disk space, but writing has stopped. This
addresses the problem that <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_BYTES_INTERVAL"><code>CLEANER_BYTES_INTERVAL</code></a> may not cause
cleaning, and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_BYTES_INTERVAL"><code>CHECKPOINTER_BYTES_INTERVAL</code></a> may not cause
checkpointing, when enough writing has not occurred to exceed these
intervals.
<p>If this parameter is set to zero, the cleaner wakeup interval is
disabled, and cleaning and checkpointing will occur only via <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_BYTES_INTERVAL"><code>CLEANER_BYTES_INTERVAL</code></a>, <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_BYTES_INTERVAL"><code>CHECKPOINTER_BYTES_INTERVAL</code></a>, and
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_WAKEUP_INTERVAL"><code>CHECKPOINTER_WAKEUP_INTERVAL</code></a>.</p>
<p>For example, if a database were removed or truncated, or large
records were deleted, the amount written to the log may not exceed
CLEANER_BYTES_INTERVAL. If writing were to stop at that point, no
cleaning would occur, if it were not for the wakeup interval.</p>
<p>In addition, even when cleaning is performed, a checkpoint is
additionally needed to reclaim disk space. This may not occur if
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_BYTES_INTERVAL"><code>CHECKPOINTER_BYTES_INTERVAL</code></a> or
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#CHECKPOINTER_WAKEUP_INTERVAL"><code>CHECKPOINTER_WAKEUP_INTERVAL</code></a> does not happen to cause a
checkpoint after write operations have stopped. If files have been
cleaned and a checkpoint is needed to reclaim space, and write
operations have stopped, a checkpoint will be scheduled when the
CLEANER_WAKEUP_INTERVAL elapses. The checkpoint will be performed in the
JE checkpointer thread if it is not disabled, or when
<a href="../../../com/sleepycat/je/Environment.html#checkpoint-com.sleepycat.je.CheckpointConfig-"><code>Environment.checkpoint(com.sleepycat.je.CheckpointConfig)</code></a> is called.</p>
<p>In test environments it is fairly common for application writing to
stop, and then to expect cleaning to occur as a result of the last set
of operations. This situation may also arise in production environments,
for example, during repair of an out-of-disk situation.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.wakeupInterval"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>10 s</td>
<td>0</td>
<td>10 h</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_BYTES_INTERVAL"><code>CLEANER_BYTES_INTERVAL</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_WAKEUP_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_FETCH_OBSOLETE_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_FETCH_OBSOLETE_SIZE</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_FETCH_OBSOLETE_SIZE</pre>
<div class="block">If true, the cleaner will fetch records to determine their size and more
accurately calculate log utilization. Normally when a record is updated
or deleted without first being read (sometimes called a blind
delete/update), the size of the previous version of the record is
unknown and therefore the cleaner's utilization calculations may be
incorrect. Setting this parameter to true will cause a record to be
read during a blind delete/update, in order to determine its size. This
will ensure that the cleaner's utilization calculations are correct, but
will cause more (potentially random) IO.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.cleaner.fetchObsoleteSize"</td>
<td>Boolean</td>
<td>Yes</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_ADJUST_UTILIZATION"><code>CLEANER_ADJUST_UTILIZATION</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_FETCH_OBSOLETE_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_ADJUST_UTILIZATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_ADJUST_UTILIZATION</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_ADJUST_UTILIZATION</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">in JE 6.3. Adjustments are no longer needed because LN log
sizes have been stored in the Btree since JE 6.0.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_ADJUST_UTILIZATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_DEADLOCK_RETRY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_DEADLOCK_RETRY</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_DEADLOCK_RETRY</pre>
<div class="block">The number of times to retry cleaning if a deadlock occurs.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.deadlockRetry"</td>
<td>Integer</td>
<td>Yes</td>
<td>3</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_DEADLOCK_RETRY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_LOCK_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_LOCK_TIMEOUT</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_LOCK_TIMEOUT</pre>
<div class="block">The lock timeout for cleaner transactions in microseconds.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.lockTimeout"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>500 ms</td>
<td>0</td>
<td>75 min</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_LOCK_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_EXPUNGE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_EXPUNGE</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_EXPUNGE</pre>
<div class="block">If true (the default setting), the cleaner deletes log files after
successful cleaning.
This parameter may be set to false for diagnosing log cleaning problems.
For example, if a bug causes a LOG_FILE_NOT_FOUND exception, when
reproducing the problem it is often necessary to avoid deleting files so
they can be used for diagnosis. When this parameter is false:
<ul>
<li>
Rather than delete files that are successfully cleaned, the cleaner
renames them.
</li>
<li>
When renaming a file, its extension is changed from ".jdb" to ".del"
and its last modification date is set to the current time.
</li>
<li>
Depending on the setting of the <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_USE_DELETED_DIR"><code>CLEANER_USE_DELETED_DIR</code></a>
parameter, the file is either renamed in its current data directory
(the default), or moved into the "deleted" sub-directory.
</li>
</ul>
<p>
When this parameter is set to false, disk usage may grow without bounds
and the application is responsible for removing the cleaned files. It
may be necessary to write a script for deleting the least recently
cleaned files when disk usage is low. The .del extension and the last
modification time can be leveraged to write such a script. The "deleted"
sub-directory can be used to avoid granting write or delete permissions
for the main data directory to the script.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.cleaner.expunge"</td>
<td>Boolean</td>
<td>Yes</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_EXPUNGE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_USE_DELETED_DIR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_USE_DELETED_DIR</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_USE_DELETED_DIR</pre>
<div class="block">When <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_EXPUNGE"><code>CLEANER_EXPUNGE</code></a> is false, the <code>CLEANER_USE_DELETED_DIR</code> parameter determines whether successfully
cleaned files are moved to the "deleted" sub-directory.
<code>CLEANER_USE_DELETED_DIR</code> applies only when <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_EXPUNGE"><code>CLEANER_EXPUNGE</code></a> is false. When <a href="../../../com/sleepycat/je/EnvironmentConfig.html#CLEANER_EXPUNGE"><code>CLEANER_EXPUNGE</code></a> is true,
successfully cleaned files are deleted and the <code>CLEANER_USE_DELETED_DIR</code> parameter setting is ignored.
<p>
When <code>CLEANER_USE_DELETED_DIR</code> is true (and <code>CLEANER_EXPUNGE</code> is false), the cleaner will move successfully cleaned
data files (".jdb" files) to the "deleted" sub-directory of the
Environment directory, in addition to changing the file extension to
"*.del". In this case, the "deleted" sub-directory must have been
created by the application before opening the Environment. This allows
the application to control permissions on this sub-directory. When
multiple data directories are used (<a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_N_DATA_DIRECTORIES"><code>LOG_N_DATA_DIRECTORIES</code></a>), a
"deleted" sub-directory must be created under each data directory. Note
that <code>File.renameTo(File)</code> is used to move the file, and
this method may or may not support moving the file to a different volume
(when the "deleted" directory is a file system link) on a particular
platform.
<p>
When <code>CLEANER_USE_DELETED_DIR</code> is false (and <code>CLEANER_EXPUNGE</code> is false), the cleaner will change the file extension
of successfully cleaned data files from ".jdb" to ".del", but will not
move the files to a different directory.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.cleaner.useDeletedDir"</td>
<td>Boolean</td>
<td>Yes</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_USE_DELETED_DIR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_MIN_AGE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_MIN_AGE</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_MIN_AGE</pre>
<div class="block">The minimum age of a file (number of files between it and the active
file) to qualify it for cleaning under any conditions.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.minAge"</td>
<td>Integer</td>
<td>Yes</td>
<td>2</td>
<td>1</td>
<td>1000</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_MIN_AGE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_MAX_BATCH_FILES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_MAX_BATCH_FILES</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_MAX_BATCH_FILES</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">in 7.0. No longer used because the cleaner no longer has a
backlog.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_MAX_BATCH_FILES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_READ_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_READ_SIZE</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_READ_SIZE</pre>
<div class="block">The read buffer size for cleaning. If zero (the default), then <a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOG_ITERATOR_READ_SIZE"><code>LOG_ITERATOR_READ_SIZE</code></a> value is used.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.readSize"</td>
<td>Integer</td>
<td>Yes</td>
<td>0</td>
<td>128</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_READ_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_DETAIL_MAX_MEMORY_PERCENTAGE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_DETAIL_MAX_MEMORY_PERCENTAGE</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_DETAIL_MAX_MEMORY_PERCENTAGE</pre>
<div class="block">Tracking of detailed cleaning information will use no more than this
percentage of the cache. The default value is 2% of <a href="../../../com/sleepycat/je/EnvironmentConfig.html#MAX_MEMORY"><code>MAX_MEMORY</code></a>. If 0 and <a href="../../../com/sleepycat/je/EnvironmentConfig.html#SHARED_CACHE"><code>SHARED_CACHE</code></a> is true, use 2% divided by
N where N is the number of environments sharing the global cache.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.detailMaxMemoryPercentage"</td>
<td>Integer</td>
<td>Yes</td>
<td>2</td>
<td>1</td>
<td>90</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_DETAIL_MAX_MEMORY_PERCENTAGE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_FORCE_CLEAN_FILES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_FORCE_CLEAN_FILES</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_FORCE_CLEAN_FILES</pre>
<div class="block">Specifies a list of files or file ranges to be cleaned at a time when no
other log cleaning is necessary. This parameter is intended for use in
forcing the cleaning of a large number of log files. File numbers are
in hex and are comma separated or hyphen separated to specify ranges,
e.g.: '9,a,b-d' will clean 5 files.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.cleaner.forceCleanFiles"</td>
<td>String</td>
<td>No</td>
<td>""</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_FORCE_CLEAN_FILES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_UPGRADE_TO_LOG_VERSION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_UPGRADE_TO_LOG_VERSION</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_UPGRADE_TO_LOG_VERSION</pre>
<div class="block">All log files having a log version prior to the specified version will
be cleaned at a time when no other log cleaning is necessary. Intended
for use in upgrading old format log files forward to the current log
format version, e.g., to take advantage of format improvements; note
that log upgrading is optional. The default value zero (0) specifies
that no upgrading will occur. The value negative one (-1) specifies
upgrading to the current log version.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.upgradeToLogVersion"</td>
<td>Integer</td>
<td>No</td>
<td>0</td>
<td>-1</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_UPGRADE_TO_LOG_VERSION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_THREADS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_THREADS</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_THREADS</pre>
<div class="block">The number of threads allocated by the cleaner for log file processing.
If the cleaner backlog becomes large, try increasing this value.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.threads"</td>
<td>Integer</td>
<td>Yes</td>
<td>1</td>
<td>1</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_THREADS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_LOOK_AHEAD_CACHE_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_LOOK_AHEAD_CACHE_SIZE</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_LOOK_AHEAD_CACHE_SIZE</pre>
<div class="block">The look ahead cache size for cleaning in bytes. Increasing this value
can reduce the number of Btree lookups.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.cleaner.lookAheadCacheSize"</td>
<td>Integer</td>
<td>Yes</td>
<td>8192 (8K)</td>
<td>0</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_LOOK_AHEAD_CACHE_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_FOREGROUND_PROACTIVE_MIGRATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_FOREGROUND_PROACTIVE_MIGRATION</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_FOREGROUND_PROACTIVE_MIGRATION</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This parameter is ignored and proactive migration is no
longer supported due to its negative impact on eviction and Btree
splits. To reduce a cleaner backlog, configure more cleaner threads.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_FOREGROUND_PROACTIVE_MIGRATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_BACKGROUND_PROACTIVE_MIGRATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_BACKGROUND_PROACTIVE_MIGRATION</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_BACKGROUND_PROACTIVE_MIGRATION</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This parameter is ignored and proactive migration is no
longer supported due to its negative impact on eviction and
checkpointing. To reduce a cleaner backlog, configure more cleaner
threads.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_BACKGROUND_PROACTIVE_MIGRATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CLEANER_LAZY_MIGRATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLEANER_LAZY_MIGRATION</h4>
<pre>public static final&nbsp;java.lang.String CLEANER_LAZY_MIGRATION</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This parameter is ignored and lazy migration is no longer
supported due to its negative impact on eviction and checkpointing.
To reduce a cleaner backlog, configure more cleaner threads.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CLEANER_LAZY_MIGRATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DOS_PRODUCER_QUEUE_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DOS_PRODUCER_QUEUE_TIMEOUT</h4>
<pre>public static final&nbsp;java.lang.String DOS_PRODUCER_QUEUE_TIMEOUT</pre>
<div class="block">The timeout for Disk Ordered Scan producer thread queue offers in
milliseconds.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.diskOrderedScanLockTimeout"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>10 secs</td>
<td>0</td>
<td>75 min</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.DOS_PRODUCER_QUEUE_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCK_N_LOCK_TABLES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCK_N_LOCK_TABLES</h4>
<pre>public static final&nbsp;java.lang.String LOCK_N_LOCK_TABLES</pre>
<div class="block">Number of Lock Tables. Set this to a value other than 1 when an
application has multiple threads performing concurrent JE operations.
It should be set to a prime number, and in general not higher than the
number of application threads performing JE operations.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.lock.nLockTables"</td>
<td>Integer</td>
<td>No</td>
<td>1</td>
<td>1</td>
<td>32767 (32K)</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOCK_N_LOCK_TABLES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCK_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCK_TIMEOUT</h4>
<pre>public static final&nbsp;java.lang.String LOCK_TIMEOUT</pre>
<div class="block">Configures the default lock timeout. It may be overridden on a
per-transaction basis by calling
<a href="../../../com/sleepycat/je/Transaction.html#setLockTimeout-long-java.util.concurrent.TimeUnit-"><code>Transaction.setLockTimeout(long, TimeUnit)</code></a>.
<p>A value of zero disables lock timeouts. This is not recommended, even
when the application expects that deadlocks will not occur or will be
easily resolved. A lock timeout is a fall-back that guards against
unexpected "live lock", unresponsive threads, or application failure to
close a cursor or to commit or abort a transaction.</p>
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.lock.timeout"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>500 ms</td>
<td>0</td>
<td>75 min</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLockTimeout-long-java.util.concurrent.TimeUnit-"><code>setLockTimeout(long,TimeUnit)</code></a>,
<a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOCK_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCK_DEADLOCK_DETECT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCK_DEADLOCK_DETECT</h4>
<pre>public static final&nbsp;java.lang.String LOCK_DEADLOCK_DETECT</pre>
<div class="block">Whether to perform deadlock detection when a lock conflict occurs.
By default, deadlock detection is enabled (this parameter is true) in
order to reduce thread wait times when there are deadlocks.
<p>
Deadlock detection is performed as follows.
<ol>
<li>When a lock is requested by a record read or write operation, JE
checks for lock conflicts with another transaction or another
thread performing a non-transactional operation. If there is no
conflict, the lock is acquired and the operation returns
normally.</li>
<li>When there is a conflict, JE performs deadlock detection. However,
before performing deadlock detection, JE waits for the
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_DEADLOCK_DETECT_DELAY"><code>LOCK_DEADLOCK_DETECT_DELAY</code></a> interval, if it is non-zero.
This delay is useful for avoiding the overhead of deadlock
detection when normal, short-lived contention (not a deadlock) is
the reason for the conflict. If the lock is acquired during the
delay, the thread wakes up and the operation returns
normally.</li>
<li>If a deadlock is detected, <a href="../../../com/sleepycat/je/DeadlockException.html" title="class in com.sleepycat.je"><code>DeadlockException</code></a> is thrown in
one of the threads participating in the deadlock, called the
"victim". The victim is chosen at random to prevent a repeated
pattern of deadlocks, called "live lock". A non-victim thread that
detects a deadlock will notify the victim and perform short
delays, waiting for the deadlock to be broken; if the lock is
acquired, the operation returns normally.</li>
<li>It is possible for live lock to occur in spite of using random
victim selection. It is also possible that a deadlock is not
broken because the victim thread is unresponsive or the
application fails to close a cursor or to commit or abort a
transaction. In these cases, if the lock or transaction timeout
expires without acquiring the lock, a <code>DeadlockException</code> is
thrown for the last deadlock detected, in the thread that detected
the deadlock. In this case, <code>DeadlockException</code> may be
thrown by more than one thread participating in the deadlock.
</li>
<li>When no deadlock is detected, JE waits for the lock or transaction
timeout to expire. If the lock is acquired during this delay, the
thread wakes up and the operation returns normally.</li>
<li>When the lock or transaction timeout expires without acquiring the
lock, JE checks for deadlocks one final time. If a deadlock is
detected, <code>DeadlockException</code> is thrown; otherwise,
<a href="../../../com/sleepycat/je/LockTimeoutException.html" title="class in com.sleepycat.je"><code>LockTimeoutException</code></a> or
<a href="../../../com/sleepycat/je/TransactionTimeoutException.html" title="class in com.sleepycat.je"><code>TransactionTimeoutException</code></a>is thrown.</li>
</ol>
<p>
Deadlock detection may be disabled (by setting this parameter to false)
in applications that are known to be free of deadlocks, and this may
provide a slight performance improvement in certain scenarios. However,
this is not recommended because deadlock-free operation is difficult to
guarantee. If deadlock detection is disabled, JE skips steps 2, 3 and 4
above. However, deadlock detection is always performed in the last step,
and <code>DeadlockException</code> may be thrown.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.lock.deadlockDetect"</td>
<td>Boolean</td>
<td>No</td>
<td>true</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOCK_DEADLOCK_DETECT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCK_DEADLOCK_DETECT_DELAY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCK_DEADLOCK_DETECT_DELAY</h4>
<pre>public static final&nbsp;java.lang.String LOCK_DEADLOCK_DETECT_DELAY</pre>
<div class="block">The delay after a lock conflict, before performing deadlock detection.
This delay is used to avoid the overhead of deadlock detection when
normal contention (not a deadlock) is the reason for the conflict. See
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_DEADLOCK_DETECT"><code>LOCK_DEADLOCK_DETECT</code></a> for more information.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.lock.deadlockDetectDelay"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>0</td>
<td>0</td>
<td>75 min</td>
</tr>
</table></p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>7.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOCK_DEADLOCK_DETECT_DELAY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCK_OLD_LOCK_EXCEPTIONS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCK_OLD_LOCK_EXCEPTIONS</h4>
<pre>public static final&nbsp;java.lang.String LOCK_OLD_LOCK_EXCEPTIONS</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since JE 6.5; has no effect, as if it were set to false.</span></div>
<div class="block">Used in JE releases 3.4 through 6.4 to throw old-style lock exceptions
for compatibility with JE release 3.3 and earlier.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.LOCK_OLD_LOCK_EXCEPTIONS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TXN_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TXN_TIMEOUT</h4>
<pre>public static final&nbsp;java.lang.String TXN_TIMEOUT</pre>
<div class="block">Configures the transaction timeout.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.txn.timeout"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>0</td>
<td>0</td>
<td>75 min</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTxnTimeout-long-java.util.concurrent.TimeUnit-"><code>setTxnTimeout(long, java.util.concurrent.TimeUnit)</code></a>,
<a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TXN_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TXN_SERIALIZABLE_ISOLATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TXN_SERIALIZABLE_ISOLATION</h4>
<pre>public static final&nbsp;java.lang.String TXN_SERIALIZABLE_ISOLATION</pre>
<div class="block">Configures all transactions for this environment to have Serializable
(Degree 3) isolation. By setting Serializable isolation, phantoms will
be prevented. By default transactions provide Repeatable Read
isolation.
The default is false for the database environment.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.txn.serializableIsolation"</td>
<td>Boolean</td>
<td>No</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTxnSerializableIsolation-boolean-"><code>setTxnSerializableIsolation(boolean)</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TXN_SERIALIZABLE_ISOLATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TXN_DURABILITY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TXN_DURABILITY</h4>
<pre>public static final&nbsp;java.lang.String TXN_DURABILITY</pre>
<div class="block">Configures the default durability associated with transactions.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.txn.durability"</td>
<td>String</td>
<td>Yes</td>
<td>null</td>
</tr>
</table></p>
The format of the durability string is described at
<a href="../../../com/sleepycat/je/Durability.html#parse-java.lang.String-"><code>Durability.parse(String)</code></a></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/Durability.html" title="class in com.sleepycat.je"><code>Durability</code></a>,
<a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setDurability-com.sleepycat.je.Durability-"><code>EnvironmentMutableConfig.setDurability(com.sleepycat.je.Durability)</code></a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TXN_DURABILITY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TXN_DEADLOCK_STACK_TRACE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TXN_DEADLOCK_STACK_TRACE</h4>
<pre>public static final&nbsp;java.lang.String TXN_DEADLOCK_STACK_TRACE</pre>
<div class="block">Set this parameter to true to add stacktrace information to deadlock
(lock timeout) exception messages. The stack trace will show where each
lock was taken. The default is false, and true should only be used
during debugging because of the added memory/processing cost. This
parameter is 'static' across all environments.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.txn.deadlockStackTrace"</td>
<td>Boolean</td>
<td>Yes</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TXN_DEADLOCK_STACK_TRACE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TXN_DUMP_LOCKS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TXN_DUMP_LOCKS</h4>
<pre>public static final&nbsp;java.lang.String TXN_DUMP_LOCKS</pre>
<div class="block">Dump the lock table when a lock timeout is encountered, for debugging
assistance.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.txn.dumpLocks"</td>
<td>Boolean</td>
<td>Yes</td>
<td>false</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TXN_DUMP_LOCKS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_FILE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_FILE</h4>
<pre>public static final&nbsp;java.lang.String TRACE_FILE</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">in favor of <code>FILE_LOGGING_LEVEL</code> As of JE 4.0,
use the standard java.util.logging configuration methodologies. To
enable logging output to the je.info files, set
com.sleepycat.je.util.FileHandler.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager. To set the handler level programmatically,
set "com.sleepycat.je.util.FileHandler.level" in the EnvironmentConfig
object.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_FILE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_CONSOLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_CONSOLE</h4>
<pre>public static final&nbsp;java.lang.String TRACE_CONSOLE</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">in favor of <code>CONSOLE_LOGGING_LEVEL</code> As of JE
4.0, use the standard java.util.logging configuration
methodologies. To enable console output, set
com.sleepycat.je.util.ConsoleHandler.level = &lt;LEVEL&gt; through
the java.util.logging configuration file, or through the
java.util.logging.LogManager. To set the handler level programmatically,
set "com.sleepycat.je.util.ConsoleHandler.level" in the
EnvironmentConfig object.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_CONSOLE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_DB">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_DB</h4>
<pre>public static final&nbsp;java.lang.String TRACE_DB</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of JE 4.0, event tracing to the .jdb files has been
separated from the java.util.logging mechanism. This parameter has
no effect.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_DB">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_FILE_LIMIT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_FILE_LIMIT</h4>
<pre>public static final&nbsp;java.lang.String TRACE_FILE_LIMIT</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To set the FileHandler output file size,
set com.sleepycat.je.util.FileHandler.limit = &lt;NUMBER&gt;
through the java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_FILE_LIMIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_FILE_COUNT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_FILE_COUNT</h4>
<pre>public static final&nbsp;java.lang.String TRACE_FILE_COUNT</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To set the FileHandler output file count,
set com.sleepycat.je.util.FileHandler.count = &lt;NUMBER&gt;
through the java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_FILE_COUNT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_LEVEL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_LEVEL</h4>
<pre>public static final&nbsp;java.lang.String TRACE_LEVEL</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. Set logging levels using class names
through the java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_LEVEL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CONSOLE_LOGGING_LEVEL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CONSOLE_LOGGING_LEVEL</h4>
<pre>public static final&nbsp;java.lang.String CONSOLE_LOGGING_LEVEL</pre>
<div class="block">Trace messages equal and above this level will be logged to the
console. Value should be one of the predefined
java.util.logging.Level values.
<p>
Setting this parameter in the je.properties file or through <a href="../../../com/sleepycat/je/EnvironmentConfig.html#setConfigParam-java.lang.String-java.lang.String-"><code>setConfigParam(java.lang.String, java.lang.String)</code></a> is analogous to setting
the property in the java.util.logging properties file or MBean.
It is preferred to use the standard java.util.logging mechanisms for
configuring java.util.logging.Handler, but this JE parameter is provided
because the java.util.logging API doesn't provide a method to set
handler levels programmatically.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"com.sleepycat.je.util.ConsoleHandler.level"</td>
<td>String</td>
<td>No</td>
<td>"OFF"</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../GettingStartedGuide/managelogging.html"
target="_top">Chapter 12. Logging</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.CONSOLE_LOGGING_LEVEL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FILE_LOGGING_LEVEL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FILE_LOGGING_LEVEL</h4>
<pre>public static final&nbsp;java.lang.String FILE_LOGGING_LEVEL</pre>
<div class="block">Trace messages equal and above this level will be logged to the je.info
file, which is in the Environment home directory. Value should
be one of the predefined java.util.logging.Level values.
<p>
Setting this parameter in the je.properties file or through <a href="../../../com/sleepycat/je/EnvironmentConfig.html#setConfigParam-java.lang.String-java.lang.String-"><code>setConfigParam(java.lang.String, java.lang.String)</code></a> is analogous to setting
the property in the java.util.logging properties file or MBean.
It is preferred to use the standard java.util.logging mechanisms for
configuring java.util.logging.Handler, but this JE parameter is provided
because the java.util.logging APIs doesn't provide a method to set
handler levels programmatically.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"com.sleepycat.je.util.FileHandler.level"</td>
<td>String</td>
<td>No</td>
<td>"INFO"</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../GettingStartedGuide/managelogging.html"
target="_top">Chapter 12. Logging</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.FILE_LOGGING_LEVEL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_LEVEL_LOCK_MANAGER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_LEVEL_LOCK_MANAGER</h4>
<pre>public static final&nbsp;java.lang.String TRACE_LEVEL_LOCK_MANAGER</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To see locking logging, set
com.sleepycat.je.txn.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_LEVEL_LOCK_MANAGER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_LEVEL_RECOVERY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_LEVEL_RECOVERY</h4>
<pre>public static final&nbsp;java.lang.String TRACE_LEVEL_RECOVERY</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To see recovery logging, set
com.sleepycat.je.recovery.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_LEVEL_RECOVERY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_LEVEL_EVICTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_LEVEL_EVICTOR</h4>
<pre>public static final&nbsp;java.lang.String TRACE_LEVEL_EVICTOR</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To see evictor logging, set
com.sleepycat.je.evictor.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_LEVEL_EVICTOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TRACE_LEVEL_CLEANER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACE_LEVEL_CLEANER</h4>
<pre>public static final&nbsp;java.lang.String TRACE_LEVEL_CLEANER</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of JE 4.0, use the standard java.util.logging
configuration methodologies. To see cleaner logging, set
com.sleepycat.je.cleaner.level = &lt;LEVEL&gt; through the
java.util.logging configuration file, or through the
java.util.logging.LogManager.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.TRACE_LEVEL_CLEANER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STARTUP_DUMP_THRESHOLD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STARTUP_DUMP_THRESHOLD</h4>
<pre>public static final&nbsp;java.lang.String STARTUP_DUMP_THRESHOLD</pre>
<div class="block">If environment startup exceeds this duration, startup statistics are
logged and can be found in the je.info file.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.env.startupThreshold"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>No</td>
<td>5 min</td>
<td>0</td>
<td>none</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.STARTUP_DUMP_THRESHOLD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATS_COLLECT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATS_COLLECT</h4>
<pre>public static final&nbsp;java.lang.String STATS_COLLECT</pre>
<div class="block">If true collect and log statistics. The statistics are logged in CSV
format and written to the log file at a user specified interval.
The logging occurs per-Environment when the Environment is opened
in read/write mode. Statistics are written to a filed named je.stat.csv.
Successively older files are named by adding "0", "1", "2", etc into
the file name. The file name format is je.stat.[version number].csv.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.stats.collect"</td>
<td>Boolean</td>
<td>Yes</td>
<td>True</td>
<td>0</td>
<td>none</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.STATS_COLLECT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATS_MAX_FILES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATS_MAX_FILES</h4>
<pre>public static final&nbsp;java.lang.String STATS_MAX_FILES</pre>
<div class="block">Maximum number of statistics log files to retain. The rotating set of
files, as each file reaches a given size limit, is closed, rotated out,
and a new file opened. The name of the log file is je.stat.csv.
Successively older files are named by adding "0", "1", "2", etc into
the file name. The file name format is je.stat.[version number].csv.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.stats.max.files"</td>
<td>Integer</td>
<td>Yes</td>
<td>10</td>
<td>1</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.STATS_MAX_FILES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATS_FILE_ROW_COUNT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATS_FILE_ROW_COUNT</h4>
<pre>public static final&nbsp;java.lang.String STATS_FILE_ROW_COUNT</pre>
<div class="block">Log file maximum row count for Stat collection. When the number of
rows in the statistics file reaches the maximum row count, the file
is closed, rotated out, and a new file opened. The name of the log
file is je.stat.csv. Successively older files are named by adding "0",
"1", "2", etc into the file name. The file name format is
je.stat.[version number].csv.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.stats.file.row.count"</td>
<td>Integer</td>
<td>Yes</td>
<td>1440</td>
<td>1</td>
<td>-none-</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.STATS_FILE_ROW_COUNT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATS_COLLECT_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATS_COLLECT_INTERVAL</h4>
<pre>public static final&nbsp;java.lang.String STATS_COLLECT_INTERVAL</pre>
<div class="block">The duration of the statistics capture interval. Statistics are captured
and written to the log file at this interval.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td>
<td>Default</td><td>Minimum</td><td>Maximum</td></tr>
<tr>
<td>"je.stats.collect.interval"</td>
<td><a href="#timeDuration">Duration</a></td>
<td>Yes</td>
<td>1 min</td>
<td>1 s</td>
<td>24 d</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="EnvironmentConfig.html#timeDuration">Time Duration
Properties</a>,
<a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.STATS_COLLECT_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STATS_FILE_DIRECTORY">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>STATS_FILE_DIRECTORY</h4>
<pre>public static final&nbsp;java.lang.String STATS_FILE_DIRECTORY</pre>
<div class="block">The directory to save the statistics log file.
<p><table border="1">
<tr><td>Name</td><td>Type</td><td>Mutable</td><td>Default</td></tr>
<tr>
<td>"je.stats.file.directory"</td>
<td>String</td>
<td>No</td>
<td>"NULL-> Environment home directory"</td>
</tr>
</table></p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.sleepycat.je.EnvironmentConfig.STATS_FILE_DIRECTORY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="EnvironmentConfig--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EnvironmentConfig</h4>
<pre>public&nbsp;EnvironmentConfig()</pre>
<div class="block">Creates an EnvironmentConfig initialized with the system default
settings.</div>
</li>
</ul>
<a name="EnvironmentConfig-java.util.Properties-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EnvironmentConfig</h4>
<pre>public&nbsp;EnvironmentConfig(java.util.Properties&nbsp;properties)
throws java.lang.IllegalArgumentException</pre>
<div class="block">Creates an EnvironmentConfig which includes the properties specified in
the properties parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - Supported properties are described in this class</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If any properties read from the
properties param are invalid.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setAllowCreate-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAllowCreate</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setAllowCreate(boolean&nbsp;allowCreate)</pre>
<div class="block">If true, creates the database environment if it doesn't already exist.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>allowCreate</code> - If true, the database environment is created if it
doesn't already exist.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
</dl>
</li>
</ul>
<a name="getAllowCreate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllowCreate</h4>
<pre>public&nbsp;boolean&nbsp;getAllowCreate()</pre>
<div class="block">Returns a flag that specifies if we may create this environment.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if we may create this environment.</dd>
</dl>
</li>
</ul>
<a name="setLockTimeout-long-java.util.concurrent.TimeUnit-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLockTimeout</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setLockTimeout(long&nbsp;timeout,
java.util.concurrent.TimeUnit&nbsp;unit)
throws java.lang.IllegalArgumentException</pre>
<div class="block">Convenience method for setting <a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_TIMEOUT"><code>LOCK_TIMEOUT</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - The lock timeout for all transactional and
non-transactional operations, or zero to disable lock timeouts.</dd>
<dd><code>unit</code> - the <code>TimeUnit</code> of the timeout value. May be null only
if timeout is zero.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the value of timeout is invalid</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#LOCK_TIMEOUT"><code>LOCK_TIMEOUT</code></a>,
<a href="../../../com/sleepycat/je/Transaction.html#setLockTimeout-long-java.util.concurrent.TimeUnit-"><code>Transaction.setLockTimeout(long,TimeUnit)</code></a></dd>
</dl>
</li>
</ul>
<a name="setLockTimeout-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLockTimeout</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setLockTimeout(long&nbsp;timeout)
throws java.lang.IllegalArgumentException</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 4.0, replaced by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#setLockTimeout-long-java.util.concurrent.TimeUnit-"><code>setLockTimeout(long,
TimeUnit)</code></a>.</span></div>
<div class="block">Configures the lock timeout, in microseconds. This method is equivalent
to:
<pre>setLockTimeout(long, TimeUnit.MICROSECONDS);</pre></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code></dd>
</dl>
</li>
</ul>
<a name="getLockTimeout-java.util.concurrent.TimeUnit-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLockTimeout</h4>
<pre>public&nbsp;long&nbsp;getLockTimeout(java.util.concurrent.TimeUnit&nbsp;unit)</pre>
<div class="block">Returns the lock timeout setting.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>unit</code> - the <code>TimeUnit</code> of the returned value. May not be null.
A value of 0 means no timeout is set.</dd>
</dl>
</li>
</ul>
<a name="getLockTimeout--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLockTimeout</h4>
<pre>public&nbsp;long&nbsp;getLockTimeout()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 4.0, replaced by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#getLockTimeout-java.util.concurrent.TimeUnit-"><code>getLockTimeout(TimeUnit)</code></a>.</span></div>
<div class="block">Returns the lock timeout setting, in microseconds. This method is
equivalent to:
<pre>getLockTimeout(TimeUnit.MICROSECONDS);</pre></div>
</li>
</ul>
<a name="setReadOnly-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setReadOnly</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setReadOnly(boolean&nbsp;readOnly)</pre>
<div class="block">Convenience method for setting <a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_READ_ONLY"><code>ENV_READ_ONLY</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>readOnly</code> - If true, configure the database environment to be read
only, and any attempt to modify a database will fail.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
</dl>
</li>
</ul>
<a name="getReadOnly--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadOnly</h4>
<pre>public&nbsp;boolean&nbsp;getReadOnly()</pre>
<div class="block">Returns true if the database environment is configured to be read only.
<p>This method may be called at any time during the life of the
application.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the database environment is configured to be read only.</dd>
</dl>
</li>
</ul>
<a name="setTransactional-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTransactional</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setTransactional(boolean&nbsp;transactional)</pre>
<div class="block">Convenience method for setting
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_IS_TRANSACTIONAL"><code>ENV_IS_TRANSACTIONAL</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transactional</code> - If true, configure the database environment for
transactions.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
</dl>
</li>
</ul>
<a name="getTransactional--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransactional</h4>
<pre>public&nbsp;boolean&nbsp;getTransactional()</pre>
<div class="block">Returns true if the database environment is configured for transactions.
<p>This method may be called at any time during the life of the
application.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the database environment is configured for transactions.</dd>
</dl>
</li>
</ul>
<a name="setLocking-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLocking</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setLocking(boolean&nbsp;locking)</pre>
<div class="block">Convenience method for setting
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#ENV_IS_LOCKING"><code>ENV_IS_LOCKING</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locking</code> - If false, configure the database environment for no
locking. The default is true.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
</dl>
</li>
</ul>
<a name="getLocking--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocking</h4>
<pre>public&nbsp;boolean&nbsp;getLocking()</pre>
<div class="block">Returns true if the database environment is configured for locking.
<p>This method may be called at any time during the life of the
application.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the database environment is configured for locking.</dd>
</dl>
</li>
</ul>
<a name="setTxnTimeout-long-java.util.concurrent.TimeUnit-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTxnTimeout</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setTxnTimeout(long&nbsp;timeout,
java.util.concurrent.TimeUnit&nbsp;unit)
throws java.lang.IllegalArgumentException</pre>
<div class="block">A convenience method for setting <a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_TIMEOUT"><code>TXN_TIMEOUT</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - The transaction timeout. A value of 0 turns off
transaction timeouts.</dd>
<dd><code>unit</code> - the <code>TimeUnit</code> of the timeout value. May be null only
if timeout is zero.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If the value of timeout is negative</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_TIMEOUT"><code>TXN_TIMEOUT</code></a>,
<a href="../../../com/sleepycat/je/Transaction.html#setTxnTimeout-long-java.util.concurrent.TimeUnit-"><code>Transaction.setTxnTimeout(long, java.util.concurrent.TimeUnit)</code></a></dd>
</dl>
</li>
</ul>
<a name="setTxnTimeout-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTxnTimeout</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setTxnTimeout(long&nbsp;timeout)
throws java.lang.IllegalArgumentException</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 4.0, replaced by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#setTxnTimeout-long-java.util.concurrent.TimeUnit-"><code>setTxnTimeout(long,
TimeUnit)</code></a>.</span></div>
<div class="block">Configures the transaction timeout, in microseconds. This method is
equivalent to:
<pre>setTxnTimeout(long, TimeUnit.MICROSECONDS);</pre></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code></dd>
</dl>
</li>
</ul>
<a name="getTxnTimeout-java.util.concurrent.TimeUnit-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTxnTimeout</h4>
<pre>public&nbsp;long&nbsp;getTxnTimeout(java.util.concurrent.TimeUnit&nbsp;unit)</pre>
<div class="block">A convenience method for getting <a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_TIMEOUT"><code>TXN_TIMEOUT</code></a>.
<p>A value of 0 means transaction timeouts are not configured.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>unit</code> - the <code>TimeUnit</code> of the returned value. May not be null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The transaction timeout.</dd>
</dl>
</li>
</ul>
<a name="getTxnTimeout--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTxnTimeout</h4>
<pre>public&nbsp;long&nbsp;getTxnTimeout()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 4.0, replaced by <a href="../../../com/sleepycat/je/EnvironmentConfig.html#getTxnTimeout-java.util.concurrent.TimeUnit-"><code>getTxnTimeout(TimeUnit)</code></a>.</span></div>
<div class="block">Returns the transaction timeout, in microseconds. This method is
equivalent to:
<pre>getTxnTimeout(TimeUnit.MICROSECONDS);</pre></div>
</li>
</ul>
<a name="setTxnSerializableIsolation-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTxnSerializableIsolation</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setTxnSerializableIsolation(boolean&nbsp;txnSerializableIsolation)</pre>
<div class="block">A convenience method for setting
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_SERIALIZABLE_ISOLATION"><code>TXN_SERIALIZABLE_ISOLATION</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/LockMode.html" title="enum in com.sleepycat.je"><code>LockMode</code></a></dd>
</dl>
</li>
</ul>
<a name="getTxnSerializableIsolation--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTxnSerializableIsolation</h4>
<pre>public&nbsp;boolean&nbsp;getTxnSerializableIsolation()</pre>
<div class="block">A convenience method for getting
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#TXN_SERIALIZABLE_ISOLATION"><code>TXN_SERIALIZABLE_ISOLATION</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the environment has been configured to have repeatable
read isolation.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/sleepycat/je/LockMode.html" title="enum in com.sleepycat.je"><code>LockMode</code></a></dd>
</dl>
</li>
</ul>
<a name="setSharedCache-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSharedCache</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setSharedCache(boolean&nbsp;sharedCache)</pre>
<div class="block">A convenience method for setting the
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#SHARED_CACHE"><code>SHARED_CACHE</code></a> parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sharedCache</code> - If true, the shared cache is used by this
environment.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
</dl>
</li>
</ul>
<a name="getSharedCache--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSharedCache</h4>
<pre>public&nbsp;boolean&nbsp;getSharedCache()</pre>
<div class="block">A convenience method for getting the
<a href="../../../com/sleepycat/je/EnvironmentConfig.html#SHARED_CACHE"><code>SHARED_CACHE</code></a> parameter.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the shared cache is used by this environment. @see
#setSharedCache</dd>
</dl>
</li>
</ul>
<a name="setNodeName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNodeName</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setNodeName(java.lang.String&nbsp;nodeName)</pre>
<div class="block">Sets the user defined nodeName for the Environment. If set, exception
messages, logging messages, and thread names will have this nodeName
included in them. If a user has multiple Environments in a single JVM,
setting this to a string unique to each Environment may make it easier
to diagnose certain exception conditions as well as thread dumps.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
</dl>
</li>
</ul>
<a name="getNodeName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNodeName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getNodeName()</pre>
<div class="block">Returns the user defined nodeName for the Environment.</div>
</li>
</ul>
<a name="setCustomStats-com.sleepycat.je.CustomStats-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCustomStats</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setCustomStats(<a href="../../../com/sleepycat/je/CustomStats.html" title="interface in com.sleepycat.je">CustomStats</a>&nbsp;customStats)</pre>
<div class="block">Sets the custom statistics object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
</dl>
</li>
</ul>
<a name="getCustomStats--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCustomStats</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/CustomStats.html" title="interface in com.sleepycat.je">CustomStats</a>&nbsp;getCustomStats()</pre>
<div class="block">Gets the custom statstics object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>customStats</dd>
</dl>
</li>
</ul>
<a name="setLoggingHandler-java.util.logging.Handler-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLoggingHandler</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setLoggingHandler(java.util.logging.Handler&nbsp;handler)</pre>
<div class="block">Set a java.util.logging.Handler which will be used by all
java.util.logging.Loggers instantiated by this Environment. This lets
the application specify a handler which
<ul>
<li>requires a constructor with arguments</li>
<li>is specific to this environment, which is important if the
application is using multiple environments within the same process.
</ul>
Note that <code>Handler</code> is not serializable, and the logging
handler should be set within the same process.</div>
</li>
</ul>
<a name="getLoggingHandler--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLoggingHandler</h4>
<pre>public&nbsp;java.util.logging.Handler&nbsp;getLoggingHandler()</pre>
<div class="block">Returns the custom java.util.logging.Handler specified by the
application.</div>
</li>
</ul>
<a name="setConfigParam-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConfigParam</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setConfigParam(java.lang.String&nbsp;paramName,
java.lang.String&nbsp;value)
throws java.lang.IllegalArgumentException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setConfigParam-java.lang.String-java.lang.String-">EnvironmentMutableConfig</a></code></span></div>
<div class="block">Set this configuration parameter. First validate the value specified for
the configuration parameter; if it is valid, the value is set in the
configuration.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#setConfigParam-java.lang.String-java.lang.String-">setConfigParam</a></code>&nbsp;in class&nbsp;<code><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html" title="class in com.sleepycat.je">EnvironmentMutableConfig</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>paramName</code> - the configuration parameter name, one of the String
constants in this class</dd>
<dd><code>value</code> - The configuration value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the paramName or value is invalid.</dd>
</dl>
</li>
</ul>
<a name="setRecoveryProgressListener-com.sleepycat.je.ProgressListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRecoveryProgressListener</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setRecoveryProgressListener(<a href="../../../com/sleepycat/je/ProgressListener.html" title="interface in com.sleepycat.je">ProgressListener</a>&lt;<a href="../../../com/sleepycat/je/RecoveryProgress.html" title="enum in com.sleepycat.je">RecoveryProgress</a>&gt;&nbsp;progressListener)</pre>
<div class="block">Configure the environment to make periodic calls to a ProgressListener to
provide feedback on environment startup (recovery). The
ProgressListener.progress() method is called at different stages of
the recovery process. See <a href="../../../com/sleepycat/je/RecoveryProgress.html" title="enum in com.sleepycat.je"><code>RecoveryProgress</code></a> for information about
those stages.
<p>
When using progress listeners, review the information at <a href="../../../com/sleepycat/je/ProgressListener.html#progress-T-long-long-"><code>ProgressListener.progress(T, long, long)</code></a> to avoid any unintended disruption to
environment startup.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>progressListener</code> - The ProgressListener to callback during
environment startup (recovery).</dd>
</dl>
</li>
</ul>
<a name="getRecoveryProgressListener--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRecoveryProgressListener</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/ProgressListener.html" title="interface in com.sleepycat.je">ProgressListener</a>&lt;<a href="../../../com/sleepycat/je/RecoveryProgress.html" title="enum in com.sleepycat.je">RecoveryProgress</a>&gt;&nbsp;getRecoveryProgressListener()</pre>
<div class="block">Return the ProgressListener to be used at this environment startup.</div>
</li>
</ul>
<a name="setClassLoader-java.lang.ClassLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setClassLoader</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;setClassLoader(java.lang.ClassLoader&nbsp;classLoader)</pre>
<div class="block">Configure the environment to use a specified ClassLoader for loading
user-supplied classes by name.</div>
</li>
</ul>
<a name="getClassLoader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClassLoader</h4>
<pre>public&nbsp;java.lang.ClassLoader&nbsp;getClassLoader()</pre>
<div class="block">Returns the ClassLoader for loading user-supplied classes by name, or
null if no specified ClassLoader is configured.</div>
</li>
</ul>
<a name="clone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre>public&nbsp;<a href="../../../com/sleepycat/je/EnvironmentConfig.html" title="class in com.sleepycat.je">EnvironmentConfig</a>&nbsp;clone()</pre>
<div class="block">Returns a copy of this configuration object.</div>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Display configuration values.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html#toString--">toString</a></code>&nbsp;in class&nbsp;<code><a href="../../../com/sleepycat/je/EnvironmentMutableConfig.html" title="class in com.sleepycat.je">EnvironmentMutableConfig</a></code></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/EnvironmentConfig.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/Environment.html" title="class in com.sleepycat.je"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../com/sleepycat/je/EnvironmentFailureException.html" title="class in com.sleepycat.je"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/sleepycat/je/EnvironmentConfig.html" target="_top">Frames</a></li>
<li><a href="EnvironmentConfig.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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>