Java关于事务操作高分求救 我要操作webService和本地数据库同步,webService向远程插入数据,想在业务逻辑层处理,如果执行成功那么本地也插入数据库,如果失败本地回滚。要么执行要么回滚请各位指导一下怎么开发比较好, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充,我要根据webService的返回结果判断是否提交或回滚(webService是其他语言写的) 首先说 我没有搞过 但是我觉得应该是用JTA解决吧 首先,webService那边的事务你是无法控制的,那是他那边的事情, 你只能控制你这边的事务,这种操作最好的举例子就是购物吧,比如说,只有银行扣款成功,我这边才能往数据库里面插入买卖信息!银行的转账信息,一个账号扣钱和一个账号加钱这是银行的事,与你无关所以你的业务方法里面调用webService时根据返回值. 如果是我做webService服务的话, 我会返回一个枚举给你.! 枚举的意思就是成功/失败.! 在你自己的方法里面, 插入的时候不要提交, 判断返回值成功,再提交, 或者成功再插入也可以 好像楼上的是有道理的,但是我想把控制webService放在业务层,而插入数据库放在daoimpl里面 扯淡,照这个思维不同银行之间转账就出大BUG了 这个不是什么问题吧,用jta事务能保证提交的一致性。如果远程处理有错误一定会抛异常,整个事务就可以回滚,但要正确设置回滚异常类型。 没必要使用jta 事物,如果简单的做,lou主可以使用本地使用来做,即本地数据操作先执行,然后调用webservice的操作,对方返回ok就将本地的事物commit,如果失败就rollback。因为你这个没有本地事物失败,需要让webservic回滚的需求。所以没有必要使用两次提交的XA transaction。如果需要保证本地事物失败,让webservic事物回滚的需求。那么你的数据库操作和远程webservice必须提供XAResource的实现。使用容器的jta事物,获取spring支持的jta事物。首先你的数据支持两次提交吗?webservice事物控制来两次提交估计不太好做。估计人为修改比较多。 用webservice 调用远程方法,事务控制也应该在远程写好的。如果远程成功你就插入,失败你就回滚。 关于js的问题 struts2做jsp页面下拉框的时候传值到action,怎么传 几道面试题 使用Axis开发Web Service, 客户端的遗留程序(C/C++程序)如何把数据传给服务器端的Web Service web.xml中的监听错误如何解决?~~ 请教文件上传与下载的问题,多谢 水晶报表与导出的问题 我的WEBLOGIC服务启动不起来了! struts中如何取得用户修改过的列表值,在线等 对ORACLE数据库中数据进行操作的几个问题? 用netbeans建立的maven项目没有struts-config文件 struts2的select标签问题?
这种操作最好的举例子就是购物吧,比如说,只有银行扣款成功,我这边才能往数据库里面插入买卖信息!
银行的转账信息,一个账号扣钱和一个账号加钱这是银行的事,与你无关
所以你的业务方法里面调用webService时根据返回值. 如果是我做webService服务的话, 我会返回一个枚举给你.! 枚举的意思就是成功/失败.!
在你自己的方法里面, 插入的时候不要提交, 判断返回值成功,再提交, 或者成功再插入也可以
即本地数据操作先执行,然后调用webservice的操作,对方返回ok就将本地的事物commit,如果失败就rollback。因为你这个没有本地事物失败,需要让webservic回滚的需求。所以没有必要使用两次提交的XA transaction。
如果需要保证本地事物失败,让webservic事物回滚的需求。那么你的数据库操作和远程webservice必须提供XAResource的实现。使用容器的jta事物,获取spring支持的jta事物。首先你的数据支持两次提交吗?webservice事物控制来两次提交估计不太好做。估计人为修改比较多。