该问题多为数据库发生了死锁导致的
异常 | 说明 |
---|---|
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、或者有别的项目在使用该库该表该条数据。
跟代码查找到原因所在。