I am facing problems in using UserTransaction & JTA datasource with Hibernate.
 
I am using JOTM as TransactionManager and XAPool ass JTA datasource. To use them,
first I resitered them from Tomcat's server.xml as Resources.

My java code is like this:
 
  try {
      Context ctx = new InitialContext();
      ut = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
      ut.begin();
      javax.sql.DataSource myDataSource = (javax.sql.DataSource) ctx.lookup("java:comp/env/MyDataSource");
      myConn = myDataSource.getConnection();
      session = sessionFactory.openSession(myConn);
      Cat princess = new Cat();
      princess.setName("Princess");
      princess.setSex('F');
      princess.setWeight(7.4f);
      session.save(princess);
      session.save(princess);
 
      System.out.println("committing Transaction...");
      ut.commit();
      myConn.close();
      session.close();
   }catch(Exception ex) {

        System.out.println("rollingback Transaction...");
        ut.rollback();
   }
 
 
The first print statement 'committing Transaction.....' is getting printed when I execute
the above code. But the changes are not getting updated in database.

This is working when I start Transaction from session.beginTransaction() and not setting the
external connection to the Session object.
 
What was the wrong with my code?. I could not find any example code or any post on using JTA
Transaction Manager and JTA datasource with Hibernate. Any suggessions are appreciated.
 
Thanks in advance!
Dosapati

Reply via email to