local - 使用连接池时关闭 "local"OrientDB

标签 local connection-pooling orientdb file-storage

所以我基本上是这样做的。

OObjectDatabaseTx result = OObjectDatabasePool.global().acquire( "local:orientdb", "admin", "admin");
//dostuff
result.close;

问题是,当我重新部署我的 web 应用程序(不重新启动 Java EE 容器)时,我收到以下错误:
com.orientechnologies.orient.core.exception.OStorageException: Cannot open local storage 'orientdb' with mode=rw

我将其解释为“Tomcat 仍然有来自最后一个应用程序的文件锁”。

所以我的问题是如何在这种情况下干净地退出?我试过了:
OObjectDatabasePool.global().close()


new OObjectDatabaseTx("local:orientdb").close()

但似乎都不起作用。有任何想法吗?关于这个问题,文档并不完全清楚。

最佳答案

将属性“storage.keepOpen”设置为false:

java ... -Dstorage.keepOpen=false ...

或通过 Java 代码:
OGlobalConfiguration.STORAGE_KEEP_OPEN.setValue( false );

关于local - 使用连接池时关闭 "local"OrientDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383154/

相关文章:

C++ Lambda 捕获弄乱了局部变量值

orientdb - OrientDB 中简单选择查询的错误结果

lazy-evaluation - 在 Orient-DB 中延迟执行查询

ssh - 禁用本地地址的开瓶器

javascript - 我的 XML 文件未通过 Google Chrome 和 Internet Explorer

python - 如何诊断 Pyramid 中额外的 SQLAlchemy 连接

entity-framework-4 - Entity Framework 4 和 SQL Server App Roles - 如何协同工作?

neo4j - 如何构建图形数据库以支持三向关系?

javascript - 如何使用 JavaScript 加载大型本地文件?

java - OracleDataSource、Oracle UCP、Commons DBCP 和 Tomcat 连接池之间的区别?