<?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 12.1.6.1</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>