我正在尝试通过以下方式打开只读环境:
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)
答案 0 :(得分:1)
我认为这是bug。要解决此问题,请关闭管理:fork := true,
javaOptions ++= Seq(
"-Djava.security.krb5.conf=/krb5.conf"
)
。