所以我基本上是这样做的。
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/