[jboss-user] [JBossCache] - Problem registering JTA with Hibernate (JBossCache)

Pragmaticus do-not-reply at jboss.com
Tue Jul 11 17:20:00 EDT 2006


Hi, 
I have a configuration using TreeCache + Hibernate + Spring. I it almost working but I am not able to get the cache work with JBoss JTA. The problem seems to be that the I am not able to locate the JBoss TransactionManager when I deploy. Maybe this is not the right place to this post but I believe the problem must somehow be related to how I configure JBoss JTA and lookup of the JTA jndi resource. Any help would be appreciated.

The configuration file in Spring...

    <!-- Reference to the MySqlDS defined in JBoss -->
  |     <bean id="mySqlDS" class="org.springframework.jndi.JndiObjectFactoryBean">
  |         <property name="jndiName" value="MySqlDS"/>
  |     </bean>
  | 
  |     <!-- Hibernate configuration -->
  |     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  |         <property name="dataSource" ref="mySqlDS"/>
  |         <property name="schemaUpdate" value="true"/>
  |         <property name="mappingResources">
  |             <list>
  |                 <value>hibernate/userdomain.hbm.xml</value>
  |                 <value>hibernate/systemdomain.hbm.xml</value>
  |             </list>
  |         </property>
  |         <property name="hibernateProperties">
  |             <props>
  |                 <prop key="hibernate.dialect">${xtrade.hibernate.dialect}</prop>
  |                 <prop key="hibernate.showsql">${xtrade.hibernate.showsql}</prop>
  |                 <!-- <prop key="hibernate.hbm2ddl.auto">${xtrade.hibernate.hbm2ddl.auto}</prop> -->
  |                 <prop key="hibernate.cache.provider_class">${xtrade.hibernate.cache.provider}</prop>
  |                 <prop key="hibernate.cache.use_query_cache">true</prop>
  | 	            <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</prop>
  | 				<prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</prop>
  | 		     </props>
  |         </property>
  |         <!-- <property name="jtaTransactionManager" ref="jbossTxManager"/> -->
  |     </bean>
  | 
  | 

I have bundled the treecache.xml with the deployed JAR-file and I works ok when deployed outside JBoss (but without JTA).


  |     <!-- ==================================================================== -->
  |     <!-- Defines TreeCache configuration -->
  |     <!-- ==================================================================== -->
  |     <mbean code="org.jboss.cache.TreeCache" name="jboss.cache:service=TreeCache">
  |         <depends>jboss:service-Naming</depends>
  |         <depends>jboss:service-TransactionManager</depends>
  |         <attribute name="ClusterName">xtradeCluster</attribute>
  |         <attribute name="CacheMode">REPL_ASYNC</attribute>
  |         <attribute name="LockAcquisitionTimeout">15000</attribute>
  |         <attribute name="FetchStateOnStarup">true</attribute>
  |        ....
  | 

And here is the exception..

  | 22:50:15,233 INFO  [STDOUT] 22:50:15,231 ERROR [[/xtrade-web]] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
  | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [dao-config.xml]: Invocation of init method failed; nested exception is org.hibernate.cache.CacheException: org.hibernate.HibernateException: Could not locate TransactionManager
  | Caused by: 
  | org.hibernate.cache.CacheException: org.hibernate.HibernateException: Could not locate TransactionManager
  |         at org.hibernate.cache.TreeCacheProvider.start(TreeCacheProvider.java:58)
  |         at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:169)
  |         at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
  |         at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:871)
  | ...
  | Caused by: org.hibernate.HibernateException: Could not locate TransactionManager
  |         at org.hibernate.transaction.JNDITransactionManagerLookup.getTransactionManager(JNDITransactionManagerLookup.java:26)
  |         at org.hibernate.cache.TreeCacheProvider.start(TreeCacheProvider.java:53)
  |         ... 152 more
  | Caused by: javax.naming.NameNotFoundException: TransactionManager not bound
  |         at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
  | 
  | 


I would really love to see a code example with a working configuration for how to setup TreeCache + Hibernate + Spring.




View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957154#3957154

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3957154



More information about the jboss-user mailing list