org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: ORA-00942: table or view
转载自:http://hithoper.blog.hexun.com/44424458_d.html今天在SPRING上配置一个QUARTZ来做定时任务,配置好了,启动程序,老是报如下错误:11:03:05,296 INFO [STDOUT] 02-22 11:03:05 [ERROR] org.springframework.web.context.ContextLoader
原因:我本地是Window平台,此平台下面Mysql默认是不区分下小写的,而服务器时Linux平台,在linux平台下面Mysql默认是严格区分大小写的。此时,修改Mysql配置文件让其不区分大小写,问题解决。。
>sudo vim /etc/mysql/my.cnf
在[mysqld]下面添加:
lower_case_
table
_names = 1...
当在IDEA中配置了云服务器的MySQL
Caused by:
org
.
quartz
.
impl
.
jdbc
jobs
tor
e.
Lock
Exception
:
Failu
re
obta
ini
ng
db
row
lock
:
Table
'amops.QRTZ_
LOCK
S' doesn't exist
因为在Linux平台下面MySQL默认是严格区分大小写的,需要去修改MySQL的配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在mysqld下添加以下内容
当在IDEA中配置了云服务器的MySQL
Caused by:
org
.
quartz
.
impl
.
jdbc
jobs
tor
e.
Lock
Exception
:
Failu
re
obta
ini
ng
db
row
lock
:
Table
'amops.QRTZ_
LOCK
S' doesn't exist
因为在Linux平台下面MySQL默认是严格区分大小写的,需要去修改MySQL的配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在mysqld下添加以下内容
lower
spri
ng
定时器中遇到这类问题,
Failu
re
obta
ini
ng
db
row
lock
:
ORA
-
00942
: 表或视图不存在
在网上找了资料看了看,最后将定时器的配置单独写到xml文件中,此问题就解决。
org
.
quartz
.
impl
.
jdbc
jobs
tor
e.
Lock
Exception
:
Failu
re
obta
ini
ng
db
row
lock
:
Table
'xxx.qrtz_
LOCK
doesn@TOC
欢迎使用Markdown编辑器
转自:https://www.cnblogs.com/cosmosray/p/13268771.html
异常信息表明:在创建
quartz
自带表时,表明是小写的,程序中使用的是大写表明,由于mysql数据库区分大小写,故无法找到大写表名的表。
解决方案一:
将对应qua
1.产生的错误日志
ERROR [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tun
i
ng
)'] (ContextLoader.java:215) - Context
initialization
failed
org
.spri
ng
framework.
bea
ns.fac
tor
y.
Bea
nCreatio...
ore.
Quartz
Scheduler' 是什么意思?
scheduler class: '
org
.
quartz
.core.
Quartz
Scheduler' 是
Quartz
调度器的类名。
Quartz
是一个开源的任务调度框架,可以用来实现定时任务、周期性任务等。
Quartz
Scheduler 是
Quartz
调度器的核心类,负责管理和执行任务。在使用
Quartz
进行任务调度时,需要配置 scheduler class 为 '
org
.
quartz
.core.
Quartz
Scheduler',以便正确地创建和管理
Quartz
调度器。
### 回答2:
Scheduler类是
Quartz
的核心类之一,是负责执行任务调度的组件。它是
Quartz
作业调度引擎中Task Scheduler子系统的一部分。
Scheduler类实现了Scheduler接口,它代表着调度程序的主体,它是任务调度系统的核心。当Scheduler启动时,它会加载Job和Trigger的信息,并按照Trigger的调度规则去触发Job执行。它能够自动地启动、暂停、恢复任务,能够完成各种任务的管理和监控,可以保证任务调度的正确性和高效性。
Scheduler类的主要职责包括:
1. 加载Job和Trigger的信息,生成任务调度计划。
2. 与JobDetail和TriggerDetail类实例相关联,生成Job和Trigger执行计划。
3. 通过相关接口控制任务的启动、暂停、恢复等。
4. 根据定义的触发器规则调度任务执行。
5. 根据定义的触发器规则对触发器进行管理和监控。
6. 提供任务状态监控相关接口,生成报表和日志。
Scheduler类的使用流程:
1. 创建SchedulerFac
tor
y实例,并通过它创建Scheduler实例。
2. 启动Scheduler实例。
3. 创建JobDetail实例,并将其注册到Scheduler实例中。
4. 创建Trigger实例,并将其注册到Scheduler实例中。
5. 停止Scheduler实例。
使用Scheduler类进行任务调度的好处是,它能够让应用程序实现多种复杂的调度逻辑,同时提供良好的性能和扩展性。它还有助于任务调度管理的自动化,减少人工干预,提高效率。
### 回答3:
Quartz
的调度器类(Scheduler class)是一个非常重要的组件,它是
Quartz
实现任务调度的核心。Scheduler类提供了丰富的API,可以用来创建和管理任务调度。下面我来详细介绍一下Scheduler类的主要内容和常用方法。
首先,Scheduler类的作用是创建Scheduler实例,并且为Job和Trigger提供管理和调度服务。Scheduler类可以从SchedulerFac
tor
y中获得,可以有多个Scheduler实例同时运行,每个Scheduler实例拥有自己独立的任务调度。
Scheduler类提供了许多实用的方法,最常用的就是scheduleJob()方法,用来为指定的Job和Trigger创建调度任务。此外,Scheduler类还提供了pauseJob()、resumeJob()、pauseTrigger()、resumeTrigger()等方法,用来控制Job和Trigger的暂停和恢复。还可以使用get
TriggerS
tate()方法来获取Trigger的状态信息。
Scheduler类中还有一些方法可以用来管理调度器本身,如shutdown()方法可以用来停止Scheduler的运行,start()方法可以启动Scheduler的运行,stan
db
y()方法可以启用Scheduler的stan
db
y模式,等到需要的时候再启动。
在使用Scheduler类时,还有一些需要注意的细节。首先,在创建Scheduler实例时,需要配置SchedulerFac
tor
y,指定线程池、
JobS
tor
e等参数,以满足不同场景的任务调度需求。此外,Scheduler类也支持对任务调度进行监听器的设置,用于在任务执行前后做一些额外处理。
总的来说,Scheduler类是
Quartz
任务调度中非常重要的一个组件,它提供了一系列可靠、实用的方法,可以方便地进行任务调度的管理和控制。要想充分利用Scheduler类的功能,需要对
Quartz
的基本原理和API有清晰的认识,才能更好地进行调度任务的设计和实现。
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0