3.2.2.10. Infinispan による JPA/Hibernate 2 次キャッシュの置き換え
概要
2 次キャッシュ (2LC) に関し、 JBoss Cache は Infinispan に置き換えられました。これにより、persistence.xml
ファイルの変更が必要になります。使用する 2 次キャッシュが JPA または Hibernate であるかによって、構文は若干異なります。ここで取り上げる例は Hibernate の使用が前提となっています。
以下は JBoss Enterprise Application Platform 5.x の
persistence.xml
ファイルで 2 次キャッシュのプロパティーを設定する例になります。
<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"/>次の手順ではこの例を用いて JBoss Enterprise Application Platform 6 で Infinispan を設定します。
手順3.17 Infinispan を使用するよう persistence.xml
ファイルを変更する
JBoss Enterprise Application Platform 6 の JPA アプリケーション向けに Infinispan を設定する
JBoss Enterprise Application Platform 6 で Infinispan を使用し、プロパティーを指定して JPA アプリケーションに対して同じ設定を行う方法は次の通りです。<property name="hibernate.cache.use_second_level_cache" value="true"/>
さらに、次のようにENABLE_SELECTIVE
またはALL
を値としてshared-cache-mode
を指定する必要があります。- デフォルトは
ENABLE_SELECTIVE
で、これが推奨値となります。この場合、エンティティーは明示的にキャッシュ可能であるとマークされない限りキャッシュされません。<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
ALL
の場合、キャッシュ不可能であるとマークされていてもエンティティーは常にキャッシュされます。<shared-cache-mode>ALL</shared-cache-mode>
JBoss Enterprise Application Platform 6 のネイティブ Hibernate アプリケーションに対して Infinispan を設定する
JBoss Enterprise Application Platform 6 で Infinispan を使用し、ネイティブ Hibernate アプリケーションに対して同じ設定を指定する方法は次の通りです。<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"/>
また、次の依存関係をMANIFEST.MF
ファイルに追加する必要があります。Manifest-Version: 1.0 Dependencies: org.infinispan, org.hibernate
Hibernate のキャッシュプロパティーに関する詳細は 「Hibernate キャッシュプロパティー」 を参照してください。