【问题标题】:Orientdb Errors : can't load log handler "java.util.logging.FileHandler" etcOrientdb 错误:无法加载日志处理程序“java.util.logging.FileHandler”等
【发布时间】:2018-10-11 22:39:12
【问题描述】:

我是图形数据库的新手,我已经试用了 Orientdb 2.2.34。我正在使用带有 Java 10.0.1 JRE 和 JDK 的 Windows 10 机器。当我运行 server.bat 文件时,出现以下错误,我不知道从哪里开始解决它们:

无法加载日志处理程序“java.util.logging.FileHandler” java.nio.file.AccessDeniedException: ..\log\orient-server.log.0.lck java.nio.file.AccessDeniedException: ..\log\orient-server.log.0.lck 在 java.base/sun.nio.fs.WindowsException.translateToIOException(未知 资源) 在 java.base/sun.nio.fs.WindowsException.rethrowAsIOException(未知 资源) 在 java.base/sun.nio.fs.WindowsException.rethrowAsIOException(未知 资源) 在 java.base/sun.nio.fs.WindowsFileSystemProvider.newFileChannel(未知 资源) 在 java.base/java.nio.channels.FileChannel.open(未知来源) 在 java.base/java.nio.channels.FileChannel.open(未知来源) 在 java.logging/java.util.logging.FileHandler.openFiles(未知来源) 在 java.logging/java.util.logging.FileHandler.(未知来源) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native 方法) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(未知 资源) 在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 资源) 在 java.base/java.lang.reflect.Constructor.newInstance(未知来源) 在 java.base/java.lang.Class.newInstance(未知来源) 在 java.logging/java.util.logging.LogManager.createLoggerHandlers(未知 资源) 在 java.logging/java.util.logging.LogManager.access $1000(未知来源) 在 java.logging/java.util.logging.LogManager$4.run(未知来源) 在 java.logging/java.util.logging.LogManager$4.run(未知来源) 在 java.base/java.security.AccessController.doPrivileged(本机方法) 在 java.logging/java.util.logging.LogManager.loadLoggerHandlers(未知 资源) 在 java.logging/java.util.logging.LogManager.initializeGlobalHandlers(未知 资源) 在 java.logging/java.util.logging.LogManager.access $1800(未知来源) 在 java.logging/java.util.logging.LogManager$RootLogger.accessCheckedHandlers(未知 资源) 在 java.logging/java.util.logging.Logger.getHandlers(未知来源) 在 com.orienttechnologies.common.log.OLogManager.installCustomFormatter(OLogManager.java:84) 在 com.orienttechnologies.orient.server.OServer.(OServer.java:135) 在 com.orienttechnologies.orient.server.OServer.(OServer.java:118) 在 com.orientechnologies.orient.server.OServerMain.create(OServerMain.java:28) 在 com.orientechnologies.orient.server.OServerMain$1.run(OServerMain.java:47)

2018-05-01 21:47:35:110 INFO 从 C:/Program 加载配置 文件/Orientdb-2.2.34/config/orientdb-server-config.xml ...警告:一个 发生非法反射访问操作警告:非法 通过反射访问 com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/C:/Program%20Files/Orientdb-2.2.34/lib/jaxb-impl-2.2.3.jar) 到 方法 java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) 警告:请考虑将此报告给 com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 警告:使用 --illegal-access=warn 启用对进一步非法反射访问操作的警告警告:所有非法访问操作都将 在未来的版本中被拒绝

