|zyciis| 用WebService更新数据的时候如何保证数据库的数据完证性 谢谢 急 写得简单一点
环境:
A网站有A数据库 用于用户在网上下订单
B服务器有B数据库,用于保存在和个地区的订单汇总
方法:
启动事务
if(本地更新)
{
如果本地更新成功,通过services更新b服务器
if(services更新成功)
返回更新成功信息,
根据服务器返回数据再提交本地更新
//在这里再次提交本地更新的时候,出错了,这时就会让本地回滚,但WebService已经提交了 怎么回滚?
else
本地回滚
}
else
{
不成功,则services不调用
}
------解决方案--------------------在调用webservices的时候加个try catch用如下形式
bool isSuccess = true;
try
{
string result = MyServices();
}
catch
{
isSuccess = false;
}
if (isSuccess)
{
根据服务器返回数据再提交本地更新
}
else
{
本地回滚
}
------解决方案--------------------如果本地出现了错误,如何回滚服务器的呢?
try
{
根据服务器返回数据再提交本地更新
string isSuccess = MyServices(); //MyServices种启动事务处理,
if(!isSuccess )
{
本地回滚
}
}
catch
{
本地回滚
}
------解决方案--------------------作为异常分支,记录或者标记一下,然后用其他方式如人工来处理
------解决方案--------------------不在一个事务中没办法!
------解决方案--------------------
------解决方案--------------------up
------解决方案--------------------涉及到2个数据库这是分布式事务,需要COM+服务才能支持。
------解决方案--------------------建张新表作为webservices的提交日志,然后根据日志做相应回滚。