使用连接池时关闭“本地”OrientDB

时间:2013-08-22 14:22:14

标签: local connection-pooling orientdb file-storage

所以我基本上就这样做了。

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

问题在于,当我重新部署我的webapp(不重新启动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()

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

1 个答案:

答案 0 :(得分:4)

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

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

或通过Java代码:

OGlobalConfiguration.STORAGE_KEEP_OPEN.setValue( false );