我正在使用infinispan,并通过下面的代码行初始化DefaultCacheManager:
GlobalConfigurationBuilder gcb = new GlobalConfigurationBuilder();
gcb.globalJmxStatistics().enabled(false).allowDuplicateDomains(true);
gcb.transport().defaultTransport().addProperty(JGroupsTransport.CONFIGURATION_STRING,
configurator.getProtocolStackString());
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.DIST_SYNC).expiration().lifespan(24l, TimeUnit.HOURS);
builder.clustering().stateTransfer().awaitInitialTransfer(false);
builder.clustering().hash().numOwners(2);
cacheManager = new DefaultCacheManager(gcb.build(), builder.build());上面的代码片段存在于部署在同一个应用服务器中的N war中。
因此,当我同时部署所有war时,在执行新的DefaultManager()指令时会遇到并发异常
org.infinispan.jmx.JmxDomainConflictException: ISPN000034: There's already a JMX MBean instance type=CacheManager,name="DefaultCacheManager" already registered under 'org.infinispan' JMX domain. 即使我指定了配置属性,也会发生这种情况:
allowDuplicateDomains(true);我该如何正确处理这种行为呢?
发布于 2016-08-14 00:47:30
我创建了一个reproducer for this issue,据我所知,它看起来没问题。
只有几个陷阱和提示:
https://stackoverflow.com/questions/38923855
复制相似问题