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
|