Закрытие "локальной" 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 );
Другие вопросы по тегам