0

While deploying in tomcat 8 server, I got following error

AssertionFailure: Transaction MARKED_FOR_JOINED after isOpen() call

Following are the details of the configuration.

  1. Server: tomcat 8
  2. Hibernate 3
  3. Spring 3

Context.xml of server..

I have done database setting:

<Resource name="jdbc/meerkatDataSource" 
      auth="Container" 
      type="javax.sql.DataSource"
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
      driverClassName="oracle.jdbc.driver.OracleDriver" 
      url="jdbc:oracle:thin:@10.237.59.104:1521:MEERKAT" 
      username="meerkat" 
      password="meerkat"
      maxActive="100" 
      maxIdle="20" 
      minIdle="5" 
      maxWait="10000"/>

    <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
    factory = "org.objectweb.jotm.UserTransactionFactory"/>

    <Transaction factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>

    <Resource
    name="TransactionSynchronizationRegistry"
    auth="Container"
    type="javax.transaction.TransactionSynchronizationRegistry"
    factory="org.objectweb.jotm.TransactionSynchronizationRegistryFactory"/>


Transaction.xml -->

     <bean id="transactionManager"  class="org.springframework.transaction.jta.JtaTransactionManager">
     <property name="userTransactionName" value="java:comp/UserTransaction"> 
     <property name="transactionSynchronizationRegistryName" value="java:comp/env/TransactionSynchronizationRegistry"/>
     </bean>

    <tx:annotation-driven transaction-manager="transactionManager" />


Persistent.xml-->

      <persistence-unit name="meerkatPersistenceUnit" transaction-type="JTA"> 
      <jta-data-source>jdbc/meerkatDataSource</jta-data-source>

Please suggest if any changes to be done. Also note that, database setting is strictly under tomcat server.

Bhavesh Odedra
  • 10,990
  • 12
  • 33
  • 58
  • did you check these links [link1](http://stackoverflow.com/questions/1982980/spring-transaction-manager-error-transaction-marked-for-joined-after-isopen-c) , [link2](http://forum.spring.io/forum/spring-projects/data/53080-org-hibernate-assertionfailure-transaction-marked-for-joined-after-isopen-call) – Laxman Dec 05 '16 at 07:50
  • Thank you for the response. I have checked those links, but it din't work out. – harshal b Dec 05 '16 at 09:14

1 Answers1

0

As per my understanding , here you are using data source type="javax.sql.DataSource" using the factory : "org.apache.tomcat.jdbc.pool.DataSourceFactory"

and the transaction manager is jta type : class="org.springframework.transaction.jta.JtaTransactionManager">

It can be solved if it the data bas is replaced by having the type javax.sql.XADataSource in turn using the class : an org.enhydra.jdbc.pool.StandardXAPoolDataSource. Make sure the prsistence manager uses the same datasource.

For further info go through :

https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html

http://xapool.ow2.org/doc/api/jdoc-1.3/org/enhydra/jdbc/pool/StandardXAPoolDataSource.html

Barsa N
  • 1
  • 1