WS分布式事务

12-09-30 javawebkaifa
第一: 有这样一种情况,我对webservice的事务处理有种不明白的感觉:
情况描述:现在有2个,甚至更多WS接口,这里就按2个WS接口来说吧!现在又一个业务是这样的,要同时调用2个接口,第一个WS接口往table_a表里面写入数据,第二个WS接口忘table_b表里写入数据。我们在写代码的时候,
public boolean doService{

第一个Ws接口执行

第二个Ws接口执行
}

如果第一个已经执行了,第二个执行失败,但是第一个已经执行了,怎么处理这样的?????

我想了下,我们定义Ws接口肯定会根据业务的实现来进行定义,我没有把这个业务定义成一个WS接口,如果失败,是一个整体,在DAO成回滚就是,我觉得这样处理该是可以的,不知道是不是最好的处理方法。

第二: 还有一个情况,就是对于处理多数据源的问题,一个业务同时执行了2个不同数据源的表,这样失败了,也怎么控制?


第三:关于多线程处理共享数据的时候,我也看了论坛上的很多资料,可以采用并行并非框架,但是我们现在还是采用的锁机制来完成的,(就像火车票网站一样)直接锁的机制,在并发量大的时候,还是不行,不管什么乐观锁。。。都差不多,在代码的实现上,有什么更好的办法吗?求解!!!!!万分感谢

[该贴被javawebkaifa于2012-09-30 11:56修改过]

alexwoo
2012-09-30 19:51
第一和第二,我认为LZ你所说的事务的问题实际上也就是分布式事务要处理的问题。
可以参考JTA/JTS的思想,本站相关帖子不少。

第三,
我认为还是要基于实际测试数据来分析瓶颈,一般来说瓶颈都不会在代码上(不排除代码很烂的情况)。 另一方面我觉得在国内真正需要处理高并发的企业并不算多,锁机制并没有想象中的那么坏,如果太坏,就得看是不是用得不好。 如果瓶颈真的是由于锁带来的,那再考虑用Disruptor等框架来改进。

猜你喜欢