1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
|
<?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.73.2" />
<link rel="start" href="index.html" title="Getting Started with Berkeley DB" />
<link rel="up" href="Env.html" title="Chapter 2. Database Environments" />
<link rel="prev" 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 xmlns="" class="navheader">
<div class="libver">
<p>Library Version 11.2.5.3</p>
</div>
<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 class="toc">
<dl>
<dt>
<span class="sect2">
<a href="EnvProps.html#envconfig">The EnvironmentConfig Class</a>
</span>
</dt>
<dt>
<span class="sect2">
<a href="EnvProps.html#envhandleconfig">EnvironmentMutableConfig</a>
</span>
</dt>
</dl>
</div>
<p>You set properties for the <code class="classname">Environment</code> using
the <code class="classname">EnvironmentConfig</code> class. You can also set properties for a specific
<code class="classname">Environment</code> instance using <code class="classname">EnvironmentMutableConfig</code>.
</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>
<p>
The <code class="classname">EnvironmentConfig</code> 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
<code class="classname">EnvironmentConfig</code> object used by your environment
using the <code class="methodname">Environment.getConfig()</code> method.
</p>
<p>
You set environment configuration parameters using the following methods on the
<code class="classname">EnvironmentConfig</code> class:
</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>
<code class="methodname">EnvironmentConfig.setAllowCreate()</code>
</p>
<p>If <code class="literal">true</code>, the database environment is created
when it is opened. If <code class="literal">false</code>, environment open fails if the environment
does not exist. This property has no meaning if the database
environment already exists. Default is <code class="literal">false</code>.</p>
</li>
<li>
<p>
<code class="methodname">EnvironmentConfig.setReadOnly()</code>
</p>
<p>If <code class="literal">true</code>, 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 <code class="literal">true</code>. Default is <code class="literal">false</code>.</p>
</li>
<li>
<p>
<code class="methodname">EnvironmentConfig.setTransactional()</code>
</p>
<p>If <code class="literal">true</code>, configures the database environment
to support transactions. Default is <code class="literal">false</code>.</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>
<p>
<code class="classname">EnvironmentMutableConfig</code> manages properties that can be reset after the
<code class="classname">Environment</code> object has been constructed. In addition, <code class="classname">EnvironmentConfig</code>
extends <code class="classname">EnvironmentMutableConfig</code>, so you can set these mutable properties at
<code class="classname">Environment</code> construction time if necessary.
</p>
<p>
The <code class="classname">EnvironmentMutableConfig</code> class allows you to set the following
properties:
</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>
<code class="literal">setCachePercent()</code>
</p>
<p>
Determines the percentage of JVM memory available to the DB cache.
See <a class="xref" href="cachesize.html" title="Selecting the Cache Size">Selecting the Cache Size</a>
for more information.
</p>
</li>
<li>
<p>
<code class="literal">setCacheSize()</code>
</p>
<p>
Determines the total amount of memory available to the database cache.
See <a class="xref" href="cachesize.html" title="Selecting the Cache Size">Selecting the Cache Size</a>
for more information.
</p>
</li>
<li>
<p>
<code class="literal">setTxnNoSync()</code>
</p>
<p>
Determines whether change records created due to a transaction commit are written to the backing
log files on disk. A value of <code class="literal">true</code> causes
the data to not be flushed to
disk. See the
<em class="citetitle">Getting Started with Transaction Processing for Java</em>
guide for more information.
</p>
</li>
<li>
<p>
<code class="literal">setTxnWriteNoSync()</code>
</p>
<p>
Determines whether logs are flushed on transaction commit (the logs are still written, however).
By setting this value to <code class="literal">true</code>, 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
<em class="citetitle">Getting Started with Transaction Processing for Java</em>
guide for more information.
</p>
</li>
</ul>
</div>
<p>
There is also a corresponding getter method (<code class="methodname">getTxnNoSync()</code>).
Moreover, you can always retrieve your environment's
<code class="classname">EnvironmentMutableConfig</code> object by
using the <code class="methodname">Environment.getMutableConfig()</code> 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>
|