使用sql server的时候一切都是正常的,但是更换成oracle数据库就报告异常:
ERROR -- ClusterManager: Error managing cluster: Failure updating scheduler state when checking-in: ORA-00904: "RECOVERER": 标识符无效
org.quartz.JobPersistenceException: Failure updating scheduler state when checking-in: ORA-00904: "RECOVERER": 标识符无效
[See nested exception: java.sql.SQLException: ORA-00904: "RECOVERER": 标识符无效
]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.clusterCheckIn(JobStoreSupport.java:2130)
at org.quartz.impl.jdbcjobstore.JobStoreCMT.doCheckin(JobStoreCMT.java:1387)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage(JobStoreSupport.java:2378)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.initialize(JobStoreSupport.java:2365)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.schedulerStarted(JobStoreSupport.java:506)
at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:396)
at org.quartz.impl.StdScheduler.start(StdScheduler.java:147)
我的quartz.properties配置如下:
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.maxMisfiresToHandleAtATime = 20
org.quartz.jobStore.selectWithLockSQL = SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ?
##===========================================================
## Configure Datasources
##===========================================================
#
#org.quartz.dataSource.myDS.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
#org.quartz.dataSource.myDS.URL = jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SYS_MGR_TEST
#org.quartz.dataSource.myDS.user = sa
#org.quartz.dataSource.myDS.password = 123
#org.quartz.dataSource.myDS.maxConnections = 5
#==============================================================
#Configure Cluster Properties
#==============================================================
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
#==============================================================
#Configure ThreadPool
#==============================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
使用的是spring配置的数据源,
使用sqlserver的时候一切正常,使用oracle数据库,我就修改了org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
结果启动的时候就报告上面那个异常。
哪位达人帮助看一下,多谢~~
分享到:
相关推荐
在“Quartz2.0持久化到数据库”这个主题中,我们将深入探讨如何将Quartz2.0的任务调度信息存储到数据库中,以便在系统重启或故障后能够恢复任务,并提供更可靠的调度服务。 首先,理解Quartz2.0的持久化机制至关...
3. **任务持久化**:Quartz将任务和触发器存储在数据库中,即使应用重启,也能保持任务状态。 4. **异常处理**:在Job类中捕获和处理异常,确保任务的健壮性。 通过上述步骤,你已经掌握了Spring集成Quartz集群配置...
综上所述,Quartz 1.8.6与Spring 3.1.4的集成使得开发者能够利用数据库持久化功能创建可靠的定时任务。通过配置文件和Spring的XML配置,我们可以灵活地管理作业和触发器,并借助其他依赖库实现更复杂的应用场景。
本人搭的项目,可以正常运行。用于自己存留备份,若有人需要也可下载。 项目用到的技术点: ...quartz持久化到Oracle数据库+ log4j+ Excel处理(只有工具代码,使用代码没放)+ spring-test(测试例子)+ bootstrap
-- 其他配置,如是否持久化 --> <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> * * * ?"/> <!-- 每5分钟执行一次 --> ``` 将`Job`和`Trigger`加入到`...
在实际应用中,我们可能还需要处理任务的持久化,以便服务器重启后能够恢复之前的状态。这通常是通过将Quartz的配置设置为使用数据库存储Job和Trigger来实现的。这里提供的"tables_oracle.sql"文件很可能就是用于在...
在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息。这个过程通常涉及执行一系列SQL语句来创建必要的表结构。 Quartz的初始化SQL语句主要用于...
在企业级应用开发中,定时任务的管理是一个重要的部分,Quartz是一款强大的开源作业调度框架,常被用于处理定时任务。...在实际开发中,还可以根据项目需求进行更复杂的配置和优化,例如使用集群、持久化策略调整等。
本文将深入探讨Quartz的持久化机制,以及如何配置和使用这一功能。 首先,我们来看`quartz.properties`文件。这是Quartz的配置文件,其中包含了调度器的行为和属性设置。例如,你可以在这里指定存储作业和触发器的...
在 Quartz 与 Hibernate 整合时,可以利用 Hibernate 的功能来持久化 Quartz 的作业和触发器,提供了一种无缝的方式来管理数据库中的调度数据。 Spring 是一个全面的 Java 应用开发框架,提供依赖注入、事务管理、...
在配置Quartz时,需要指定相应的JDBC连接,Quartz会将作业和触发器的信息存储在数据库中,保证服务重启后任务状态的持久化。 6. **调试与测试**:在"spring+mybatis+Quartz+jquery.rar"的环境中,调试成功意味着...
- 数据库驱动JAR:如果使用JDBC进行持久化,可能需要相应的数据库驱动JAR,如MySQL、Oracle等。 - 其他依赖库:如SLF4J或log4j的日志库,Spring整合库等,根据配置可能需要。 在使用Quartz时,通常会进行以下步骤:...
此外,它还具备调度现场的持久化能力,即使系统崩溃,也能恢复任务调度的状态。 在Quartz集群中,每个节点都是一个独立的Quartz应用,它们通过共享数据库来感知彼此的存在。这种设计使得集群具有高可用性和伸缩性。...
框架还提供了JobStore接口,用于实现不同持久化机制,如RAMJobStore(内存存储,适合小型应用)、 JDBCJobStore(数据库存储,适合大型分布式系统)等。 文档中会详细介绍如何创建JobDetail,这是Job的具体实例,...
处理多个持久化单元 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的JPA实现DAO 12.6.4. 异常转化 12.6.5. 事务管理 12.6.6. JpaDialect III. Web 13. Web框架 13.1. 介绍 13.1.1. 与其他web框架的集成 ...
Quartz 是一个开源的作业调度框架,常...在实际开发中,你还可以利用Quartz的高级特性,如并发控制、作业持久化、集群支持等。理解并熟练使用这些jar文件是有效利用Quartz的关键,能够帮助你构建出强大的定时任务系统。
Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向切面编程(AOP),简化了代码管理与模块化,而Hibernate则是持久层框架,负责数据库操作,提供了对象关系映射(ORM)功能...
6. **jdo**:Java Data Objects是Java标准,提供了对持久化数据的API。虽然Spring更倾向于使用Hibernate等ORM框架,但Spring仍然可以与JDO集成,提供事务管理和对象/关系映射能力。 7. **toplink**:TopLink(现在...
Quartz需要一个持久化存储来保存作业和触发器的信息,通常使用关系型数据库如MySQL或Oracle。你需要将这些脚本在你的数据库环境中执行,创建所需的表结构。 在`src`源代码目录下,我们可能看到以下几个关键部分: ...
在Spring Boot框架中,代码生成方法块是一种自动化开发策略,旨在提高开发效率,减少重复劳动。Spring Boot通过集成各种工具库,使得开发者能够快速构建基于Java的应用程序,其中包括数据库操作的相关代码生成。以下...