Hello all, I've been using iBATIS for a while quite successfully with a transactionManager type of "JDBC" - however, I now want to use JTA and am not having so much luck.
I have a block of code like this: // start a transaction dao.startTransaction(); // get and update a database entry ColourDto colour = dao.findColour(1L); colour.setColour("PINK"); dao.update(colour); // rollback dao.endTransaction(); The methods on my 'dao' object are pretty trivial calls onto the methods of an instance of SqlMapClient. With a JDBC SqlMap, I get the behaviour I expect: the database is unchanged. However, with a JTA SqlMap, the rollback is ignored (and so the database is updated). The relevant bit of my SqlMap configuration is like this: <transactionManager type="JTA"> <property name="UserTransaction" value="java:comp/UserTransaction"/> <dataSource type="JNDI"> <property name="DataSource" value="java:my/ds"/> </dataSource> </transactionManager> I'm executing my code within Oracle's OC4J container. For my DataSource I've tried both a very simple (bespoke) implementation of the DataSource interface, and also an instance of the OracleXADataSource class. It's probably also worth mentioning that I'm not using EJBs. Can anybody help? I think I must be missing something pretty fundamental - so apologies if this is a stupid question... Much appreciated! Alistair.