|zyciis| 用WebService更新数据的时候如何保证数据库的数据完证性 谢谢 急

zyciis70 2009-02-20 11:38:28
环境:
A网站有A数据库 用于用户在网上下订单
B服务器有B数据库,用于保存在和个地区的订单汇总
------------------------------------------------
A数据库订单更新到B的过程为
A.SaleOrder
ID Price IsSendToServer SendDate
1 100 0 1900-1-1
2 200 1 2009-0-20 10:12:13
3 300 0 1900-1-1
比如上面是我要插入到B服务器的数据
那么首先查询出未插入到服务器的数据得到了
ID
1
3
然后用for语用

启动事务
for(...)
{
用WebService插入到服务器去(因为服务器不提供SQL链接)
如果成功,更新已经发送和发送时间 IsSendToServer SendDate

}
提交事务
---------------------------------------
上面的问题是,
如果当我的订单1更新到服务器的时候,而更新本地的时候出错
这时数据就会回滚,但我的Webservice里面的怎么回滚呢,因为他们不在同一个事务啊

那这种情况,如何来保证数据的完整性呢

谢谢
...全文
91 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bj890 2009-02-20
  • 打赏
  • 举报
回复
up
zzc205 2009-02-20
  • 打赏
  • 举报
回复
两个库实例要维持事务还是要数据库自身的机制才是最安全的。oracle有dblink可以做到,sqlserver有相关支持吗?
  • 打赏
  • 举报
回复
客户端应该独立地处理异常。如果服务器端执行异常,顶多,为了安全起见,webService可能隐藏详细的服务器端异常信息而仅抛出一个非常简单的异常信息,但是总之是会向客户端抛出异常的,你的调用WebService的客户端程序总会捕捉到异常的。即使关闭服务器,客户端也会收到异常信息的。
zyciis70 2009-02-20
  • 打赏
  • 举报
回复
RE:
看的有点晕
是下面的意思吗?

if(本地更新)
{
如果成功,通过services更新b服务器
if(services更新成功)
返回更新成功信息,提交本地更新
else
本地回滚
}
else
{
不成功,则services不调用
}
---------------------------
对,但是这里的问题是
看的有点晕
是下面的意思吗?

if(本地更新)
{
如果成功,通过services更新b服务器
if(services更新成功)
返回更新成功信息,提交本地更新
//在提交本地更新的时候,出错了,这时就会让本地回滚,但WebService已经提交了 怎么回滚?
else
本地回滚

}
else
{
不成功,则services不调用
}
lovehongyun 2009-02-20
  • 打赏
  • 举报
回复
看的有点晕
是下面的意思吗?

if(本地更新)
{
如果成功,通过services更新b服务器
if(services更新成功)
返回更新成功信息,提交本地更新
else
本地回滚
}
else
{
不成功,则services不调用
}
huguosheng_89412 2009-02-20
  • 打赏
  • 举报
回复
在更新本地的时候,在回滚的方法里面去调用Webservice呢?如果Webservice出现异常,就让本地也回滚。

具体没试过,不知道这样可不可行

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