无法打开只读环境

时间:2020-09-14 06:32:02

标签: java database xodus

我正在尝试通过以下方式打开只读环境:

  public Environment getReadOnlyEnvironment(String xodusRoot, String instance) {
    final EnvironmentConfig config = new EnvironmentConfig().
            setLogDataReaderWriterProvider("jetbrains.exodus.io.WatchingFileDataReaderWriterProvider").
            setLogCacheShared(false).
            setMemoryUsagePercentage(10);
    config.setLogLockTimeout(3000);
    Environment env = Environments.newInstance(xodusRoot + instance, config);
    return env;
  }

问题在于它不断抛出此错误:

Caused by: javax.management.InstanceAlreadyExistsException: jetbrains.exodus.env: type=EnvironmentConfig, location=\var\xodus\master
    at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
    at jetbrains.exodus.management.MBeanBase.<init>(MBeanBase.java:36)

1 个答案:

答案 0 :(得分:1)

我认为这是bug。要解决此问题,请关闭管理:fork := true, javaOptions ++= Seq( "-Djava.security.krb5.conf=/krb5.conf" )