xodus - 安全关闭 Xodus 环境的正确方法是什么?
问题描述
我需要一种关闭 Xodus 环境的方法,以便
- 它等待所有线程中的所有写入事务完成(或在超时后中止作为选项)。
- 它阻止启动新事务(或作为选项抛出异常)。
- 安全地关闭环境。
到目前为止,我们尝试过这样的事情
if (env.isOpen()) {
env.clear();
env.close();
}
但我不确定它是否完全正确,我仍然env.close()
不时抛出异常。那么这样做的正确方法是什么?
解决方案
首先,请注意,这Environment#clear()
只会清除您环境中的所有数据。
次要:您不必在关闭之前检查您的环境是否打开。
如果您不太关心应用程序状态,那么您可以设置exodus.env.closeForcedly
环境创建选项:
Environment env = Environments.newInstance("db path", new EnvironmentConfig().setEnvCloseForcedly(true));
在这种情况下,close()
方法会在日志中报告当前未完成事务的数量,并且无论如何都会关闭环境。
推荐阅读
- java - 为什么键盘视图xml文件中的布局没有出现在软键盘中?
- excel - 使用带变量的查询在 excel 中导入访问数据库
- iis - 使用 IIS10 URL 重写从 MediaWiki URL 中删除命名空间前缀
- mysql - 设计师不只处理 MySQL 关系
- http - 某些网络的重定向失败
- kentico - Kentico - 仅将相关页面限制为本地化页面
- amazon-web-services - 通过 CloudFormation 中的 SecretsManager 获取 AWS::RDS::DBCluster 的 MasterUserPassword
- xamarin - 可以创建贝塞尔半圆 Xamarin Forms SkiaSharp
- sql - 有子查询与只是加入表?
- javascript - 需要帮助保存开发者工具日志