【发布时间】:2020-02-26 00:37:44
【问题描述】:
使用
- JBoss 7.1.0 EAP
- Infinispan 8.2.8.Final-redhat-1
是否可以通过 infinispan 使用钝化和基于内存的驱逐?
当我尝试使用此配置时:
ConfigurationBuilder config = new ConfigurationBuilder();
config.clustering().cacheMode(CacheMode.DIST_SYNC);
config.eviction()
.type(EvictionType.MEMORY)
.size(heapAllocationForCache);
config.persistence().passivation(true)
.addSingleFileStore()
.location("/path/to/cache-dir")
.purgeOnStartup(true);
当我尝试这个配置时,我得到了这个错误:
2019-10-30 11:28:59 INFO [] EvictionConfigurationBuilder:114 - ISPN000152:在未选择驱逐策略的情况下配置了钝化。只有手动驱逐的实体才会被钝化。
这里是验证逻辑:
if (!strategy.isEnabled()) {
if (maxEntries > 0) {
strategy(EvictionStrategy.LIRS);
log.debugf("Max entries configured (%d) without eviction strategy. Eviction strategy overriden to %s", maxEntries, strategy);
} else if (getBuilder().persistence().passivation() && strategy != EvictionStrategy.MANUAL) {
log.passivationWithoutEviction(); // <--------- this line is where the warning comes from
}
}
你不能在 Passivation 中使用基于内存的驱逐吗?或者这是 Infinispan 8.2.x 验证的错误?
注意我们不能设置
strategy(EvictionStrategy.LRU) 等因为这段代码:
if (strategy.isEnabled() && maxEntries <= 0)
throw new CacheConfigurationException("Eviction maxEntries value cannot be less than or equal to zero if eviction is enabled");
【问题讨论】:
标签: jboss infinispan