Environments封装了一个或多个的数据库。个人觉得可以理解为是JE的总的配置的环境。我们一般用它来打开database,或者是取得transaction。
下面演示打开和关闭Enviroment。
Environment myDbEnvironment = null;
try {
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);
myDbEnvironment = new Environment(new File("/export/dbEnv"),
envConfig);
...do something
} catch (DatabaseException dbe) {
// Exception handling goes here
} finally{
if (myDbEnvironment != null) {
myDbEnvironment.close();
}
}
注意,可能出现一种情况是,在你关闭Environment的时候,后台线程(cleaner thread)还未完成它的工作,这将会导致你的日志文件不准确,为了保证这种情况不会发生,你可以在调用Environment.close()方法之前,调用Environment.cleanLog()方法。就像这样:
if (myDbEnvironment != null) {
myDbEnvironment.cleanLog(); // Clean the log before closing
myDbEnvironment.close();
}
接下来,我们讨论几个Environment的常用设置。Environment可以在开始创建的时候通过EnvironmentConfig来进行属性设置。
- EnvironmentConfig.setAllowCreate()
设置若不存在该Environment,则新建一个。注意的是文件可以不存在,但是文件夹必须要存在。
- EnvironmentConfig.setReadOnly()
设置是否由此Environment打开的database都是只读的。
- EnvironmentConfig.setTransactional()
设置这个Environment是否支持事务。
除了使用EnvironmentConfig在创建Environment的时候进行属性设置,你还可以用EnvironmentMutableConfig来设置一个已存在的Environment实例。注意的是EnvironmentConfig类是继承自EnvironmentMutableConfig类,所以在EnvironmentMutableConfig设置的属性,都可以通过EnvironmentConfig进行设置。
- setCachePercent()
设置JE缓存可以使用多少百分比的JVM缓存
- setCacheSize()
设置JE缓存可以使用多少大,单位是
- setTxnNoSync()
设置是否在事务提交的时候马上把改变写入到日志文件。
- setTxnWriteNoSync()
设置当事务提交的时候日志文件是否被刷新。
下面演示下Environment属性的设置:
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);
myEnvConfig.setReadOnly(false);
Environment myEnv = new Environment(new File("/export/dbEnv"), null);
EnvironmentMutableConfig envMutableConfig = new EnvironmentMutableConfig();
envMutableConfig.setTxnNoSync(true);
myEnv.setMutableConfig(envMutableConfig);
Environment的属性还能在JE的属性文件中设置,属性文件的位置是<environmentHome>/je.properties ,他们的优先顺序是:
1.在<environmentHome>/je.properties设置的属性
2.通过EnvironmentConfig设置的属性
3.默认的属性
分享到:
相关推荐
Oracle BerkeleyDB-JE je-6.0.11
### Berkeley DB (C) 开发入门与核心技术解析 #### 概述 Berkeley DB(简称 BDB)是一款高性能的关键值存储数据库系统,被广泛应用于多种操作系统之上,支持多种访问方法和事务处理机制。该文档主要介绍了如何使用...
**Berkeley DB JE 7.0.6:深入理解分布式数据存储** Berkeley DB JE(Java Edition)是Oracle公司提供的一款开源、嵌入式、基于Java的键值对数据库系统。它以其轻量级、高性能和高可用性而受到广泛的青睐,尤其适合...
在Je-3.1.0版本中,BerkeleyDB使用特定的数据库文件格式,这些文件可以在不同平台上进行迁移,确保了跨平台的兼容性。 **7. 性能优化** BerkeleyDB提供了多种性能调优选项,如缓存大小设置、日志文件管理等,...
db-6.1.26.tar.gz berkeley db
**Berkeley DB (BDB)** 是一款开源的、嵌入式数据库系统,由Oracle公司提供。它被广泛用于需要高效本地存储和简单数据管理的软件应用程序中,特别是在那些对性能和可靠性有高要求的场景。BDB的核心特性包括事务处理...
《Berkeley DB核心技术指南——C++接口篇》 Berkeley DB(简称BDB)是由Oracle公司开发的一款开源、轻量级、嵌入式数据库系统,主要用于处理键值对存储问题。它广泛应用于需要快速访问数据的环境,如网络服务器、...
Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤,本文件是早期版本
(二) Berkeley DB -- Access Method Configuration_iyangjian2005997_新浪博客.mht
### Berkeley DB for Java:概述与入门指南 #### 一、Berkeley DB简介 Berkeley DB (BDB) 是一个高性能的嵌入式数据库系统,它以其高效的数据存储和检索能力而闻名。根据提供的文档信息,“BerkeleyDB-Core-JAVA-...
**BerkeleyDB** 是一款由 Oracle 公司开发的开源、高性能、无模式的键值对存储数据库系统。它在嵌入式环境和轻量级应用程序中被广泛使用,尤其适用于那些需要快速数据访问和简单数据管理的应用。BerkeleyDB 的设计...
**BerkeleyDB** 是一款强大的、高度可定制的嵌入式数据库系统,广泛应用于各种软件开发,尤其是在需要高效存储和检索数据的场景中。这款数据库系统由Oracle公司开发,最初在1990年由Sleepycat Software推出,因其...
### BerkeleyDB-Core-c++-GSG 知识点解析 #### 一、Berkeley DB 概述 **Berkeley DB** 是一款高性能的关键值存储数据库系统,被广泛应用于多种应用场景中,包括嵌入式系统、应用程序服务器等。该文档主要介绍了...
Berkeley DB -- 入门知识和一个小例子_iyangjian2005997_新浪博客.mht
Berkeley DB是一款由Oracle公司开发的嵌入式数据库系统,被广泛应用于许多软件项目中,尤其是在需要快速、轻量级数据存储解决方案的场景下。它提供了键值对存储模式,适用于构建高性能的数据缓存和数据库应用程序。...
《BerkeleyDB Manual C/C++》是一份详尽的官方文档,主要针对使用C和C++语言进行数据库操作的开发者。BerkeleyDB是一款轻量级、高性能的关系型数据库管理系统,常用于嵌入式系统和分布式应用程序。这篇手册将深入...
官方版本,亲测可用
BerkeleyDB是一个开源的、基于键值对的嵌入式数据库系统,由Oracle公司提供。它为Java开发者提供了丰富的API,使得在Java应用程序中轻松集成数据存储成为可能。标题中的"BerkeleyDB_java_jar包"指的是适用于Java开发...
Berkeley DB是一个由Oracle公司开发的开源嵌入式数据库系统,支持多种编程语言接口,其中C++是其中之一。它为开发者提供了一个轻量级的数据库解决方案,适用于多种应用程序。Berkeley DB允许开发者在应用程序中直接...
Berkeley DB Java Edition (JE) 官方7.5.11下载版本。 相关介绍 https://blog.csdn.net/hadues/article/details/80854288