我的应用服务器使用的是OC4J,JTA在我的程序中根本不起作用,这是我的联系方式bpsa@sina.com.cn,applezhao@sohu.com,如果您方便,请多指教。下面是我在一个事务中使用一个connection都不能回滚的程序,为什么????
这个函数我放在了slsb中
test()
{
UserTransaction ut = ctx.getUserTransaction();
Connection con = null;
try {
Context ictx = new InitialContext();
DataSource datasource = (DataSource)ictx.lookup(GetDataServer().GetDBConnectionString());
con = datasource.getConnection();
}
}catch (Exception ex) {
try{
ut.begin();
Statement stmt = con.createStatement();
String insertStatement ="INSERT INTO SFILEDIRINFO (FILEDIRID,FDATTRVALUE,FDNAME,FDNO,FDOPERATE,FDPARENT,FDSNO,FDTYPE,PEOPLEID_FILEDIR) VALUES ('SFILEDIR_513','','TransDir',4.0,'','','005',1,'sPeopleID')";
stmt.executeUpdate(insertStatement);
stmt.close();
insertStatement ="INSERT INTO SFILEDIRINFO (FILEDIRID,FDATTRVALUE,FDNAME,FDNO,FDOPERATE,FDPARENT,FDSNO,FDTYPE,PEOPLEID_FILEDIR) VALUES ('SFILEDIR_5136','','TransDir',4.0,'','','005',1)";
Statement prepStmt1 = con.createStatement();
prepStmt1.executeUpdate(insertStatement);
prepStmt1.close();
ut.commit();
} catch (Exception ex)
{
ex.printStackTrace();
try {
ut.rollback();
}catch (Exception e)
{
e.printStackTrace();
}
}
}
}