jta只是用来解决不同数据源之间的事务的,作为服务商是怎会轻易将数据源随便暴露给第三方?可以先参考下Web Service 事务控制原理:http://www.cnblogs.com/chinhr/archive/2010/04/16/1713514.html Web Service 和jta(分布式的两阶段事务)没有关系,因为两个系统并不一定都支持,web services 事务管理和数据库中的事务管理两者区别意义很大.http://xml.apache.org/axis/是一个soap实现,可以在axis 上发布web service。 现在的问题是:有没有人做过axis上2个web service同属于一个transaction的使用经验! 我的应用情况是这样的:web service 1:提供定单接收功能;是一个Stateless SessionBean 其操作大致是: a.产生定单,插入定单库; b.减少库存表中的当前可售数量; web service 2:提供发送消息服务;用jms实现 操作是: 完jms队列中存放一条消息。整个事务是先调用web service 1,后调用web service 2;只有当2个操作均成功了,提交事务;否则回滚。谢谢!
因为楼主提到 Spring 了,我想其他语言的话也没有 Spring 这种东西的,呵呵。如果涉及到异构平台集成的话,那问题就复杂化了。在 J2EE 中使用 JMS、JCA 和 WebService 可以进行异构平台的集成,这些东西都很复杂,是 EAI 需要讨论的问题了。
继续等待高手赐教,谢谢大家的参与讨论!
另:如未自己做过测试,甚至亲身亲历,切莫随意抓抄转载,以免误导大家
A 服务端系统: struts2+spring2.5+hibernate3.2+axis2 +oracle10g..神秘封装.. 全注解配置
B 服务端系统: struts1+spring2.0+iBATIS2 +xfire+ SqlServer2000..神秘封装.. 全xml配置文件配置
C 服务端系统: jsp+servlet+简易jdbc封装+mysql5.0 现在c这个公司是给A和B这两个大公司做增值扩展的,假如现在大家就是A和B这两家公司其中一家系统架构师,你们的系统对外提供接口给别人用,同时还要告诉c这家小公司,你在用到事务的时候该XX怎么做,底层全部封装.
如何维护事务,才能保证其安全性,数据的一致性!
你这个例子语言相同,分布式事物处理,可以利用jta解决。你的问题似乎不在解决问题上,而是不知道如何解决上,如何配置上。
引用 12 楼 shimiso 的回复:对,就是毫无概念,有没有关于更详尽的资料,或者案例推荐一下,呵呵
Web Service 和jta(分布式的两阶段事务)没有关系,因为两个系统并不一定都支持,web services 事务管理和数据库中的事务管理两者区别意义很大.http://xml.apache.org/axis/是一个soap实现,可以在axis 上发布web service。
现在的问题是:有没有人做过axis上2个web service同属于一个transaction的使用经验!
我的应用情况是这样的:web service 1:提供定单接收功能;是一个Stateless SessionBean
其操作大致是:
a.产生定单,插入定单库;
b.减少库存表中的当前可售数量;
web service 2:提供发送消息服务;用jms实现
操作是:
完jms队列中存放一条消息。整个事务是先调用web service 1,后调用web service 2;只有当2个操作均成功了,提交事务;否则回滚。谢谢!
真不知道你说这样的话是什么意思。谁毁了你的自尊?我们在前面的回复中有哪一句话伤过你的自尊了?WebServices 之前本身就是不支持事务操作的,这么复杂的一个问题,你在帖子正文中只有不到两行的描述,让你把问题描述得更清楚一些,我不知道是你伤了别人的自尊,还是别人伤了你的自尊!
我们的场景是:
1.我们提供的服务,数据库使用oracle,我们为客户提供接口
2。客户服务器,数据库使用mysql
问题,如何实现这个数据库的事务控制,以保持两个数据库的数据一致性?