Infinispan不保留文件Wildfly 10中的缓存

时间:2016-08-05 20:33:53

标签: java infinispan wildfly-10

我使用的是Infinispan,但重启时我的Wildfly没有将缓存保留在文件存储中

@Resource(lookup = "java:jboss/infinispan/container/server")
private EmbeddedCacheManager manager;

public String test() {
this.cache.put(UUID.randomUUID().toString(), new Date());
    this.cache.put(UUID.randomUUID().toString(), new Date());
    this.cache.put(UUID.randomUUID().toString(), new Date());
    this.cache.put(UUID.randomUUID().toString(), new Date());
    this.cache.put(UUID.randomUUID().toString(), new Date());
}

@PostConstruct
protected void init() {
    this.manager.start();
    this.cache = this.manager.getCache();
}

这是我的standalone.xml

<cache-container name="server" default-cache="default" module="org.wildfly.clustering.web.infinispan">
    <local-cache name="default">
        <transaction mode="BATCH"/>
        <file-store relative-to="jboss.server.data.dir" path="infinispan" passivation="false" purge="false"/>
    </local-cache>
</cache-container>

1 个答案:

答案 0 :(得分:1)

解决方案:直接注入缓存。这可确保在您需要时安装缓存使用的缓存配置。此外,WildFly将自动处理Cache及其依赖项的生命周期。

e.g。

@Resource(lookup = "java:jboss/infinispan/cache/server/default")
private Cache<UUID, Date> cache;

我还建议直接使用UUID类型,而不是字符串,因为它们会更有效地序列化。