с помощью Community Edition v2.1.11Удаленный доступ к встроенному серверу OrientDB
написать простой синхронизатор данных, который получает данные из MS-SQL DB, и синхронизирует его с данными, которые я имею в OrientDB графике.
Обновления могут быть довольно массивными, и график должен обновляться каждые 20 минут, поэтому я предпочел бы использовать режим plocal; Кроме того, другие приложения должны иметь постоянный доступ на чтение к графику, поэтому я решил встроить сервер в приложение Java и поместить процесс синхронизации в планировщик (ScheduledExecutorService).
Проблема заключается в том, что, несмотря на docs, я не могу получить доступ к БД, который работает на встроенном сервере с консоли или студии:
orientdb> connect remote:localhost/test root [email protected]
Disconnecting from the database [null]...OK Connecting to database [remote:localhost/test] with user 'root'... Error: com.orientechnologies.orient.core.exception.OStorageException: Cannot open local storage 'C:/orientdb/databases/test' with mode=rw
Error: com.orientechnologies.orient.core.exception.OSerializationException: Cann ot load database's configuration. The database seems corrupted
Error: com.orientechnologies.common.concur.lock.OLockException: File 'C:\orientd b\databases\test\database.ocf' is locked by another process, maybe the database is in use by another process. Use the remote mode with a OrientDB server to allo w multiple access to the same database
Вот мой сервер код инициализации:
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");
Я новичок в Orient, поэтому я уверен, что что-то пропустил, но даже Google не может помочь мне выяснить, что именно :(
Привет Иван, спасибо за Ваш ответ. – grreeenn
Правильно, я знаю, что невозможно подключиться к графику каким-либо образом, в то время как какой-то другой экземпляр связан с ним с помощью plocal; хотя при чтении документов вы можете увидеть это: «Java-приложение, которое работает с сервером, может обойти удаленное соединение и использовать базу данных напрямую в локальном режиме. Локальные и удаленные подключения к одной базе данных могут работать в параллелизме: OrientDB будет синхронизировать доступ ». Это устаревшая функция или что-то еще? Как я знаю, локальный доступ устарел, поскольку встроенный сервер не будет работать с новым хранилищем данных? – grreeenn