Announcement Announcement Module
Collapse
No announcement yet.
Infinispan transaction configuration problem Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Infinispan transaction configuration problem

    I've been trying to replace EHCache by Infispan as 2nd level cache for Hibernate 4, running with Spring 3.1. To ensure consistency I'd like to have the caches using the transaction manager. But I can't seem to have Infinispan use Spring's transaction manager.

    Is there somebody who actually succeeded in this ? If so, can you share you configuration ? Or point out what's wrong in mine ?

    Many thanks !


    This is my configuration. Most probably there's an obvious error in there. But which one ?

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:task="http://www.springframework.org/schema/task"
    
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    
              http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    
              http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    
              http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
    
      <!-- Scan our code for Spring annotations @Component, @Repository and @Service annotated classes are added -->
      <!-- to the Spring configuration as if they're declared in this file. -->
      <context:component-scan base-package="com.foo" scoped-proxy="targetClass"/>
    
    
      <!-- configuration transactions are done with @Transactional -->
      <tx:annotation-driven transaction-manager="transactionManager"/>
    
      <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
      </bean>
    
      <bean id="jpaTemplate" class="org.springframework.orm.jpa.JpaTemplate">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
      </bean>
    
      <!-- Describes how to connect to the database -->
      <!-- Describes to reuse database connections as making them is expensive -->
      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="user" value="${database.user.name}"/>
        <property name="password" value="${database.user.password}"/>
        <property name="driverClass" value="${database.driver}"/>
        <property name="jdbcUrl" value="${database.url}"/>
        <property name="initialPoolSize" value="1"/>
        <property name="maxPoolSize" value="4"/>
        <property name="minPoolSize" value="1"/>
        <property name="acquireIncrement" value="1"/>
        <property name="acquireRetryAttempts" value="0"/>
      </bean>
    
      <!-- Describes how to create hibernate sessions -->
      <!-- "persistenceUnitName" points to META-INF/persistence.xml -->
      <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence"/>
        <property name="persistenceUnitName" value="foo"/>
        <property name="dataSource" ref="dataSource"/>
        <property name="jpaProperties">
          <props>
            <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.infinispan.InfinispanRegionFactory</prop>
            <prop key="hibernate.cache.use_second_level_cache">true</prop>
            <prop key="hibernate.cache.use_query_cache">true</prop>
            <prop key="hibernate.cache.infinispan.statistics">true</prop>
            <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</prop>
            <prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossStandaloneJTAManagerLookup</prop>
            <prop key="hibernate.hbm2ddl.auto">create</prop>
            <prop key="hibernate.jdbc.batch_size">1000</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="hibernate.dialect">${database.hibernate.dialect}</prop>
          </props>
        </property>
      </bean>
    </beans>

  • #2
    really nobody ? :-(

    Comment


    • #3
      I have the impression Infinispan usage is not very common yet ...

      Comment


      • #4
        Hello ? Anybody there ?

        Comment

        Working...
        X