3.2.2.10. Substituição do Cache de Segundo Nível JPA/Hibernate com o Infinispan
O JBoss Cache foi substituído pelo Infinispan para o cache de segundo nível (2LC). Isso requer uma alteração ao arquivo persistence.xml
. A sintaxe é um pouco diferente e depende se você estiver usando JPA ou o cache de segundo nível Hibernate. Esses exemplos presumem que você esteja usando Hibernate.
persistence.xml
no JBoss EAP 5.x.
<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.jbc2.JndiMultiplexedJBossCacheRegionFactory"/> <property name="hibernate.cache.region.jbc2.cachefactory" value="java:CacheManager"/> <property name="hibernate.cache.use_second_level_cache" value="true"/> <property name="hibernate.cache.region.jbc2.cfg.entity" value="mvcc-entity"/> <property name="hibernate.cache.region_prefix" value="services"/>As etapas a seguir usarão este exemplo para configurar Infinispan no JBoss EAP 6.
Procedimento 3.16. Modificação do arquivo persistence.xml
para usar Infinispan
Configure Infinispan para um aplicativo JPA no JBoss EAP 6
Esta é a forma como você especifica as propriedades para atingir a mesma configuração para um aplicativo JPA usando Infinispan no JBoss EAP 6:<property name="hibernate.cache.use_second_level_cache" value="true"/>
Além disso, você precisa especificar umshared-cache-mode
com um valor deENABLE_SELECTIVE
ouALL
conforme abaixo:ENABLE_SELECTIVE
é o valor padrão e recomendado. Isto significa que as entidades não estão armazenadas em cache, a não ser que você marque-as, explicitamente, como armazenáveis em cache.<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
ALL
significa que as entidades são sempre armazenadas em cache, mesmo que você marque-as como não armazenáveis em cache.<shared-cache-mode>ALL</shared-cache-mode>
Configure Infinispan para um aplicativo Hibernate native no JBoss EAP 6
Esta é a forma como você pode especificar a mesma configuração para um aplicativo Hibernate nativo usando Infinispan com o JBoss EAP 6:<property name="hibernate.cache.region.factory_class" value="org.jboss.as.jpa.hibernate4.infinispan.InfinispanRegionFactory"/> <property name="hibernate.cache.infinispan.cachemanager" value="java:jboss/infinispan/container/hibernate"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> <property name="hibernate.cache.use_second_level_cache" value="true"/>
Você deve adicionar também as seguintes dependências ao arquivoMANIFEST.MF
:Manifest-Version: 1.0 Dependencies: org.infinispan, org.hibernate