Spring中集成Quartz时遭遇Failure obtaining db row lock异常

PostgreSQL错误解决:ERROR: CURRENT TRANSACTION IS ABORTED, COMMANDS IGNORED UNTIL END OF TRANSA 错误出现: 含有错误的查询后,选中insert语句无法执行,报错current transaction is aborted, commands ignored until end of transaction block 分析: 事务中含有错误,再执行DML时,事务无法正常进行。 我们在PG数据库,关闭了事务的自动提交的情况下,会经常的遇到这样的问题 ERROR: current transaction is aborted, commands ignored until end of tr... 阅读详情

今天在一个新的项目中用Spring集成Quartz来进行任务调度,和以往一样,配置好JobDetail、Trigger、SchedulerFactoryBean启动,却遭遇到如下异常信息:

这是一个很奇怪的错误,从打印的异常信息可以看出:quartz试图将任务执行情况持久化到数据库中,一般是在集群环境中使用的一种同步任务的方法,保证某一时刻集群中只有一台机器执行定时任务。
但是,令我奇怪的是,第一,我没有配置quartz的数据源信息;第二,我也没有配置quartz的cluster,quartz应该是在内存中维护任务列表才对。因为我们根本就没有自定义quartz.properties。

从日志上看,这的确是Quartz抛出来的异常,而且就是SchedulerFactoryBean.createScheduler时出现了问题;直接查看SchedulerFactoryBean的源码,惊奇的发现了dataSource这个属性!!而且在setDataSource方法注释里面说明了该属性将覆盖quartz.properties文件配置的datasource;看到这个属性就一切都明了了,原来又是Spring的自动注入惹的祸!前段时间刚刚遭遇过同类事件,具体可参见《网店版重生系列:都是Spring配置中自动注入惹的祸》; 

一般情况下我们数据源的beanId都是dataSource,所以在Spring自动注入的情况下,Spring再一次自作聪明了一把!解决办法有二:其一,取消quartz任务相关配置所在bean的自动注入,注意:无需将所有Spring配置文件中的自动注入都去西欧啊;其二:将系统数据源datasource这个beanId进行改名;

SpringBoot整合Quartz踩坑记:SQLServer游标问题导致db row lock报错的终极解决方案 本文深入解析SpringBoot整合Quartz时遇到的SQLServer游标锁问题,提供多种解决方案,包括修改数据源配置、自定义SQL方言等,帮助开发者彻底解决'db row lock'报错问题,优化定时任务调度性能。 阅读详情

相关推荐

quartz 报错:Failure obtaining db row lock: Table ‘test.QRTZ_LOCKS‘ doesn‘t exist

问题: spring-boot 整合quartz的时候,连接windows的mysql的时候好好的,然而用linux上的mysql的时候,启动就报了这个错: Failure obtaining db row lock: Table ‘test.QRTZ_LOCKS’ doesn’t exist 分析: 首先用windows的mysql是没问题的。 其实linux的mysql也是有这个表的,但由于是从windows复制过去的,所以表名都是小写的,而quartz启动的时候找的是大写,所以认为test.QRTZ

zhangsir的博客 2万+

org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Table 'xxx.qrtz_LOCKdoesn

在启动springboot集成quartz定时任务报错信息 org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Table 'aly_uias.qrtz_LOCKS' doesn't exist 异常信息表明:在创建quartz自带表时,表明是小写的,程序中使用的是大写表明,由于mysql数据库...

芋头 8623

Springboot+sqlserver+Quartz整合报错: Failure obtaining db row lock: 第 1 行: 只有 DECLARE CURSOR 才允许使用 FOR U

1.报错信息 org.springframework.context.ApplicationContextException: Failed to start bean 'quartzScheduler'; nested exception is org.springframework.scheduling.SchedulingException: Could not start Quartz Scheduler; nested exception is org.quartz.SchedulerConfig

baidu_39212797的博客 7335

spring quartz 定时器报错

Caused by: org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Table 'driverbible.qrtz_locks' doesn't exist [See nested exce...

