【发布时间】:2016-08-12 17:54:20
【问题描述】:
我正在使用 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());
上述sn-p代码存在于部署在同一应用服务器内的N 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);
如何正确处理这种行为?
【问题讨论】:
标签: java caching concurrency infinispan jgroups