Neo4j: невозможно заблокировать магазин

Я использую графическую базу данных Neo4j и просматриваю данные в браузере. Поэтому, когда я запускаю код, мне нужно изменить поле расположения базы данных в файле neo4j-server.properties.

Когда я пытаюсь получить доступ к БД через браузер, я получаю следующую ошибку:

Exception in thread "main" java.lang.IllegalStateException: Unable to lock store
[<DB path>], this is usually a result of some other Neo4j kernel running using
the same store.

Можно ли просмотреть базу данных без блокировки магазина?

 Rash15 февр. 2015 г., 21:26
Ваша Java-программа запускает еще один экземпляр вашей базы данных и другой браузер. Таким образом, для одного и того же БД работают два состояния, отсюда и проблема блокировки. Смотря в свои документы (neo4j.com/docs/stable/javadocs), нет метода для работы с существующим экземпляром. Так что я не думаю, что есть способ иметь больше замков. Но по этой ссылке (tutorialspoint.com/neo4j/neo4j_native_java_api_example.htm), в самом конце заметки говорится, что «администраторы баз данных Ne04J будут обновлять свойства базы данных, чтобы разрешить некоторое количество одновременных блокировок», так что в файлах conf тоже может быть что-то.

Ответы на вопрос(2)

Есть еще один процесс, использующий БД. Например, вы открыли его с помощью другой программы (например, оболочки gremlin в терминале) или запущен другой экземпляр neo4j.

Если вы используете Unix-подобную систему (Linux, MacOSX и т. Д.), То вы можете использовать lsof для определения процессов, которые открыли вашу базу данных. Например, если путь к моей БД/home/user/db/myneo4j.dbтогда я бы искал:

$ lsof /home/user/db/myneo4j.db/neostore.propertystore.db.index

Или вы можете просто попробовать:

$ lsof | grep myneo4j.db

Это скажет вам идентификатор процесса, который взял (заблокировал) базу данных.

Вы уверены, что ни один процесс java не работает с хранилищем данных перед тем, как вы запустите сервер neo4j для просмотра ваших данных?

Ваш ответ на вопрос