org.springframework.dao.ConcurrencyFailureException: StatementCallback 问题排查

该问题多为数据库发生了死锁导致的

异常 说明
CleanupFailureDataAccessException DAO操作失败执行,但在数据库资源释放时发生异常,如关闭Connection时发生异常等
ConcurrencyFailureException 表示在进行并发数据库操作时发生异常,如乐观锁无法获取、悲观锁无法获取、死锁引发发失败等。
DataAccessResourceFailureException 访问数据源时失败,如无法获取数据连接,无法获取Hibernate会话等。
DataRerievalFailureException 获取数据失败,如找不到对应主键的数据,使用了错误的列索引等。
DataSourceLockupFailureException 无法从JNDI中查找到数据源
DataIntegerViolationException 当数据操作违反了数据一致性限制时抛出的一场,如插入重复的主键,引用不存在的外键等。
InvaildDataAccessApiUsageException 不正确的调用某一持久化技术时抛出的异常。
InvalidDataAccessResourceUsageException 在数据库访问时使用了不正确的方法所抛出的一场,如SQL语句错误抛出该类异常。
PermissionDeniedDataAccessException 数据库访问时由于权限不足引发的异常。
UncategorizedDataAccessException 其他未分类的异常都归到该异常中

项目日志:

2018-08-14 01:30:27 [ERROR] [pool-162697-thread-10] c.t.s.t.SendThread - AJ_0005_20180814010452_01_2017.zip发送失败,org.springframework.dao.ConcurrencyFailureException: StatementCallback;
 SQL [UPDATE T_HIST_TASKITEM SET N_ZT=4 WHERE C_BH_TASK='528097429f1a11e8baed1b1c46c90848' AND C_BH_FILE='942325399c5649deb531995e2ac1f9c9'];
 Batch entry 0 UPDATE T_TASKITEM SET N_ZT=4 WHERE C_BH_TASK='528097429f1a11e8baed1b1c46c90848' AND C_BH_FILE='942325399c5649deb531995e2ac1f9c9' was aborted.  Call getNextException to see the cause.;
 nested exception is java.sql.BatchUpdateException: Batch entry 0 UPDATE T_TASKITEM SET N_ZT=4 WHERE C_BH_TASK='528097429f1a11e8baed1b1c46c90848' AND C_BH_FILE='942325399c5649deb531995e2ac1f9c9' was aborted.  Call getNextException to see the cause.

导出现场数据库jdbc日志发现,在项目定时任务启动时,数据库发生了死锁。

排查方向:

1、项目多线程并发时,同时对一条数据进行update或者delete,导致死锁。

2、或者有别的项目在使用该库该表该条数据。

跟代码查找到原因所在。

猜你喜欢

转载自blog.csdn.net/Soul_Programmer_Swh/article/details/81666069