spring + hibernate +jta 事务不能回滚问题

由于在项目中 用到分布式事务 引用 http://momoko8443.iteye.com/blog/190994 的帖子 按照上面的配置事务不能回滚 ,对于单个数据库也是一样 问题困扰了我三天了 每天晚上查资料查到晚上3点,求各位帮帮我,先谢了

代码及其配置 如下
配置文件
<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://www.springframework.org/schema/beans"
xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


db_idcbase
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource

URL=jdbc:mysql://127.0.0.1:3306/db_idcbase?useUnicode=true&characterEncoding=gb2312;user=root;password=admin

true
3
SELECT 1

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">





org.hibernate.dialect.MySQLDialect
true





com/yiwei/hibernate/bean/TblReportHosts.hbm.xml


com/yiwei/hibernate/bean/TblRuleUrls.hbm.xml


com/yiwei/hibernate/bean/TblRuleIps.hbm.xml


com/yiwei/hibernate/bean/TblRuleTcps.hbm.xml


com/yiwei/hibernate/bean/TblRuleUdps.hbm.xml


com/yiwei/hibernate/bean/TblReportUrls.hbm.xml


com/yiwei/hibernate/bean/TblReportKeys.hbm.xml


com/yiwei/hibernate/bean/TblReportTcps.hbm.xml


com/yiwei/hibernate/bean/TblReportUdps.hbm.xml


com/yiwei/hibernate/bean/TblRuleKeys.hbm.xml


com/yiwei/hibernate/bean/TblReportProbes.hbm.xml


com/yiwei/hibernate/bean/TblReportVhosts.hbm.xml


com/yiwei/hibernate/bean/TblRuleConfs.hbm.xml


com/yiwei/hibernate/bean/TblRuleType.hbm.xml



isp
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource

URL=jdbc:mysql://127.0.0.1:3306/isp?useUnicode=true&characterEncoding=gb2312;user=root;password=admin

true
3

SELECT 1

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">





org.hibernate.dialect.MySQLDialect
true





com/yiwei/hibernate/bean/Carrier.hbm.xml


com/yiwei/hibernate/bean/UbietyDrawer.hbm.xml

com/yiwei/hibernate/bean/UbietyRoom.hbm.xml
com/yiwei/hibernate/bean/User.hbm.xml
com/yiwei/hibernate/bean/Host.hbm.xml
com/yiwei/hibernate/bean/Proxyer.hbm.xml
com/yiwei/hibernate/bean/Region.hbm.xml
com/yiwei/hibernate/bean/Role.hbm.xml

com/yiwei/hibernate/bean/SysPrincipal.hbm.xml


com/yiwei/hibernate/bean/SysRolePrincipal.hbm.xml


com/yiwei/hibernate/bean/SysUserRole.hbm.xml

com/yiwei/hibernate/bean/Log.hbm.xml
com/yiwei/hibernate/bean/Vhost.hbm.xml
com/yiwei/hibernate/bean/TblProxyerService.hbm.xml


true


300








class="com.yiwei.hibernate.bean.UbietyRoomDAO">




class="com.yiwei.business.service.UbietyRoomServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.UbietyDrawerDAO">




class="com.yiwei.business.service.UbietyDrawerServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED








class="com.yiwei.business.service.CarrierServiceImp">



class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED








class="com.yiwei.business.service.HostServiceImp">















class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED








class="com.yiwei.business.service.UserServiceImp">










class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblReportHostsDAO">




class="com.yiwei.business.service.ReportHostsServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED








class="com.yiwei.business.service.ProxyerServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED







class="com.yiwei.hibernate.bean.TblRuleUrlsDAO">




class="com.yiwei.business.service.RuleUrlsServiceImp">




















PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



<!--
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">




TblRuleIpsDAO -->
class="com.yiwei.hibernate.bean.TblRuleIpsDAO">




class="com.yiwei.business.service.RuleIpsServiceImp">










class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblRuleTcpsDAO">




class="com.yiwei.business.service.RuleTcpsServiceImp">










class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblRuleUdpsDAO">




class="com.yiwei.business.service.RuleUdpsServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblReportUrlsDAO">




class="com.yiwei.business.service.ReportUrlsServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblReportKeysDAO">




class="com.yiwei.business.service.ReportKeysServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED








class="com.yiwei.business.service.RoleServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblReportTcpsDAO">




class="com.yiwei.business.service.ReportTcpsServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblReportUdpsDAO">




class="com.yiwei.business.service.ReportUdpsServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.SysPrincipalDAO">



class="com.yiwei.business.service.SysPrincipalServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblRuleKeysDAO">




class="com.yiwei.business.service.RuleKeysServiceImp">










class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblReportProbesDAO">




class="com.yiwei.business.service.ReportProbesServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.SysRolePrincipalDAO">



class="com.yiwei.business.service.SysRolePrincipalServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.SysUserRoleDAO">



class="com.yiwei.hibernate.bean.TblReportVhostsDAO">




class="com.yiwei.business.service.ReportVHostServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblRuleConfsDAO">




