问题原因
could not execute statement;
SQL [n/a]; nested exception is org.hibernate.PessimisticLockException: could not execute statement
出现此问题的原因是 PessimisticLockException 查询部分资料后解释说,这是由于事务等待超时,或者一个事务等待另一个事务释放锁,但时间过长导致事务无法提交,而事务内的 sql 也就无法执行,抛出此问题
排查途径
- 检查接口内部存在事务的方法内,是否某一方法或者某些方法调用时间过长,导致接口超时,可能网络或者硬件条件等较差,或被某些特定场景导致返回时间过长。
- 检查被置于事务内的代码是否由于形成了大事务而过于耗时。
- 查询数据库类语句是否可以移除到事务外。减少事务内操作。
可以参考一下文章排查: