尝试重新启动无法启动的 CacheManager 时出现此异常。
原因:org.infinispan.jmx.JmxDomainConflictException:ISPN000034:已经在“org.infinispan”JMX 域下注册了一个 JMX MBean 实例 type=CacheManager,name="DefaultCacheManager"。如果您想允许使用相同 JMX 域配置的多个实例,请在 org.infinispan.jmx.JmxUtil.buildJmxDomain(JmxUtil.java:53) 的“globalJmxStatistics”配置元素中启用“allowDuplicateDomains”属性
我认为这是一个错误,但我正确吗?
使用的版本是 9.0.0.Final。
编辑
使用此代码段可以看到错误。
import org.infinispan.configuration.cache.*;
import org.infinispan.configuration.global.*;
import org.infinispan.manager.*;
class Main {
public static void main(String[] args) {
System.out.println("Starting");
GlobalConfigurationBuilder global = GlobalConfigurationBuilder.defaultClusteredBuilder();
global.transport()
.clusterName("discover-service-poc")
.initialClusterSize(3);
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.REPL_SYNC);
DefaultCacheManager cacheManager = new DefaultCacheManager(global.build(), builder.build(), false);
try {
System.out.println("Starting cacheManger first time.");
cacheManager.start();
} catch (Exception e) {
e.printStackTrace();
cacheManager.stop();
}
try {
System.out.println("Starting cacheManger second time.");
System.out.println("startAllowed: " + cacheManager.getStatus().startAllowed());
cacheManager.start();
System.out.println("Nothing happening because in failed state");
System.out.println("startAllowed: " + cacheManager.getStatus().startAllowed());
} catch (Exception e) {
e.printStackTrace();
cacheManager.stop();
}
cacheManager = new DefaultCacheManager(global.build(), builder.build(), false);
cacheManager.start();
}
}