2018-05-01 21:47:35:371 INFO OrientDB 服务器 v2.2.34(构建 f340442755a31eabc91b87cb3ef99eda5cee6ebd,分支 2.2.x) 正在启动 向上... 2018-05-01 21:47:35:377 INFO 数据库目录:C:\Program Files\Orientdb-2.2.34\databases 2018-05-01 21:47:35:413 信息 容器内软引用的使用配置 SQL 执行结果 2018-05-01 21:47:35:426 INFO Initial and 堆内存使用的最大值相等,结果容器 的 SQL 执行器将默认使用软引用 2018-05-01 21:47:35:427 INFO 磁盘缓存大小的自动配置。 2018-05-01 21:47:35:483 INFO 8449830912 B/8058 MB/7 GB 的物理内存是 在机器上检测到 2018-05-01 21:47:35:483 INFO 检测到的内存 当前进程的限制为 8449830912 B/8058 MB/7 GB 2018-05-01 21:47:35:486 INFO OrientDB 自动配置 DISKCACHE=3,962MB (堆=2,048MB 直接=524,288MB 操作系统=8,058MB) 2018-05-01 21:47:35:599 INFO {db=OSystem} 为当前创建系统数据库“OSystem” serverException 1E7ECDE6 in storage plocal:C:/Program Files/Orientdb-2.2.34/databases/OSystem: 2.2.34 (build f340442755a31eabc91b87cb3ef99eda5cee6ebd,分支 2.2.x) com.orienttechnologies.orient.core.exception.OStorageException:不能 使用路径 C:/Program 在存储中创建文件夹 文件/Orientdb-2.2.34/databases/OSystem 数据库名称="OSystem" 在 com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.create(OLocalPaginatedStorage.java:127) 在 com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:438) 在 com.orienttechnologies.orient.server.OSystemDatabase.init(OSystemDatabase.java:160) 在 com.orienttechnologies.orient.server.OSystemDatabase.(OSystemDatabase.java:44) 在 com.orienttechnologies.orient.server.OServer.initSystemDatabase(OServer.java:1309) 在 com.orientechnologies.orient.server.OServer.activate

(OServer.java:367)
        at com.orientechnologies.orient.server.OServerMain$1.run(OServerMain.java:48)
Error during server execution
com.orientechnologies.orient.core.exception.ODatabaseException: Cannot create database 'OSystem'
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:506)
        at com.orientechnologies.orient.server.OSystemDatabase.init(OSystemDatabase.java:160)
        at com.orientechnologies.orient.server.OSystemDatabase.<init>(OSystemDatabase.java:44)
        at com.orientechnologies.orient.server.OServer.initSystemDatabase(OServer.java:1309)
        at com.orientechnologies.orient.server.OServer.activate(OServer.java:367)
        at com.orientechnologies.orient.server.OServerMain$1.run(OServerMain.java:48)
Caused by: com.orientechnologies.orient.core.exception.OStorageException: Cannot

使用路径 C:/Program 在存储中创建文件夹 文件/Orientdb-2.2.34/databases/OSystem 数据库名称="OSystem" 在 com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.create(OLocalPaginatedStorage.java:127) 在 com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:438) ... 5

更多

【问题讨论】:

  • 检查是否没有其他实例在运行,它锁定..\log\orient-server.log.0.lck
  • 您是否尝试过运行“干净”版本的 orientdb??

标签: java orientdb


【解决方案1】:

看来您需要将orientdb-server-log-properties 中的java.util.logging.FileHandler.pattern 编辑为绝对路径而不是相对路径。

例如C:\Program Files\Orientdb-2.2.34\log

【讨论】:

    【解决方案2】:

    如果您在 Windows 上使用 Server.BAT 运行它,那么该 BAT 需要将其工作目录设置为那里。您可以编辑orientdb-server-log-properties,这是正确答案。

    或者,您可以将工作目录更改为 bin 所在的位置,然后从那里启动服务器,而无需更改配置文件,这就是我选择的做法。

    我有一个小的 orientStart.ps1 文件,我可以在任何看起来像这样的地方运行它。

    环境ORIENTDB_HOME 始终是必需的。

        Push-Location
        $env:ORIENTDB_HOME="C:\orientdb-3.1.1"
        Set-Location $env:ORIENTDB_HOME\bin
        $SERVER ="server.bat"
        cmd /c $SERVER
        Pop-Location
    

    【讨论】:

      【解决方案3】:

      从以管理员权限启动的 Windows CLI 中启动 OrientDB 的 server.bat。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-22
        • 2016-07-20
        • 2012-09-29
        • 1970-01-01
        • 2013-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多