两个SQL设成一个事务时报错,系统回滚
Connection conn = null;
PreparedStatement pstmt = null;
conn=DbManager.getConnection();
conn.setAutoCommit(false);
String sql2="insert into 。。。。。。。。。。。"
System.out.println(sql2);
pstmt=conn.prepareStatement(sql2);
pstmt.executeUpdate();
String sql3="update ..................."
System.out.println(sql3);
pstmt=conn.prepareStatement(sql3);
pstmt.executeUpdate();
conn.commit();
运行时报错:
[07-10-2 23:23:23:016 CST] 7af7acaa LocalTransact E WLTC0033E: 在清除未解析 LocalTransactionContainment 时,资源 jdbc/msdsn2 回滚。
[07-10-2 23:23:23:016 CST] 7af7acaa LocalTransact E WLTC0032E: 一个或多个资源回滚。一个未解析的 LocalTransactionContainment 有一个未解析的回滚操作。
[07-10-2 23:23:23:016 CST] 7af7acaa WebAppTransac E SRVE0183E: 由于 setRollbackOnly 导致 LocalTransaction 回滚
[07-10-2 23:23:23:016 CST] 7af7acaa WebGroup E SRVE0026E: [Servlet 错误]-[LocalTransaction rolled-back due to setRollbackOnly]:com.ibm.ws.LocalTransaction.RolledbackException
------解决方案--------------------你的数据库的引擎支持回滚么?
DatabaseMetaData md = con.getMetaData();
return md.supportsTransactions();
用这个语句实下
------解决方案--------------------在Web服务中使用?