class="com.yiwei.business.service.RuleConfsServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED








class="com.yiwei.business.service.LogServiceImp">



class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.TblRuleTypeDAO">




class="com.yiwei.business.service.RuleTypeServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="com.yiwei.hibernate.bean.HqlDAO">




class="com.yiwei.business.service.HqlServiceImp">




class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED













class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">






PROPAGATION_REQUIRED,readOnly,-Exception


PROPAGATION_REQUIRED,readOnly,-Exception

PROPAGATION_REQUIREDPROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



<!--



-->

/** dao
public class TblRuleUrlsDAO extends HibernateDaoSupport implements IRuleUrlsDAO
public void save(TblRuleUrls transientInstance) {
log.debug("saving TblRuleUrls instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (DataAccessException re) {
log.error("save failed", re);
throw re;
}
}

/** dao
class LogDAO extends HibernateDaoSupport implements ILogDAO{
public void save(Log transientInstance) {
log.debug("saving Log instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (DataAccessException re) {
log.error("save failed", re);
throw re;
}
}

/** service
public class RuleUrlsServiceImp implements IRuleUrlsService {

private IRuleUrlsDAO ruleUrlsDAO;

private IRuleConfsDAO ruleConfsDAO;

private ILogDAO logDAO;
public IRuleUrlsDAO getRuleUrlsDAO() {
return ruleUrlsDAO;
}

public void setRuleUrlsDAO(IRuleUrlsDAO ruleUrlsDAO) {
this.ruleUrlsDAO = ruleUrlsDAO;
}

public void delete(TblRuleUrls persistentInstance) {
// TODO Auto-generated method stub

this.ruleUrlsDAO.delete(persistentInstance);

}

public TblRuleUrls findById(Integer id) {
// TODO Auto-generated method stub
return this.ruleUrlsDAO.findById(id);
}

public void insertUser(TblRuleUrls transientInstance,User u) {
// TODO Auto-generated method stub
try{
this.ruleUrlsDAO.save(transientInstance);
Log log = new Log();
log.setCarrierId(transientInstance.getIspID());
log.setDtime(transientInstance.getDtime());
log.setProxyerId(transientInstance.getProxyId());
String ip = transientInstance.getAssignIp().split(" ")[0];
log.setIp(ip);
log.setMessage("用户  部署了url规则 "+transientInstance.getHurl());
log.setUser(u);
log.setDtime("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz");
//ILogService logService = (ILogService)AppContext.getInstance().getAppContext().getBean("logService");
logDAO.save(log);
}
catch(DataAccessException e){
System.err.println("service 抛出异常");
throw e;
}

}

action

*/
public ActionForward ruleUrlsAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
RuleUrlsForm ruleUrlsForm = (RuleUrlsForm) form;// TODO Auto-generated
// method stub
try{
User u = (User) request.getSession().getAttribute("u");
TblRuleUrls url = new TblRuleUrls();
PropertyUtils.copyProperties(url, ruleUrlsForm);
url.setAction(ruleUrlsForm.getAct());
url.setAssignIp(request.getRemoteAddr() + " " + u.getRealName());
url.setDtime(Conversion.getDate(new Date()));
String hurl = ruleUrlsForm.getHurl();
if (ruleUrlsForm.getAct().equals("redi")||ruleUrlsForm.getAct().equals("rredi")) {
hurl = hurl + " " + ruleUrlsForm.getThurl();
}
url.setHurl(hurl);
url.setUserID(u.getId());
url.setIspID(u.getCarrierId());
url.setProxyId(u.getProxyerId());
this.getRuleUrlsService().insertUser(url,u);
}catch(DataAccessException e)
{
System.err.println("action 执行中发生异常");

}
ActionForward f = new ActionForward("ruleUrls.do?action=ruleUrlsList",
true);
return f;
}

jta 配置文件如下 c
om.atomikos.icatch.service = com.atomikos.icatch.standalone.UserTransactionServiceFactory

com.atomikos.icatch.enable_logging = false

com.atomikos.icatch.automatic_resource_registration = true

再次谢过

查了资料后 现将每个都加上了 PROPAGATION_REQUIRED,-ExceptionPROPAGATION_REQUIRED,-Exception
增加异常 但是还是不行
[b]问题补充:[/b]
现在将mysql 换成了6.0 还是不行 单数据库事务也不起作用 期待高手
[b]问题补充:[/b]
请问下3楼 会不会是table的engine是MyISAM类型的啊?
是什么意思
[b]问题补充:[/b]
三楼的 你好 我的数据类型是MyISAM类型

vhost | MyISAM | 10 | Dynamic | 9 | 348 |
3132 | 281474976710655 | 2048 | 0 | NULL | 20
8-06-17 10:48:04 | 2008-06-17 11:16:38 | NULL | utf8_general_ci | NUL
| | |MyISAM

会不会是table的engine是MyISAM类型的啊?

帖子太长,懒得看,睡觉了

仔细看了, 配置没问题.

是否你家的Mysql不支持事务? [应该不会有这个问题]
show table status from db_idcbase;

关注中...