SQL [n/a]; nested exception is org.hibernate.PessimisticLockException: could not execute statement

本文讲述了在IT项目中遇到couldnotexecutestatement;SQL异常,主要原因是PessimisticLockException,可能是事务等待超时或大事务导致。文章提供了排查途径,包括检查接口方法耗时、事务设置、以及可能的解决方案如移除事务内操作和理解事务传播机制。
摘要由CSDN通过智能技术生成

问题原因

could not execute statement;
SQL [n/a]; nested exception is org.hibernate.PessimisticLockException: could not execute statement

出现此问题的原因是 PessimisticLockException 查询部分资料后解释说,这是由于事务等待超时,或者一个事务等待另一个事务释放锁,但时间过长导致事务无法提交,而事务内的 sql 也就无法执行,抛出此问题

排查途径

  1. 检查接口内部存在事务的方法内,是否某一方法或者某些方法调用时间过长,导致接口超时,可能网络或者硬件条件等较差,或被某些特定场景导致返回时间过长。
  2. 检查被置于事务内的代码是否由于形成了大事务而过于耗时。
  3. 查询数据库类语句是否可以移除到事务外。减少事务内操作。

可以参考一下文章排查:

  1. 大事务出现原因以及解决方式学习总结 以及编程式事务和声名式事务
  2. Spring 事务失效的十二种场景,以及事务传播机制特性 学习总结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值