zoukankan      html  css  js  c++  java
  • SQL Server死锁问题:事务(进程 ID x)与另一个进程被死锁在 锁 | 通信缓冲区资源上并且已被选作死锁牺牲品。请重新运行该事务。

    ### The error occurred while setting parameters
    ### SQL: update ERP_SCjh_zzc_pl set IF_TONGBU=1 where (IF_TONGBU=0 or IF_TONGBU is null) and djno=? and djlb=?
    ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 事务(进程 ID 191)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
    ; SQL []; 事务(进程 ID 191)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 事务(进程 ID 191)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
    [2019-08-24 17:26:52,077] [qtp1891502635-26] [ERROR] [ExceptionController.java:26] ==>Exception Msg:

    感觉这篇文章写的不错,读了三遍不是太明白,记录下来:
    https://www.cnblogs.com/happyhippy/archive/2008/11/14/1333922.html

    解决办法:

      1. SQLServer自动选择一条SQL作死锁的牺牲品;
      2. 按同一顺序访问对象;
      3. SELECT语句加with (onlock)提示;
      4. 使用较低的隔离级别
      5. 在SQL前加SET LOCK_TIMEOUT timeout_period,当请求锁超过设定的timeout_period时间后,就会终止当前SQL的执行
      6. 使用基于行版本控制的隔离级别
      7. 使用绑定连接

    锁相关:https://www.cnblogs.com/wynn0123/p/4633776.html

  • 相关阅读:
    损失函数
    numpy中的broadcast
    混合模型
    贝叶斯学习
    python3中输出不换行
    C++11 实现 argsort
    Python中的闭包
    C语言 fread()与fwrite()函数说明与示例
    DFT与傅里叶变换的理解
    MISRA C:2012 Dir-1.1(只记录常犯的错误和常用的规则)Bit-fields inlineC99,NOT support in C90 #pragma
  • 原文地址:https://www.cnblogs.com/gzhbk/p/11407070.html
Copyright © 2011-2022 走看看