`
mengyang
  • 浏览: 263649 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

BerkeleyDB-JE Environments

    博客分类:
  • BDB
阅读更多
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.默认的属性
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics