我目前使用JBossCache 3.2作为Hibernate二级缓存,用于EJB3环境(GlassFish 2)中实体的集群缓存,运行良好。现在我正在使用Infinispan 4.2.1进行评估,令我惊讶的是我得到了NamedCacheNotFoundException
。
我在实体级别使用注释,如
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL, region = "myRegion")
和exeptions就像
org.infinispan.CacheException: org.infinispan.manager.NamedCacheNotFoundException: Cache: myRegion
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:115)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:126)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:231)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:218)
at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:201)
at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:194)
at org.infinispan.interceptors.InvalidationInterceptor.invalidateAcrossCluster(InvalidationInterceptor.java:220)
....
通过jmx查看我可以看到相应的MBean,但它CacheName
就像myRegion(invalidation_sync)
。 Infinispan似乎添加了后缀(invalidation_sync)
。
这是我问题的根本原因吗?怎么绕过它?我的Infinispan配置主要是hibernate-infinsipan附带的配置,但启用了jmx。