chengyu0485的博客 393

Kaamel白皮书:Agent-to-Agent(A2A)隐私安全最佳实践

随着AI智能体架构从单体模型演化为多Agent协同系统,A2A协议为智能生态提供了强大的互操作能力。然而,能力越大,责任亦重。若无完备的隐私保护和安全防护体系,A2A将沦为数据泄露、滥权执行的温床。Kaamel作为专注于泛安全方向的Agent基础设施构建者,呼吁业界将“隐私工程”与“安全编排”作为A2A系统设计的核心前提,共建可信Agent生态,守护智能协同时代的数据主权与系统安全。未来,Kaamel计划发布一套“可信Agent协同蓝图”,涵盖:A2A协议适配Agent SDK工具集;

kaamelai的博客 1598

单细胞分析实录(12): 如何推断肿瘤细胞

公众号后台回复20210418,获取本文的测试数据 1. 回顾 前面我已经讲解了inferCNV的基本用法,这一节继续学习:如何推断肿瘤细胞。本文应该是到目前为止,全网最详细的帖子(之一)。 关于肿瘤细胞的推断,比如研究上皮细胞起源的肿瘤,我见过的一些做法如下 简单粗暴型:将来源肿瘤病灶的所有上皮细胞都看成是肿瘤细胞 看CNV:将来源于肿瘤病灶的上皮细胞和参考细胞比较,将那些有明显CNV的细胞看作肿瘤细胞 看表达特征:考虑到有的肿瘤细胞可能没有CNV层面的变化,有的文章会根据肿瘤与正常的表达谱来区分是.

TOP生物信息 1万+

springboot后端启动报错Failure obtaining db row lock: Table ‘linfengcommunity.QRTZ_LOCKS‘ doesn‘t exist

而项目中使用的 Quartz 定时任务框架生成的表为小写,程序调用时用了大写,导致找不到表。,表示配置生效,问题解决。

2301_79296001的博客 105

如何下载安装Qt各个版本?(2025-4-28更新)

本文将教您快速获取Qt各版本安装包!妈妈再也不用担心我找不到Qt安装包了!

程序区 5113

Spring+Quartz实现定时任务的配置方法

1、Scheduler的配置     说明:Scheduler包含一个Trigger列表,每个Trigger表示一个作业。 2、Trigger的配置

hety119的专栏 642

【原创工具 | OpenCV-CamCalib】一个基于 OpenCV 的自动化相机数据采集和标定程序

一个基于OpenCV的自动化相机数据采集和标定程序。系统内置相机地址默认为 0。

XavierJ的博客 2697

Windows11下QGIS 3.34.4安装Geo-SAM插件全流程(附RTX3060 CUDA12.0配置技巧)

本文详细介绍了在Windows 11系统中为QGIS 3.34.4安装和配置Geo-SAM插件的完整流程,特别针对RTX 3060显卡用户提供了CUDA 12.0与PyTorch环境的精准搭建方案。通过预编码与交互式分割两大核心步骤,该插件能显著提升遥感图像半自动标注的效率,降低硬件门槛,是地理信息处理领域融合AI技术的实用指南。

weixin_29089057的博客 295

Spring Quartz *.QRTZ_LOCKS' doesn't exist

    ERROR [org.springframework.web.context.ContextLoader] - Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework...

weixin_34056162的博客 3087

vLLM专题(七)-支持的模型列表

vLLM支持跨多种任务的生成式和池化模型。如果一个模型支持多个任务,您可以通过–task参数来设置任务。对于每个任务,我们列出了已在vLLM中实现的模型架构。每个架构旁边,我们列出了一些使用该架构的流行模型。

1257

记springboot项目启动Communications link failure

1.项目启动时报如下异常: 2020-02-26 10:09:36.387 ERROR [main] ExApplicationRunListener:223-- 启动失败 com.acooly.module.scheduler.exceptions.SchedulerEngineException: [task1]启动失败:[task1]启动失败:Failure obtaining db row...

slsu的博客 5089

