3.2.2.10. Substituição do Cache de Segundo Nível JPA/Hibernate com o Infinispan


Sumário

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.

Este é um exemplo de como as propriedades para o cache de segundo nível eram especificadas no arquivo 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

  1. 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 um shared-cache-mode com um valor de ENABLE_SELECTIVE ou ALL 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>
      
  2. 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 arquivo MANIFEST.MF:
    Manifest-Version: 1.0
    Dependencies: org.infinispan, org.hibernate
    
Para mais informações sobre as propriedades do cache Hibernate, consulte Seção 3.2.2.11, “Propriedades do Cache Hibernate”.
Red Hat logoGithubRedditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

© 2024 Red Hat, Inc.