В настоящее время я использую JBossCache 3.2 в качестве кэша Hibernate 2-го уровня для кластерного кэширования объектов в среде EJB3 (GlassFish 2), которая работает нормально. Сейчас я оцениваю использование Infinispan 4.2.1 вместо этого и, к моему удивлению, получаю NamedCacheNotFoundException
s.
Я использую аннотации на уровне сущности, такие как
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL, region = "myRegion")
и исключения похожи на
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)
. Похоже, что суффикс (invalidation_sync)
добавлен Infinispan.
Это основная причина моей проблемы? Как обойти это? Моя конфигурация Infinispan в основном та, которая поставляется с hibernate-infinsipan, но с включенным jmx.