GEE:耦合5个因子的kRSEI遥感生态指数(K Remote Sensing Ecological Index, KRSEI)计算

本文将介绍在 Google Earth Engine (GEE)平台上,如何耦合5个因子,进行 kRSEI 的计算。具体来说,分别计算了 `NDVI, WET, NDBSI,LST,NDRI` 5个因子,并使用 PCA 主成分分析方法计算了权重,最后,计算了 kRSEI 指数。

养乐多的博客 1413

YOLOv12改进策略【独家融合改进】| MobileNetV4+BiFPN,轻松实现降参涨点,适用专栏内所有的骨干替换

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 978

org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Table ‘india_framework.QR

将Windows上的mysql数据迁移到Linux上后,报这个错:org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Table 'india_framework.QRTZ_LOCKS' doesn't exist首先用windows的mysql是没问题的。 其实linux的mysql也是有这个表的,但由于是从windows复制过去的,所以表名都是小写的,而quartz启动的时候找的是大写,所以认为test.Q

m0_72560900的博客 2997

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

为什么开发人员必须要了解数据库锁?

1.锁? 1.1何为锁 锁在现实中的意义为:封闭的器物,以钥匙或暗码开启。在计算机中的锁一般用来管理对共享资源的并发访问,比如我们java同学熟悉的Lock,synchronized等都是我们常见的锁。当然在我们的数据库中也有锁用来控制资源的并发访问,这也是数据库和文件系统的区别之一。 1.2为什么要懂数据库锁? 通常来说对于一般的开发人员,在使用数据库的时候一般懂点DQL(select),DML...

weixin_34406796的博客 547

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

成功解决:Caused by: org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock

当在IDEA中配置了云服务器的MySQL Caused by: org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Table 'amops.QRTZ_LOCKS' doesn't exist 因为在Linux平台下面MySQL默认是严格区分大小写的,需要去修改MySQL的配置文件 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 在mysqld下添加以下内容 lower

GniLAY1022的博客 4510

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数据库导入或运行时报错Failure obtaining db row lock: Table ‘linfengcommunity.QRTZ_LOCKS‘ doesn‘t exist

linfengcommunity数据库导入或运行时报错Failure obtaining db row lock: Table 'linfengcommunity.QRTZ_LOCKS' doesn't exist

weixin_43963518的博客 1866

nested exception is java.sql.SQLException: connection disabled

当使用Spring Boot连接数据库时,出现"nested exception is java.sql.SQLException: connection disabled"异常可能是由于数据库配置错误、数据库服务器故障、连接池配置问题或数据库访问权限不足引起的。数据库权限问题:数据库用户可能没有足够的权限来连接数据库或执行所需的操作。验证数据库权限:确保数据库用户具有足够的权限来连接数据库和执行所需的操作。检查数据库连接配置:确保数据库连接的URL、用户名和密码正确配置,并与实际数据库的凭据匹配。

Java老兵的后端进阶与AI前沿探索之路。 1万+

QUARTZ 报错:FAILURE OBTAINING DB ROW LOCK: TABLE ‘TEST.QRTZ_LOCKS‘ DOESN‘T EXIST

mysql有个配置属性:lower_case_table_names windows上安装mysql,默认是1, linux上安装mysql,默认是0,代表不忽略大小写 在my.cnf配置文件中[mysqld]标签的作用区域,增加lower_case_table_names=1的配置,然后重启MySQL服务 修改/etc/my.cnf文件 保存退出,重启mysql即可 ...

bblo 1623

解决:Caused by: org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock

当在IDEA中配置了云服务器的MySQL Caused by: org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Table 'amops.QRTZ_LOCKS' doesn't exist 因为在Linux平台下面MySQL默认是严格区分大小写的,需要去修改MySQL的配置文件 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 在mysqld下添加以下内容

爱吃橙子蜂蜜酱的熊 2543
上一篇: 网店版重生系列:多数据源单sqlMapClient导致NullPointerException问题跟踪
下一篇: 探讨:研发中心应该包括的核心元素模型
sfdev
博客等级 码龄22年 468粉丝 134原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值