首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|zyciis| 用WebService更新数据的时候怎么保证数据库的数据完证性 多谢 急 写得简单一点

2012-03-18 
|zyciis| 用WebService更新数据的时候如何保证数据库的数据完证性 谢谢 急 写得简单一点环境:A网站有A数据

|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
{
本地回滚 
}
[解决办法]
作为异常分支,记录或者标记一下,然后用其他方式如人工来处理
[解决办法]
不在一个事务中没办法!
[解决办法]

探讨
RE:作为异常分支,记录或者标记一下,然后用其他方式如人工来处理
------------------------------------------------
记录下来,人工处理,好像不太现实啊
程序上就不能回滚掉刚才的WebService

谢谢

[解决办法]
up
[解决办法]
涉及到2个数据库这是分布式事务,需要COM+服务才能支持。
[解决办法]
建张新表作为webservices的提交日志,然后根据日志做相应回滚。

热点排行