【问题标题】:ISPN000373: Attempted to start a cache using configuration template 'XXXX' with Infinispan 9.2.5ISPN000373:尝试使用配置模板“XXXX”和 Infinispan 9.2.5 启动缓存
【发布时间】:2020-07-07 08:25:47
【问题描述】:

在应用程序启动时,我尝试像这样创建缓存:

我用来创建缓存的代码如下:

 final Configuration entityConfiguration = myCacheManager.getCacheConfiguration( "entity" );
 Objects.requireNonNull( entityConfiguration );
 myCacheManager.createCache( "XXXX", entityConfiguration );

这会导致以下异常:

org.infinispan.commons.CacheConfigurationException: ISPN000373: Attempted to start a cache using configuration template 'XXXX'
    at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:616)
    at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:589)
    at org.infinispan.manager.DefaultCacheManager.internalGetCache(DefaultCacheManager.java:475)
    at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:461)
    at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:447)
    at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:413)

我理解这个异常意味着我不能有一个与缓存模板同名的缓存。

我查看了org.infinispan.manager.DefaultCacheManager(版本 9.2.5.Final)并找到了这个实现:

    @Override
    public <K, V> Cache<K, V> createCache(String name, Configuration configuration) {
      defineConfiguration(name, configuration);
      return getCache(name);
    }

这使用传入的名称定义配置。在本例中为"XXXX",然后继续尝试创建具有完全相同名称的缓存。

在调用getCache(name) 时,它调用wireAndStartCache,它检查配置是否与缓存名称相同。总是这样,因为前面的代码传递了完全相同的字符串。我不明白这种方法怎么可能奏效。

如何避免此错误并创建缓存?

【问题讨论】:

    标签: infinispan-9


    【解决方案1】:

    我上面发布的代码的问题是getCacheConfiguration( "entity" ); 返回了一个模板。因此,您可以使用构建器有效地克隆它,但无需设置模板标志。

    final Configuration entityTemplate = myCacheManager.getCacheConfiguration( "entity" );
    Objects.requireNonNull( entityTemplate  );
    final ConfigurationBuilder builder = new ConfigurationBuilder();
    builder.read( entityTemplate );
    builder.template( false );
    myCacheManager.createCache( "XXXX", builder.build() );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-24
      • 2014-09-29
      • 2017-05-20
      • 2014-08-10
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 2015-09-07
      相关资源
      最近更新 更多