【问题标题】:Wildfly 10 Infinispan TreeCache is not workingWildfly 10 Infinispan TreeCache 不工作
【发布时间】:2017-11-10 17:25:03
【问题描述】:

我正在从 Wildfly 8.2 迁移到 10.1 不幸的是,我遇到了 Infinispan TreeCache 的问题。

这里有几个问题:

  1. Wildfly 10 不再支持调用批处理 配置

这是我的配置:

<subsystem xmlns="urn:jboss:domain:infinispan:4.0">
...
  <cache-container name="my_container" default-cache="my_tree_cache" jndi-name="java:jboss/my_container">
      <transport lock-timeout="60000"/>
      <local-cache name="my_cache"/> 
      <local-cache name="my_tree_cache" batching="true"/> 
  </cache-container>
</subsystem>

启动时出错:

> Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[345,17] 
> Message: WFLYCTL0197: Unexpected attribute 'batching' encountered
  1. 如果我删除“批处理”属性。我收到此错误:
com.daiwacm.modjsf.dataaccess.DataException: getTreeCache has failed for jndi value (my_tree_cache)
Caused by: org.infinispan.commons.CacheConfigurationException: invocationBatching is not 
enabled for cache 'my_tree_cache'. Make sure this is enabled by calling configurationBuilder.invocationBatching().enable()
  1. 如果我以编程方式设置批处理:
Context context = new InitialContext();
CacheContainer cacheContainer = (CacheContainer) context.lookup(jndiName);
TreeCacheFactory tcf = new TreeCacheFactory();
Cache cache = cacheContainer.getCache(cacheName);
cache.getCacheManager().defineConfiguration(cacheName, 
     new ConfigurationBuilder().read(cache.getCacheConfiguration()).invocationBatching().enable().build());
TreeCache treeCache = tcf.createTreeCache(cache);

我收到此错误:

> Caused by: org.infinispan.commons.CacheConfigurationException:
> ISPN000381: This configuration is not supported for simple cache
>         at org.infinispan.configuration.cache.ConfigurationBuilder.validateSimpleCacheConfiguration(ConfigurationBuilder.java:219)
> ...
>         at org.infinispan.configuration.cache.InvocationBatchingConfigurationBuilder.build(InvocationBatchingConfigurationBuilder.java:12)
> ...

【问题讨论】:

    标签: wildfly wildfly-10 infinispan infinispan-8 infinispan-9


    【解决方案1】:

    不要以编程方式设置配置;我不确定这是一种有效的方法,尽管它似乎〜工作。

    您要查找的配置选项是

    <local-cache name="my_cache"> 
        <transaction transaction-mode="BATCH" />
    </local-cache>
    

    (如有任何疑问,请查阅docs/schema/jboss-as-infinispan_4_0.xsd 中的架构)

    最后一个问题是,对于本地缓存,WF 会在可能的情况下自动启用某些优化。当您以编程方式重新定义缓存时,会设置此优化(简单缓存)。所以你必须设置

    new ConfigurationBuilder().read(cache.getCacheConfiguration())
        .simpleCache(false)
        .invocationBatching().enable()
    

    【讨论】:

    • 对不起,两者都不起作用。 (注意:第一个应该是 以便 Wildfly 启动。)我得到了同样的错误。
    • 我承认我没有尝试过,但“不起作用”还不够,请使用建议的解决方案编辑您的问题。
    • @jersey-city-ninja,Flavius 正在努力提供帮助,所以如果您能告诉我们您的突出错误是什么,将会很有帮助。为了使事情正常工作,您应该尝试通过独立的 XML 文件(在 xsd 之后)配置缓存,因为它涵盖了允许的元素。 XSD 可以找到here
    • 报错和之前一样“org.infinispan.commons.CacheConfigurationException: invocationBatching is not enabled for cache 'my_tree_cache' ...”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2017-10-23
    • 2017-01-10
    • 2015-08-28
    • 1970-01-01
    • 2019-09-23
    相关资源
    最近更新 更多