【oracel死锁】ORA-00060: deadlock detected while waiting for resource

【oracel死锁】ORA-00060: deadlock detected while waiting for resource

生产报错,oracel死锁

按顺序发生:
接口1:
update tabel where field in ('A','B','C');//批量update,接口无事务无其他db操作
此时事务未提交,接口2收到请求↓

接口2:
tabel where field ='A';
tabel where field ='C';
tabel where field ='B';
3条update在同一事务中,需要跑完全部逻辑再提交

分析:
接口1 更新A-成功,拿到B资源,发现C资源被占用, 等待C资源释放
接口2 更新A-成功,拿到资源C,发现B被占用,等待B释放

两者互等对方,造成死锁,报错ORA-00060: deadlock detected while waiting for resource, oracel自动放弃其一, 
在这次案例中错误在接口1中被抛出释放了资源,故接口2处理成功, 
在业务上来接口1能重试,没有造成严重生成事故   谢天谢地
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值