求教,关于JTA

05-08-03 飞刀

ctx = new InitialContext();

userTransaction = (UserTransaction) ctx.lookup("java:comp/UserTransaction");

userTransaction.begin();

runDb();//这里插入成功了

someMethod();这里抛出异常

userTransaction.commit();

当捕获到了someMethod()抛出的异常时用了userTransaction.rollback();

但是数据库还是操作成功了。。为什么。一般跟哪些地方有关。

banq
2005-08-03 17:15
你的数据库需要支持事务机制,如Mysql必须是InnoDB,你的DataSource JNDI容器的配置也必须支持事务。主要从JNDI这个环节查询

猜你喜欢