otn
Oracle Berkeley DB Java Edition 3.3.82
High performance transactional storage engine. more>> High performance transactional storage engine.
Oracle Berkeley DB Java Edition is a high performance, transactional storage engine written entirely in Java. Like the highly successful Berkeley DB product, Berkeley DB Java Edition executes in the address space of the application, without the overhead of client/server communication.
It stores data in the applications native format, so no runtime data translation is required. Berkeley DB Java Edition supports full ACID transactions and recovery. It provides an easy-to-use, programmatic interface, allowing developers to store and retrieve information quickly, simply and reliably.
Main features:
- Local, in-process data storage.
- Schema-neutral, application native data storage.
- Keyed and sequential data retrieval.
- Easy-to-use Java Collections API.
- Persistence API for accessing Java objects.
- Single process, multi-threading model.
- Record level locking for high concurrency.
- Support for secondary indexes.
- In-memory, on disk or both.
- Configurable background cleaner threads re-organize data and optimize disk use.
- Full ACID compliance.
- Selectable isolation levels and durability guarantees, configurable on a per-transaction basis.
- Managed transactions using the Java Transaction API (JTA).
- J2EE application server integration using J2EE Connector Architecture(JCA).
- Provides support for monitoring, auditing and administration using the Java Management Extensions (JMX).
- Catastrophic and routine failure recovery modes.
- Timeout based deadlock detection.
- Hot and cold backups, log file compaction, and full database dumps.
- 100% pure Java for portability and ease of development.
- Single JAR file - easy to install, runs in the same JVM as the application.
- Java 1.4.2 or later Standard Edition JVM required.
- Programmatic administration and management-zero human administration.
- API for routine administrative functions.
- Small footprint 772KB.
- Scalable to terabytes of data, millions of records.
- Source code, test suite included.
System requirements:
-
Enhancements
- Fix a bug that somtimes causes two log cleaner threads (when multiple threads are configured or multiple app threads call Environment.cleanLog) to select the same file to clean. This can result in two attempts to delete the log file after cleaning. The second attempt causes an exception to be traced repeatedly, but no other side effect. The problem is transient and goes away if the Environment is closed and re-opened. An example of the exception is below. The symptom is that this exception occurs repeatedly, and the file is not present.
- Fix a bug that could cause a LogFileNotFoundException when using an XAEnvironment, if a prepared transaction is not ended prior to a crash and then the prepared transaction is aborted after recovering from a crash. [#17022] (3.3.79)
- Fix a bug that prevented deferred-write record deletions from being made durable by Database.sync, if a crash occurs after Database.sync but prior to the next checkpoint. Under rare circumstances this could also result in a LogFileNotFoundException later when accessing the deleted entry. [#16864] (3.3.78)
- Fix a bug that prevents log cleaning from functioning properly when a temporary DB (DatabaseConfig.setTemporary) is large enough to overflow the JE cache. Also fix a bug that could in rare cirumstances cause an endless loop while performing log cleaning. [#16928] (3.3.78)
- Fix a bug that caused an infinite loop under certain timing dependent circumstances when using EnvironmentConfig.setSharedCache(true). This bug was reported in two different forum posts. Thanks to Kevin Jackson and Vyacheslav Lukianov for reporting it! [#16882] (3.3.78)
- Improve output of partial information in DatabaseEntry.toString. Thanks to archie172 for reporting this on OTN. [#16929] (3.3.78)
- Fix a bug in SecondaryCursor.dup that required the cursor to be initialized. This method, like Cursor.dup, may now be called whether the cursor is initialized or not. Thanks to archie172 for reporting this on OTN. [#16930] (3.3.78)
- Fix a bug that caused NullPointerException when opening an XAEnvironment under certain circumstances, when prepared but uncommitted transactions are present in the JE log and must be replayed during recovery. This bug was reported on the OTN forum by Matthieu Bentot -- thank you Matthieu! An example of the stack trace is below.
- Fix a bug that caused LogFileNotFoundException in rare circumstances for an Environment having one or more Databases configured for duplicates (or one or more SecondaryIndexes with MANY_TO_XXX relationships). The bug only occurs when a single secondary/duplicate key value is associated with a large number of records/entities; specifically, the sub-Btree for a single duplicate key value must have at least 3 levels. [#16712] (3.3.76)
- Fix a bug that caused BufferOverflowException while writing transactional records. This could occur if multiple threads were writing to an environment while using the same Transaction. [#17204]
- Direct Persistence Layer (DPL), Collections and Bind packages - Fix a bug that causes the EvolveStats returned by EntityStore.evolve to contain zeros, even when entities are evolved and written, when no EvolveListener is configured. Thanks to jhalex on OTN for reporting this. [#17024] (3.3.78)
- Page: 1 of 1
- 1