客户端 如果在 事务 执行过程中 突然 掉电,可能引起整个系统无法运行? ( 积分: 200 )

  • 主题发起人 主题发起人 lipin
  • 开始时间 开始时间
L

lipin

Unregistered / Unconfirmed
GUEST, unregistred user!
客户端如果在事务执行过程中突然掉电,可能引起整个系统无法运行?<br>比如说,在delphi客户端有如下的语句:<br>begin&nbsp;tran<br>try<br>&nbsp;&nbsp;update&nbsp;系统参数表&nbsp;set&nbsp;当前收据号=当前收据号+1<br>&nbsp;&nbsp;insert&nbsp;收据表<br>&nbsp;&nbsp;commit&nbsp;tran<br>except<br>&nbsp;&nbsp;rollback&nbsp;tran<br>end.<br>如果客户端正好在运行完update语句后突然掉电,那么会引起问题:sql&nbsp;server执行update语句会给系统参数表加排他锁,这将导致其它客户端的&quot;update&nbsp;系统参数表&nbsp;set&nbsp;当前收据号=当前收据号+1&quot;语句无法执行,整个系统都有可能无法运行。<br>这是不是客户端事务的无法克服的缺点?有没有解决办法?当然,这种情况的概率是极小的。<br>注意是突然断电,我试过,在客户端结束程序和结束进程,sql&nbsp;server都是能检测到的,检测到后将回滚这个事务。突然断电时无法检测到。
 
不会,会过一段时间自动释放的
 
谢谢。。。
 
后退
顶部