事务中有webservice的控制

事务中有webservice的疑问
现假设A系统调用B系统的webservice.
在A系统的程序中有如下代码:
try{
//往DB中存数据
//调用B系统的webservice
//往DB中更新数据
}catch(Exception e){
//回滚所有操作
}
问题就是:如果在调用B系统的webservice时,如果B系统正常执行完了所有的操作,然后就在给A系统返回数据时,网络出现问题了,导致A系统这边调webservice的代码抛出了异常,所以A系统就回滚了所有的操作.

这就出现了问题了:A系统以为B系统的webservice出现了问题,但实际上是,B系统那边的代码正常执行完了.
----------------
请教下大家,对于这样的问题代码中应该怎么去控制?

这就是事务的一致性,就是前面正常操作,一个环节出问题,全部回滚,你可以将一个整大事务切割两段事务。

这就是事务的一致性,就是前面正常操作,一个环节出问题,全部回滚,你可以将一个整大事务切割两段事务。

谢banq的回复,可是不是很明白"你可以将一个整大事务切割两段事务。"这句话的意思

我也遇到这样的问题,没解决...

摘录
将一个整大事务切割两段事务 ...

有没有相关的文章有这方面介绍的?

[该贴被cgttian于2011-04-05 17:07修改过]

采用一种补偿的机制,如果A系统调用B系统的webservice出现了问题,回查B系统的任务是否正常执行,如果未正常执行,直接回滚。如果B系统的任务已执行成功,本地事务正常提交。这个可以采用定时任务处理,来查询B系统任务的执行。