Удаленный доступ к встроенному серверу OrientDB
используя Community Edition v2.1.11
Я пишу простой синхронизатор данных, который получает данные из базы данных MS-SQL и синхронизирует их с данными, имеющимися в графике OrientDB.
Обновления могут быть довольно масштабными, и график должен обновляться каждые 20 минут, поэтому я бы предпочел использовать для него режим plocal; Кроме того, другие приложения должны иметь постоянный доступ для чтения к графику, поэтому я решил встроить сервер в приложение Java и поместить процесс синхронизации в планировщик (ScheduledExecutorService).
Проблема в том, что, несмотря на документы, я не могу получить доступ к БД, которая работает на встроенном сервере, из консоли или студии:
orientdb> connect remote: локальный хост / тестовый корень myP@ss
Отключение от базы данных [null]...OK Подключение к базе данных [remote:localhost/test] с пользователем 'root'... Ошибка: com.orientechnologies.orient.core.exception.OStorageException: Невозможно открыть локальное хранилище 'C:/orientdb/database /test'с режимом =rw
Ошибка: com.orientechnologies.orient.core.exception.OSerializationException: Невозможно загрузить конфигурацию базы данных. База данных повреждена
Ошибка: com.orientechnologies.common.concur.lock.OLockException: файл 'C:\orientd b\database \test\database.ocf' заблокирован другим процессом, возможно, база данных используется другим процессом. Используйте удаленный режим с сервером OrientDB, чтобы предоставить множественный доступ к одной и той же базе данных
Вот мой код инициализации сервера:
String orientdbHome = "C:/orientdb/";
System.setProperty("ORIENTDB_HOME", orientdbHome);
OServer server = OServerMain.create();
server.startup(new File("C:/orientdb/config/embedded_config.xml"));
OGlobalConfiguration.WAL_LOCATION.setValue("/Temp/wal");
server.activate();
OrientGraph g = new OrientGraph("plocal:C:/orientdb/databases/Test");
Я новичок в Ориенте, поэтому я уверен, что что-то упустил, но даже Google не может помочь мне выяснить, что именно:(
1 ответ
Я думаю, проблема в том, что когда вы подключаетесь по протоколу plocal, он блокирует ресурсы.
Таким образом, вы не можете подключиться через консоль (даже удаленную или plocal) после того, как вы уже создали подключение plocal через OrientGraph g = new OrientGraph("plocal:C:/orientdb/databases/Test");