首页 新闻 会员 周边 捐助

请教高手:多台机器同时访问同一台服务器,数据丢失

0
悬赏园豆:20 [已解决问题] 解决于 2012-08-09 13:15

一个ASP.NET程序同时被两台或者更多机器访问,在同时执行数据库(oracle)插入操作的时候,有些数据插入不成功,插入操作是一次性插入很多条记录。插入操作是用ajax实现的,不知道是怎么回事

xyq_雨晴的主页 xyq_雨晴 | 初学一级 | 园豆:159
提问于:2012-08-07 15:09
< >
分享
最佳答案
0

使用锁(lock)试试

收获园豆:5
淘@淘 | 小虾三级 |园豆:602 | 2012-08-07 18:34

还请你指点一二

xyq_雨晴 | 园豆:159 (初学一级) | 2012-08-07 19:47

@xyq_雨晴: http://topic.csdn.net/t/20030519/10/1802755.html 你看看这个应该对你有帮助

淘@淘 | 园豆:602 (小虾三级) | 2012-08-08 10:08

@淘@淘: 恩 谢谢你

xyq_雨晴 | 园豆:159 (初学一级) | 2012-08-08 15:13
其他回答(5)
0

主键是否是使用INT自增的?有可能是主键冲突的原因,可以考虑使用GUID来解决

收获园豆:3
CrazyJinn | 园豆:799 (小虾三级) | 2012-08-07 15:13

主键没冲突

支持(0) 反对(0) xyq_雨晴 | 园豆:159 (初学一级) | 2012-08-07 17:23
0

利用事务来处理呀!如果不成功直接回滚,难道oracle没有事务处理吗?

建议也可以建立一个日志表

收获园豆:3
芯宸 | 园豆:205 (菜鸟二级) | 2012-08-07 15:23

我这里存在的问题是要保证两个人同时执行服务器上的插入操作每次都必须添加成功,现在的没添加成功可以回滚。

支持(0) 反对(0) xyq_雨晴 | 园豆:159 (初学一级) | 2012-08-07 17:22
0

多台机器操作的系统,在新增时必须去判断逐渐是不是重复,所以在你新增前,你要去判断这个主键是不是重复,如果重复就返回提示,重新生成主键,再次新增。

收获园豆:3
叶木木 | 园豆:252 (菜鸟二级) | 2012-08-07 15:40

主键是利用序列生成的,应该不存在重复的

支持(0) 反对(0) xyq_雨晴 | 园豆:159 (初学一级) | 2012-08-07 17:20
0

不是,有可能就是在同一时间两个请求,数据库在执行前一插入时,这时后一个请求到来,前一插入未结束,主键还没存在,于是两个请求共用同一主键,有一个就丢失了

收获园豆:3
羽商宫 | 园豆:2490 (老鸟四级) | 2012-08-07 17:24

那怎么办呢?

支持(0) 反对(0) xyq_雨晴 | 园豆:159 (初学一级) | 2012-08-07 19:46
0

楼主应该在插入数据过程中  记录异常 这样就能找到问题所在了

收获园豆:3
havid | 园豆:70 (初学一级) | 2012-08-08 15:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册