Я пытаюсь запустить встроенный сервер OrientDB.Я установил ORIENTDB_HOME
в папку, содержащую папки config/
и plugins/
.Я также включил мой файл конфигурации в путь к классам, потому что сервер, похоже, не загружал мой файл конфигурации, даже если он имеет имя по умолчанию.
Теперь он запускает и применяет мою конфигурацию, однако, очевидно, каталог приложения используется как ORIENTDB_HOME
, потому что мои плагины не загружены и база данных создается там, где я не хочу.
Это мой код:
public void startServer() {
try {
System.setProperty("ORIENTDB_HOME", "C:\\my\\orientdb_home\\path");
server = OServerMain.create(true);
// server.startup(); // this doesn't load the correct config
server.startup(getClass().getResourceAsStream("/config/orientdb-server-config.xml")); // workaround
server.activate();
OServerNetworkListener httpListener = server.getListenerByProtocol(server.getNetworkProtocols().get("binary"));
binaryPort = httpListener.getInboundAddr().getPort();
httpListener = server.getListenerByProtocol(server.getNetworkProtocols().get("http"));
httpPort = httpListener.getInboundAddr().getPort();
System.out.println("Started OrientDB Server.\nBinary Port is " + binaryPort + "\nHTTP Port is " + httpPort);
} catch (Exception e) {
e.printStackTrace();
}
}
Удивительная вещь в том, что в выводе журнала ясно сказано, что он использует правильный каталог для баз данных, но это не так.
2019-06-14 09:32:23:556 INFO Loading configuration from input stream [OServerConfigurationLoaderXml]
2019-06-14 09:32:23:731 INFO OrientDB Server v2.2.37 (build a7541e7ceeabf592dd9a7b2928b6c023cbc73193, branch 2.2.x) is starting up... [OServer]
2019-06-14 09:32:23:741 INFO Databases directory: C:\my\orientdb_home\path\databases [OServer]
2019-06-14 09:32:23:830 INFO Configuration of usage of soft references inside of containers of results of SQL execution [OMemoryAndLocalPaginatedEnginesInitializer]
2019-06-14 09:32:23:831 INFO Initial or maximum values of heap memory usage are NOT set, containers of results of SQL executors will NOT use soft references by default [OMemoryAndLocalPaginatedEnginesInitializer]
2019-06-14 09:32:23:832 INFO Auto configuration of disk cache size. [OMemoryAndLocalPaginatedEnginesInitializer]
2019-06-14 09:32:23:919 INFO 17066577920 B/16275 MB/15 GB of physical memory were detected on machine [ONative]
2019-06-14 09:32:23:919 INFO Detected memory limit for current process is 17066577920 B/16275 MB/15 GB [ONative]
2019-06-14 09:32:23:921 INFO OrientDB auto-config DISKCACHE=3,618MB (heap=3,618MB direct=3,618MB os=16,275MB) [OMemoryAndLocalPaginatedEnginesInitializer]
2019-06-14 09:32:23:922 INFO Lowering disk cache size from 3,618MB to 3,616MB. [OGlobalConfiguration]
2019-06-14 09:32:24:117 INFO Listening binary connections on 127.0.0.1:2424 (protocol v.36, socket=default) [OServerNetworkListener]
2019-06-14 09:32:24:120 INFO Listening http connections on 127.0.0.1:2480 (protocol v.10, socket=default) [OServerNetworkListener]
2019-06-14 09:32:25:081 INFO Storage 'plocal:databases/pvRelations' is created under OrientDB distribution : 2.2.37 (build a7541e7ceeabf592dd9a7b2928b6c023cbc73193, branch 2.2.x) [OLocalPaginatedStorage]
2019-06-14 09:32:27:607 INFO {db=pvRelations} -> Loaded plocal database 'pvRelations' [OServer]
2019-06-14 09:32:27:609 INFO Found ORIENTDB_ROOT_PASSWORD variable, using this value as root's password [OServer]
2019-06-14 09:32:27:621 INFO ODefaultPasswordAuthenticator is active [ODefaultPasswordAuthenticator]
2019-06-14 09:32:27:623 INFO OServerConfigAuthenticator is active [OServerConfigAuthenticator]
2019-06-14 09:32:27:625 INFO OSystemUserAuthenticator is active [OSystemUserAuthenticator]
2019-06-14 09:32:27:634 INFO Installed GREMLIN language v.2.6.0 - graph.pool.max=50 [OGraphServerHandler]
2019-06-14 09:32:27:638 WARNI Authenticated clients can execute any kind of code into the server by using the following allowed languages: [sql] [OServerSideScriptInterpreter]
2019-06-14 09:32:27:638 INFO OrientDB Studio available at http://127.0.0.1:2480/studio/index.html [OServer]
2019-06-14 09:32:27:638 INFO OrientDB Server is active v2.2.37 (build a7541e7ceeabf592dd9a7b2928b6c023cbc73193, branch 2.2.x). [OServer]
Чтобы еще раз уточнить: каталог C:\my\orientdb_home\path\databases
не используется, вместо этого он path\to\my\application\databases
.
Что я делаю не так?Как мне сказать серверу использовать каталог по своему выбору для поиска конфигурации и плагинов, а также для хранения баз данных?
РЕДАКТИРОВАТЬ: я только что заметил, что на самом деле каталог баз данных используется, но только дляСистемная база данных.Моя собственная база данных хранится не в том месте.Я определил его в своем конфигурационном файле:
...
<storages>
<storage name="myDB" path="plocal:databases/myDB" userName="admin" userPassword="admin" loaded-at-startup="true" />
</storages>
...
EDIT2: Итак, я заметил, что неправильное расположение базы данных связано с вручную настроенным путем хранения в файле конфигурации.Тем не менее, это по-прежнему не объясняет, почему мне нужно напрямую предоставить свой конфигурационный файл и почему мои плагины (OrientDB Studio) не загружаются.