Files
cpython-source-deps/docs/gsg/JAVA/EnvProps.html
2017-09-04 13:40:25 -05:00

247 lines
9.9 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Environment Properties</title>
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.62.4" />
<link rel="home" href="index.html" title="Getting Started with Berkeley DB" />
<link rel="up" href="Env.html" title="Chapter 2. Database Environments" />
<link rel="previous" href="EnvClose.html" title="Closing Database Environments" />
<link rel="next" href="dpl.html" title="Part I. Programming with the Direct Persistence Layer" />
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Environment Properties</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="EnvClose.html">Prev</a> </td>
<th width="60%" align="center">Chapter 2. Database Environments</th>
<td width="20%" align="right"> <a accesskey="n" href="dpl.html">Next</a></td>
</tr>
</table>
<hr />
</div>
<div class="sect1" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a id="EnvProps"></a>Environment Properties</h2>
</div>
</div>
<div></div>
</div>
<p>You set properties for the <tt class="classname">Environment</tt> using
the <tt class="classname">EnvironmentConfig</tt> class. You can also set properties for a specific
<tt class="classname">Environment</tt> instance using <tt class="classname">EnvironmentMutableConfig</tt>.
</p>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="envconfig"></a>The EnvironmentConfig Class</h3>
</div>
</div>
<div></div>
</div>
<p>
The <tt class="classname">EnvironmentConfig</tt> class makes a
large number of fields and methods available to you. Describing all of these
tuning parameters is beyond the scope of this manual. However, there are a
few properties that you are likely to want to set. They are described
here.</p>
<p>Note that for each of the properties that you can commonly set, there is a
corresponding getter method. Also, you can always retrieve the
<tt class="classname">EnvironmentConfig</tt> object used by your environment
using the <tt class="methodname">Environment.getConfig()</tt> method.
</p>
<p>
You set environment configuration parameters using the following methods on the
<tt class="classname">EnvironmentConfig</tt> class:
</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>
<tt class="methodname">EnvironmentConfig.setAllowCreate()</tt>
</p>
<p>If <tt class="literal">true</tt>, the database environment is created
when it is opened. If <tt class="literal">false</tt>, environment open fails if the environment
does not exist. This property has no meaning if the database
environment already exists. Default is <tt class="literal">false</tt>.</p>
</li>
<li>
<p>
<tt class="methodname">EnvironmentConfig.setReadOnly()</tt>
</p>
<p>If <tt class="literal">true</tt>, then all databases opened in this
environment must be opened as read-only. If you are writing a
multi-process application, then all but one of your processes must set
this value to <tt class="literal">true</tt>. Default is <tt class="literal">false</tt>.</p>
</li>
<li>
<p>
<tt class="methodname">EnvironmentConfig.setTransactional()</tt>
</p>
<p>If <tt class="literal">true</tt>, configures the database environment
to support transactions. Default is <tt class="literal">false</tt>.</p>
</li>
</ul>
</div>
<p>For example:</p>
<pre class="programlisting">package db.gettingStarted;
import com.sleepycat.db.DatabaseException;
import com.sleepycat.db.Environment;
import com.sleepycat.db.EnvironmentConfig;
import java.io.File;
import java.io.FileNotFoundException;
...
Environment myDatabaseEnvironment = null;
try {
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);
envConfig.setTransactional(true);
myDatabaseEnvironment =
new Environment(new File("/export/dbEnv"), envConfig);
} catch (DatabaseException dbe) {
System.err.println(dbe.toString());
System.exit(1);
} catch (FileNotFoundException fnfe) {
System.err.println(fnfe.toString());
System.exit(-1);
} </pre>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="envhandleconfig"></a>EnvironmentMutableConfig</h3>
</div>
</div>
<div></div>
</div>
<p>
<tt class="classname">EnvironmentMutableConfig</tt> manages properties that can be reset after the
<tt class="classname">Environment</tt> object has been constructed. In addition, <tt class="classname">EnvironmentConfig</tt>
extends <tt class="classname">EnvironmentMutableConfig</tt>, so you can set these mutable properties at
<tt class="classname">Environment</tt> construction time if necessary.
</p>
<p>
The <tt class="classname">EnvironmentMutableConfig</tt> class allows you to set the following
properties:
</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>
<tt class="literal">setCachePercent()</tt>
</p>
<p>
Determines the percentage of JVM memory available to the DB cache.
See <a href="cachesize.html">Selecting the Cache Size</a>
for more information.
</p>
</li>
<li>
<p>
<tt class="literal">setCacheSize()</tt>
</p>
<p>
Determines the total amount of memory available to the database cache.
See <a href="cachesize.html">Selecting the Cache Size</a>
for more information.
</p>
</li>
<li>
<p>
<tt class="literal">setTxnNoSync()</tt>
</p>
<p>
Determines whether change records created due to a transaction commit are written to the backing
log files on disk. A value of <tt class="literal">true</tt> causes
the data to not be flushed to
disk. See the
<i class="citetitle">Getting Started with Transaction Processing for Java</i>
guide for more information.
</p>
</li>
<li>
<p>
<tt class="literal">setTxnWriteNoSync()</tt>
</p>
<p>
Determines whether logs are flushed on transaction commit (the logs are still written, however).
By setting this value to <tt class="literal">true</tt>, you potentially gain better performance than if
you flush the logs on commit, but you do so by losing some of your transaction durability guarantees.
See the
<i class="citetitle">Getting Started with Transaction Processing for Java</i>
guide for more information.
</p>
</li>
</ul>
</div>
<p>
There is also a corresponding getter method (<tt class="methodname">getTxnNoSync()</tt>).
Moreover, you can always retrieve your environment's
<tt class="classname">EnvironmentMutableConfig</tt> object by
using the <tt class="methodname">Environment.getMutableConfig()</tt> method.
</p>
<p>
For example:
</p>
<pre class="programlisting">package db.gettingStarted;
import com.sleepycat.db.DatabaseException;
import com.sleepycat.db.Environment;
import com.sleepycat.db.EnvironmentMutableConfig;
import java.io.File;
import java.io.FileNotFoundException;
...
try {
Environment myEnv = new Environment(new File("/export/dbEnv"), null);
EnvironmentMutableConfig envMutableConfig =
new EnvironmentMutableConfig();
envMutableConfig.setTxnNoSync(true);
myEnv.setMutableConfig(envMutableConfig);
} catch (DatabaseException dbe) {
// Exception handling goes here
} catch (FileNotFoundException fnfe) {
// Exception handling goes here
}</pre>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="EnvClose.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="Env.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="dpl.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Closing Database Environments </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Part I. Programming with the Direct Persistence Layer</td>
</tr>
</table>
</div>
</body>
</html>