Infinispan local cache error: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start()
Infinispan local cache error: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start()
我已将 Spring 引导服务从 5.2.20.Final 升级到 Infinispan 9.4.16.Final。该服务有两个 XML 文件。我使用转换脚本来转换它们。两者都有 local-cache
个条目并且没有其他类型的缓存。一个被转换工具留下空 transport
元素。
当我们部署和运行这些服务时,我们经常会在启动时看到这个警告:
org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start() on object of type GlobalConfigurationManagerImpl
以上是我们看到的第一个warning/error。没有堆栈跟踪。当我们只使用本地缓存时,为什么它会调用 GlobalConfigurationManagerImpl?
日志中几行之后,我看到许多 The cache has been stopped and invocations are not allowed!
错误。我们看到的最后一个错误如下。服务启动失败
Caused by: org.infinispan.commons.CacheException: Initial state transfer timed out for cache org.infinispan.CONFIG on <server_name>
为什么这些 errors/warnings 在启动时发生?配置文件有问题吗?我在网上搜索过,没有找到解决方案。
~~更多信息~~~
这是两个 XML 配置文件之一:
<infinispan
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "urn:infinispan:config:9.4 http://www.infinispan.org/schemas/infinispan-config-9.4.xsd"
xmlns = "urn:infinispan:config:9.4">
<threads/>
<cache-container name = "TestCenterServiceCache">
<!-- The conversion tool added this empty "transport" element. It was not present in our old config file -->
<transport/>
<jmx domain = "org.infinispan.TestCenterServiceCache"/>
<local-cache name = "authorizedLocations">
<expiration lifespan = "3600000"/>
</local-cache>
<!--caching for 24 hours: 3,600,000 milliseconds/hr x 24 hours -->
<local-cache name = "proximitySearchConfiguration">
<expiration lifespan = "86400000"/>
</local-cache>
</cache-container>
</infinispan>
以上是通过applicationContext.xml实例化的。第一个警告 (GlobalConfigurationManagerImpl.start()
) 正在引用这些 bean。
<bean id="infinispanCacheManager"
class="org.infinispan.spring.embedded.support.InfinispanEmbeddedCacheManagerFactoryBean"
p:configurationFileLocation="classpath:testCenterServices-cache-config.xml" />
<bean id="cacheManager"
class="org.infinispan.spring.embedded.provider.SpringEmbeddedCacheManager">
<constructor-arg ref="infinispanCacheManager" />
</bean>
这是第二个 XML 配置文件:
<?xml version="1.0" ?>
<infinispan
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "urn:infinispan:config:9.4 http://www.infinispan.org/schemas/infinispan-config-9.4.xsd"
xmlns = "urn:infinispan:config:9.4">
<threads />
<cache-container name="AtlasServicesCacheManager">
<local-cache name="allLocaleCache" />
<local-cache name="localeCacheByID" />
<local-cache name="countryByCode" />
<local-cache name="allActiveCountries" />
<local-cache name="allCountries" />
<local-cache name="allStatesForCountryCode" />
<local-cache name="allActiveStatesForCountryCode" />
<local-cache name="stateForCountryCodeStateCode" />
</cache-container>
</infinispan>
以上是通过java代码实例化的。
@Bean(name="atlasServicesCacheManager")
public CacheManager makeCacheManager() throws IOException {
return new SpringEmbeddedCacheManager(new DefaultCacheManager("atlas-cache-config.xml"));
}
我不知道这是否有意义,但只有在升级后,我们才会记录包含 "JGroups" 的消息,例如 Unable to use any JGroups configuration mechanisms provided in properties {}. Using default JGroups configuration!
.
服务实例在 Windows Server 2012 R2 Standard (Windows 8) 上 运行ning。
要解决此问题,请删除本地缓存的空 <transport />
元素。
添加那个空元素似乎是 config-converter
中的一个缺陷。有了空的 transport
元素,似乎 Infinispan 已部分配置为集群同步。有关潜在问题的详细信息,请参阅错误报告:https://issues.redhat.com/browse/ISPN-11854.
我已将 Spring 引导服务从 5.2.20.Final 升级到 Infinispan 9.4.16.Final。该服务有两个 XML 文件。我使用转换脚本来转换它们。两者都有 local-cache
个条目并且没有其他类型的缓存。一个被转换工具留下空 transport
元素。
当我们部署和运行这些服务时,我们经常会在启动时看到这个警告:
org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start() on object of type GlobalConfigurationManagerImpl
以上是我们看到的第一个warning/error。没有堆栈跟踪。当我们只使用本地缓存时,为什么它会调用 GlobalConfigurationManagerImpl?
日志中几行之后,我看到许多 The cache has been stopped and invocations are not allowed!
错误。我们看到的最后一个错误如下。服务启动失败
Caused by: org.infinispan.commons.CacheException: Initial state transfer timed out for cache org.infinispan.CONFIG on <server_name>
为什么这些 errors/warnings 在启动时发生?配置文件有问题吗?我在网上搜索过,没有找到解决方案。
~~更多信息~~~
这是两个 XML 配置文件之一:
<infinispan
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "urn:infinispan:config:9.4 http://www.infinispan.org/schemas/infinispan-config-9.4.xsd"
xmlns = "urn:infinispan:config:9.4">
<threads/>
<cache-container name = "TestCenterServiceCache">
<!-- The conversion tool added this empty "transport" element. It was not present in our old config file -->
<transport/>
<jmx domain = "org.infinispan.TestCenterServiceCache"/>
<local-cache name = "authorizedLocations">
<expiration lifespan = "3600000"/>
</local-cache>
<!--caching for 24 hours: 3,600,000 milliseconds/hr x 24 hours -->
<local-cache name = "proximitySearchConfiguration">
<expiration lifespan = "86400000"/>
</local-cache>
</cache-container>
</infinispan>
以上是通过applicationContext.xml实例化的。第一个警告 (GlobalConfigurationManagerImpl.start()
) 正在引用这些 bean。
<bean id="infinispanCacheManager"
class="org.infinispan.spring.embedded.support.InfinispanEmbeddedCacheManagerFactoryBean"
p:configurationFileLocation="classpath:testCenterServices-cache-config.xml" />
<bean id="cacheManager"
class="org.infinispan.spring.embedded.provider.SpringEmbeddedCacheManager">
<constructor-arg ref="infinispanCacheManager" />
</bean>
这是第二个 XML 配置文件:
<?xml version="1.0" ?>
<infinispan
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "urn:infinispan:config:9.4 http://www.infinispan.org/schemas/infinispan-config-9.4.xsd"
xmlns = "urn:infinispan:config:9.4">
<threads />
<cache-container name="AtlasServicesCacheManager">
<local-cache name="allLocaleCache" />
<local-cache name="localeCacheByID" />
<local-cache name="countryByCode" />
<local-cache name="allActiveCountries" />
<local-cache name="allCountries" />
<local-cache name="allStatesForCountryCode" />
<local-cache name="allActiveStatesForCountryCode" />
<local-cache name="stateForCountryCodeStateCode" />
</cache-container>
</infinispan>
以上是通过java代码实例化的。
@Bean(name="atlasServicesCacheManager")
public CacheManager makeCacheManager() throws IOException {
return new SpringEmbeddedCacheManager(new DefaultCacheManager("atlas-cache-config.xml"));
}
我不知道这是否有意义,但只有在升级后,我们才会记录包含 "JGroups" 的消息,例如 Unable to use any JGroups configuration mechanisms provided in properties {}. Using default JGroups configuration!
.
服务实例在 Windows Server 2012 R2 Standard (Windows 8) 上 运行ning。
要解决此问题,请删除本地缓存的空 <transport />
元素。
添加那个空元素似乎是 config-converter
中的一个缺陷。有了空的 transport
元素,似乎 Infinispan 已部分配置为集群同步。有关潜在问题的详细信息,请参阅错误报告:https://issues.redhat.com/browse/ISPN-11854.