存储过程有时不执行,100次中总是有1、2次,不知道是何原因 ( 积分: 200 )

  • 主题发起人 主题发起人 hotbuysell
  • 开始时间 开始时间
H

hotbuysell

Unregistered / Unconfirmed
GUEST, unregistred user!
三层结构,我在中间层定义了过程(该过程两个参数,一个存储过程名,一个参数),在客户端调用该过程,(客户端有10多个可能同时调用该过程,就是参数不一样),数据库是SQL Server,因为该存储过程是要更新库存表(有该产品就更新,没有就插入),客户端运行完后,有时并不更新和插入,一天中总有那么几次,真不知道是什么原因,因为我自己测试是完全没有问题,而且如果客户再执行一次相同的操作,又是成功的,我真的搞不懂了,请各位高手帮忙,我焦急的等待中。(中间层用的是ADO,连接用socket)
 
三层结构,我在中间层定义了过程(该过程两个参数,一个存储过程名,一个参数),在客户端调用该过程,(客户端有10多个可能同时调用该过程,就是参数不一样),数据库是SQL Server,因为该存储过程是要更新库存表(有该产品就更新,没有就插入),客户端运行完后,有时并不更新和插入,一天中总有那么几次,真不知道是什么原因,因为我自己测试是完全没有问题,而且如果客户再执行一次相同的操作,又是成功的,我真的搞不懂了,请各位高手帮忙,我焦急的等待中。(中间层用的是ADO,连接用socket)
 
做个跟踪处理,再存储过程写个插入操作,记录每次调用的时间和各个参数的值,检查一下是不是因为参数的原因,导至没有执行。
 
问题是,这种情况的发生几率一天只有几笔,每天有几千笔,我自己测试都是好的,客户端发生次类情况后,第二次运行又是好的,数据根本就没有修改过,我怀疑是不是因为死锁
 
http://www.delphibbs.com/delphibbs/dispq.asp?LID=3176503
这里有关于如何定义跟踪,然后检查数据库操作的,SQL SERVER的帮助里面也是这么描述的,用来检查造成SQL SERVER某些操作毕竟慢的原因等等
 
socket?
socketconn
服务器是超线称的马?
还有 你的中间层纪录日志的
try
的错误要记录
执行的语句要记录
另外 execsql 的返回值就是 更新的纪录数 这个也要记录
看看 有没有 是 0 的
还有 sql server 的日志浏览器 装一个
 
中间层定义了过程
难道 没有返回值
至少返回 更新的纪录数,和错误信息
 
后退
顶部