Закрытие "локальной" OrientDB при использовании пулов соединений
Так что я в основном это делаю.
OObjectDatabaseTx result = OObjectDatabasePool.global().acquire( "local:orientdb", "admin", "admin");
//dostuff
result.close;
Проблема в том, что при повторном развертывании моего веб-приложения (без перезапуска контейнера 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 ответ
Решение
Установите для свойства storage.keepOpen значение false:
java ... -Dstorage.keepOpen=false ...
или через код Java:
OGlobalConfiguration.STORAGE_KEEP_OPEN.setValue( false );