# Berkeley DB Java Edition
Release Notes

3.1.0, September 27, 2006

These release notes contain:

- Overview
- New in this Release

## Overview

Berkeley DB Java Edition (JE) is a 100% pure Java implementation of Berkeley DB. It implements a transactional store model based on a B+Tree access method.

The documentation set for JE includes:

- JE's capabilities and features are described in the Getting Started with Berkeley DB Java Edition guide. That document also introduces the JE API set.
- For a description of how to use JE and the new Direct Persistence Layer, see the Getting Started with the Direct Persistence Layer guide.
- For a description of how to use JE and the Sleepycat Java Collections API, see the collections tutorial.
- For an overview on using transactions, see Writing Transactional Applications with Berkeley DB, Java Edition
- For a complete description of the JE API set, see the Javadoc.

## New in this Release

This is release 3.1.0 of Berkeley DB Java Edition, and the first release in the JE 3.1 line. This is the GA release of the Direct Persistence Layer, which is the Plain Old Java Object (POJO)-based persistent object model introduced in JE 3.0.11.

Key changes since version JE 3.0.12 are described below; the complete list of changes can also be found in the change log page.

Note: If you are using Mac OS X, please be aware of the following issue. Java version 1.4.2 on Mac OS X reports the wrong value for Runtime.maxMemory. JE calculates the default cache size as a percentage of maxMemory. Because of this, for Java 1.4.2 on Mac OS X only, JE will assume that the Java maxMemory value is 64 MB. With the default je.maxMemoryPercent configuration parameter (60%) the default JE cache size will be approximately 38 MB. This default is fixed -- it does not change if the Java memory size is different than 64 MB. To specify a different JE cache size, you must explicitly set the je.maxMemory configuration property. The je.maxMemory property can be specified in the je.properties file or by calling EnvironmentConfig.setCacheSize.

### Log File On-Disk Format Changes:

None.

### New Features:

1. In this release, class evolution is implemented in the Direct Persistence Layer, which completes the functionality of the DPL package. Class evolution allows changing persistent classes and performing lazy or eager evolution of the persistent instance data. For more information please see the package specification for the com.sleepycat.persist.evolve package.

   NOTE: If you have deployed a store using the JE 3.0.12 beta release,, before changing your persistent classes for the first time you must open and close your store using the JE 3.1 release. To do this, you can simply open and close your application as usual, or you can write a small conversion program that constructs an EntityStore and calls its close method. The critical points are:

   1. Your EntityStore must be opened and closed before any persistent classes are changed. Do not put changed versions of persistent classes in the classpath during this procedure.
   2. The JE 3.1 jar file must be used instead of the JE 3.0.12 jar file.
   Once this has been done, your persistent class metadata will be updated and ready for class evolution to occur. You can then evolve your persistent classes as described in the documentation. This conversion is a one-time procedure for stores that were deployed using the JE 3.0.12 beta release. This procedure will not have to be done in future releases.
2. JE now provides the ability to get a count of database records. The new count method has been optimized to execute faster than the count obtained from a database scan, but may not be accurate in the face of concurrent updates.

See the change log for the complete and detailed description of all bug fixes.

Copyright (c) 1996-2006, Oracle Corporation - All rights reserved.