Looking at the default values in conf/jndi.xml, the transaction manager is
bound to the following values:
     <entry key="javax.transaction.TransactionManager"
value-ref="transactionManager" />
    <entry key="java:comp/env/smx/TransactionManager"
value-ref="transactionManager" />

So you need to configure hibernate to look at one of those values.

On Tue, Mar 3, 2009 at 14:40, Andrea Zoppello <[email protected]> wrote:

> Hi Guillaume,
>
> I think the user transaction object shoud be bound automatically to the
> jndi tree
> by the transaction manager.
>
> Do we miss something in configuration file??
>
> Andrea
> Guillaume Nodet ha scritto:- Show quoted text -
>
>  Is the UserTransaction object bound in your spring JNDI configuration file
>> ?
>>
>> On Mon, Mar 2, 2009 at 10:35, Andrea Zoppello <[email protected]>
>> wrote:
>>
>>
>>
>>> Hi,
>>>
>>> I've developed a custom servicemix-bean component that initialize a jbpm
>>> engine.
>>>
>>> The engine use hibernate and i want to configure the hibernate.cf.xml
>>> file
>>> to be able to use JTA Transactions.
>>>
>>> The hibernate.cfg.xml file looks like:
>>>
>>> <hibernate-configuration>
>>> <session-factory>
>>>
>>>  <!-- hibernate dialect -->
>>>   <property
>>>
>>> name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
>>>   <property
>>> name="hibernate.connection.datasource">java:comp/env/jdbc/jbpm</property>
>>>   <property
>>>
>>> name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.GeronimoTransactionManagerLookup</property>
>>>
>>>   <property
>>>
>>> name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
>>>   <property name="hibernate.query.substitutions">true 1, false
>>> 0</property>
>>>   <property
>>> name="jta.UserTransaction">java:comp/UserTransaction</property>
>>> .....
>>>
>>> And i've declared te jbpm datasource as:
>>>
>>> <entry key="java:comp/env/jdbc/jbpm">
>>>      <bean id="jbpm-ds"
>>>            class="org.apache.commons.dbcp.managed.BasicManagedDataSource"
>>>            destroy-method="close">
>>>            <property name="driverClassName"
>>> value="com.mysql.jdbc.Driver"/>
>>>            <property name="url"
>>> value="jdbc:mysql://localhost:3306/jbpm"/>
>>>                      <property name="username" value="jbpm"/>
>>>            <property name="password" value="jbpm"/>
>>>            <property name="defaultCatalog" value="jbpm"/>
>>>            <property name="transactionManager" ref="transactionManager"/>
>>>            <property name="XADataSource"
>>> value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/>
>>>
>>>      </bean>
>>>    </entry>
>>>
>>> Within this configuration the XADatsource to mysql database seems to be
>>> configured directly but i've a fault gettin the user transaction. The
>>> exception is:
>>>
>>> ERROR - JTATransaction                 - Could not find UserTransaction
>>> in
>>> JNDI
>>> javax.naming.NamingException: scheme java not recognized
>>>      at
>>>
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>>>      at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>>>      at
>>>
>>> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
>>> ava:57)
>>>      at
>>> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>>>      at
>>> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>>>      at
>>> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
>>> 32)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>>>
>>>      at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>>>      at
>>>
>>> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>>>      at
>>> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
>>> ERROR - JobExecutorThread              - exception in job executor
>>> thread.
>>> waiting 5000 milliseconds
>>>
>>> org.hibernate.TransactionException: Could not find UserTransaction in
>>> JNDI:
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
>>>      at
>>>
>>> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
>>> ava:57)
>>>      at
>>> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>>>      at
>>> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>>>      at
>>> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
>>> 32)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>>>
>>>      at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>>>      at
>>>
>>> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>>>      at
>>> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
>>> Caused by: javax.naming.NamingException: scheme java not recognized
>>>      at
>>>
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>>>      at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>>>      ... 10 more
>>> ERROR - JTATransaction                 - Could not find UserTransaction
>>> in
>>> JNDI
>>> javax.naming.NamingException: scheme java not recognized
>>>      at
>>>
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>>>      at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>>>      at
>>>
>>> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
>>> ava:57)
>>>      at
>>> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>>>      at
>>> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>>>      at
>>> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
>>> 32)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>>>
>>>      at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>>>      at
>>>
>>> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>>>      at
>>> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
>>> ERROR - JobExecutorThread              - exception in job executor
>>> thread.
>>> waiting 10000 millisecond
>>> s
>>> org.hibernate.TransactionException: Could not find UserTransaction in
>>> JNDI:
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
>>>      at
>>>
>>> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
>>> ava:57)
>>>      at
>>> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>>>      at
>>> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>>>      at
>>> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
>>> 32)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>>>
>>>      at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>>>      at
>>>
>>> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>>>      at
>>> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
>>> Caused by: javax.naming.NamingException: scheme java not recognized
>>>      at
>>>
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>>>      at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>>>      ... 10 more
>>> ERROR - JTATransaction                 - Could not find UserTransaction
>>> in
>>> JNDI
>>> javax.naming.NamingException: scheme java not recognized
>>>      at
>>>
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>>>      at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>>>      at
>>>
>>> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
>>> ava:57)
>>>      at
>>> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>>>      at
>>> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>>>      at
>>> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
>>> 32)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>>>
>>>      at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>>>      at
>>>
>>> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>>>      at
>>> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
>>> ERROR - JobExecutorThread              - exception in job executor
>>> thread.
>>> waiting 20000 millisecond
>>> s
>>> org.hibernate.TransactionException: Could not find UserTransaction in
>>> JNDI:
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
>>>      at
>>>
>>> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
>>> ava:57)
>>>      at
>>> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>>>      at
>>> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>>>      at
>>> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
>>> 32)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>>>
>>>      at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>>>      at
>>>
>>> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>>>      at
>>> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
>>> Caused by: javax.naming.NamingException: scheme java not recognized
>>>      at
>>>
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>>>      at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>>>      ... 10 more
>>> ERROR - JTATransaction                 - Could not find UserTransaction
>>> in
>>> JNDI
>>> javax.naming.NamingException: scheme java not recognized
>>>      at
>>>
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>>>      at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>>>      at
>>>
>>> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
>>> ava:57)
>>>      at
>>> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>>>      at
>>> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>>>      at
>>> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
>>> 32)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>>>
>>>      at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>>>      at
>>>
>>> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>>>      at
>>> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
>>> ERROR - JobExecutorThread              - exception in job executor
>>> thread.
>>> waiting 40000 millisecond
>>> s
>>> org.hibernate.TransactionException: Could not find UserTransaction in
>>> JNDI:
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
>>>      at
>>>
>>> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
>>> ava:57)
>>>      at
>>> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>>>      at
>>> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>>>      at
>>> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
>>> 32)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>>>      at
>>>
>>> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>>>
>>>      at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>>>      at
>>>
>>> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>>>      at
>>> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
>>> Caused by: javax.naming.NamingException: scheme java not recognized
>>>      at
>>>
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>>>      at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>      at
>>> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>>>      ... 10 more
>>>
>>> Any idea???
>>>
>>>
>>>
>>
>>
>>
>>
>>
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to