2015-02-24 5 views
4

Я пытаюсь переключиться с ehcache, который, кажется, хорошо работает с «родным» Infinispan Wildfly. Я не внес никаких изменений в конфигурацию по умолчанию WildFly, и я использую встроенные модули hibernate и infinispan. Я начал с базовой конфигурацией живучести, как:WildFly8.2.0.Final, Hibernate, Infinispan: org.hibernate.cache.CacheException: Неподдерживаемый тип доступа [чтение-запись]

<persistence-unit name="frmwrkjta" transaction-type="JTA"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>java:jboss/ds/frmwrkmysqljta</jta-data-source> 

     <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode><!-- ALL, NONE, ENABLE_SELECTIVE,DISABLE_SELECTIVE, UNSPECIFIED --> 
     <properties> 
     <property name="shared-cache-mode" value="ENABLE_SELECTIVE" /> 
<!--   <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/> --> 
     <property name="net.sf.ehcache.configurationResourceName" value="META-INF/ehcache-persistence.xml" /> 
     <property name="hibernate.cache.use_query_cache" value="true" /> 
     <property name="hibernate.cache.use_second_level_cache" value="true" /> 
     <property name="hibernate.generate_statistics" value="true" /> 
     <property name="hibernate.cache.infinispan.statistics" value="true" /> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /> 
<!--   <property name="hibernate.hbm2ddl.auto" value="update" /> --> 
     <property name="hibernate.hbm2ddl.auto" value="validate" /> 
     <property name="hibernate.show_sql" value="true" /> 
     <property name="org.hibernate.envers.audit_table_suffix" value="_log" /> 
     <property name="org.hibernate.envers.revision_field_name" value="dbrevision_r" /> 
     <property name="org.hibernate.envers.revision_type_field_name" value="dbrevtype" /> 
     </properties> 
    </persistence-unit> 

Позже я пытался добавить свойства гугле ...

  • Это первый был мой Favorit:

     <property name="hibernate.cache.default_cache_concurrency_strategy" value="read-only"/> 
    

впоследствии также используя все необязательные значения, такие как transactional, read-only, nontrict read-write, даже read-write;)

  • затем:

     <property name="hibernate.cache.infinispan.container" value="hibernate"/> 
    
  • позже:

     <property name="hibernate.cache.region.factory_class" value="org.jboss.as.jpa.hibernate4.infinispan.SharedInfinispanRegionFactory" /> 
    

Все это заканчивается неудавшейся развертывания за исключением:

org.hibernate.cache.CacheException: Unsupported access type [read-write] 

Я использую только @Cacheable аннотации JPA в в субъектах ...

Что я упускаю, что я делаю не так?

EDIT:

Не уверен, имеет ли это значение. Я добавляю опущена начало persistence.xml ... Я пытаюсь использовать JPA2.1:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1"> 

ответ

4

Infinispan Hibernate 2LC поддерживает только read-only и transactional стратегии. Мы планируем добавить read-write и non-strict-read-write, но мы еще не сделали этого.

Не должно быть необходимости добавлять hibernate.cache.infinispan.container или hibernate.cache.region.factory_class.

Я хотел бы предложить вам начать с простой конфигурацией, как это:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> 
<persistence-unit name="frmwrkjta"> 
    <description>example of enabling the second level cache.</description> 
    <jta-data-source>java:jboss/ds/frmwrkmysqljta</jta-data-source> 
    <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode> 
    <properties> 
     <property name="hibernate.cache.use_second_level_cache" value="true"/> 
    </properties> 
</persistence-unit> 
</persistence> 

А затем добавить свойства, как вы нуждаетесь в них, например, включите кеш запросов, если вам нужно ... и т. д.

+0

Привет, Галдер, спасибо за ваш ответ ... Я уменьшил persistence.xml до этого самого простого (значит, точно так же, как вы предложили) с тем же результатом ... ' org.hibernate.cache.CacheException: Неподдерживаемый тип доступа [чтение-запись] ' – mirec

+0

Повторить« read-write »_is_not_supported_ –

+0

Как я могу изменить чтение-запись на что-нибудь еще? Я не настраивал ничего подобного, почему он пытается использовать его по умолчанию? Даже когда я устанавливаю '<свойство name =" hibernate.cache.default_cache_concurrency_strategy "значение =" только для чтения "/>' – mirec

Смежные вопросы