quartz2.2.3 spring整合遇到的错误,及quartz配置文件说明
出现 Couldn't acquire next trigger: ORA-08177: 无法连续访问此事务处理错误:
1:可能是由org.quartz.jobStore.txIsolationLevelSerializable设置为true的原因,将此属性设置为false
2:你的job类中可能做了大量的和数据库交互的代码,但是job默认是多线程并发执行的,出现任务堆积导致,如果使用MethodInvokingJobDetailFactoryBean方式只需设置concurrent为false即可
如果使用实现job接口或者继承QuartzJobBean等类时需要在此job实现类上添加 @DisallowConcurrentExecution注解
3:无法连续访问此事物,出现这种情况一般是insert或者update语句的事物还没提交,另外再次使用insert/update/delete等语句操作了此数据
出现数据库连接错误
1:可能org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 配置不太合适,根据自己的数据库配置相应的值,可在
org.quartz.impl.jdbcjobstore包或者其子包下寻找合适的配置
quartz集群时使用crontrigger但是没有执行错过的任务
描述:使用crontrigger 重启quartz时没有执行错过的任务
解决:可能是org.quartz.jobStore.misfireThreshold属性的值设置的不合理
出现java.sql.SQLException: ORA-01453: SET TRANSACTION 必须是事务处理的第一个语句
1:可能你在配置文件中配置了多个数据源,解决方法:只配置一个
2:可能是由org.quartz.jobStore.txIsolationLevelSerializable设置为true的原因,将此属性设置为false
配置文件详解如下:
属性 默认值
org.quartz.jobStore.driverDelegateClass
描述:能理解不同数据库系统中某一特定方言的驱动代理
org.quartz.jobStore.dataSource
描述:用于 quartz.properties 中数据源的名称
org.quartz.jobStore.tablePrefix QRTZ_
描述:指定用于 Scheduler 的一套数据库表名的前缀。假如有不同的前缀,Scheduler 就能在同一数据库中使用不同的表。
org.quartz.jobStore.userProperties FALSE
描述:"use properties" 标记指示着持久性 JobStore 所有在JobDataMap 中的值都是字符串,因此能以 名-值 对的形式存储,而不用让更复杂的对象以序列化的形式存入 BLOB 列中。这样会更方便,因为让你避免了发生于序列化你的非字符串的类到 BLOB 时的有关类版本的问题。
org.quartz.jobStore.misfireThreshold 60000
描述:在 Trigger 被认为是错过触发之前,Scheduler 还容许 Trigger 通过它的下次触发时间的毫秒数,默认值(假如你未在配置中存在这一属性条目) 是60000(60 秒)。这个不仅限于JDBC-JobStore;它也可作为RAMJobStore 的参数
org.quartz.jobStore.isClustered FALSE
描述:设置为 true 打开集群特性。如果你有多个 Quartz 实例在用同一套数据库时,这个属性就必须设置为 true。
org.quartz.jobStore.clusterCheckinInterval 15000
描述:设置一个频度(毫秒),用于实例报告给集群中的其他实例。这会影响到侦测失败实例的敏捷度。它只用于设置了 isClustered 为 true 的时候。
org.quartz.jobStore.maxMisfiresToHandleAtATime 20
描述:这是 JobStore 能处理的错过触发的 Trigger 的最大数量。处理太多(超过两打) 很快会导致数据库表被锁定够长的时间,这样就妨碍了触发别的(还未错过触发) trigger 执行的性能。
org.quartz.jobStore.dontSetAutoCommitFalse FALSE
描述:设置这个参数为 true 会告诉 Quartz 从数据源获取的连接后不要调用它的 setAutoCommit(false) 方法。这在少些情况下是有帮助的,比如假如你有这样一个驱动,它会抱怨本来就是关闭的又来调用这个方法。这个属性默认值是 false,因为大多数的驱动都要求调用setAutoCommit(false)。
org.quartz.jobStore.selectWithLockSQL SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE
描述:这必须是一个从 LOCKS 表查询一行并对这行记录加锁的 SQL 语句。假如未设置,默认值就是 SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE,这能在大部分数据库上工作。{0} 会在运行期间被前面你配置的TABLE_PREFIX 所替换。
org.quartz.jobStore.txIsolationLevelSerializable FALSE
描述:值为 true 时告知 Quartz(当使用 JobStoreTX 或 CMT) 调用 JDBC 连接的setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE) 方法。这有助于阻止某些数据库在高负载和长时间事物时锁的超时。
org.quartz.dataSource.NAME.driver
描述:JDBC 驱动类的全限名,NAME是上方dataSource指定的值
org.quartz.dataSource.NAME.URL
描述:连接到你的数据库的 URL(主机,端口等)
org.quartz.dataSource.NAME.user
描述:用于连接你的数据库的用户名
org.quartz.dataSource.NAME.password
描述:用于连接你的数据库的密码
org.quartz.dataSource.NAME.maxConnections
描述:DataSource 在连接接中创建的最大连接数
org.quartz.dataSource.NAME.validationQuary
描述:一个可选的 SQL 查询字串,DataSource 用它来侦测并替换失败/断开的连接。例如,Oracle 用户可选用 select table_name from user_tables,这个查询应当永远不会失败,除非直的就是连接不上了。
quartz2.2.3 spring整合遇到的错误,及quartz配置文件说明相关推荐
- Spring 学习日记 (四) Spring 整合Mybaits 和 struts2 框架的配置文件
其实也是挺无奈的 这东西永远这一棒子那一锤子的 太不系统了 哎 没办法 跟着项目走吧 首先准备的JAR包 需要配置的几个配置文件 配置spring applicationContext.xml ...
- 解决spring整合mybatis时错误 ‘org.mybatis.spring.mapper.MapperScannerConfigurer#0‘
警告:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybat ...
- 解决在Spring整合Hibernate配置tx事务管理器出现错误的问题
解决在Spring整合Hibernate配置tx事务管理器出现错误的问题 参考文章: (1)解决在Spring整合Hibernate配置tx事务管理器出现错误的问题 (2)https://www.cn ...
- java 定时任务插件_详解Spring整合Quartz实现动态定时任务
最近项目中需要用到定时任务的功能,虽然spring 也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整合更为专业的Quartz来实现定时任务功能. 普通定时任务 首先 ...
- springMvc+mybatis+spring 整合 包涵整合activiti 基于maven
2019独角兽企业重金招聘Python工程师标准>>> 最近自己独立弄一个activiti项目,写一下整合过程: 环境:jdk1.7 tomcat7.0 maven3.5 ecli ...
- Hibernate Validation与Spring整合各注解的用法Demo
转自:https://www.aliyun.com/jiaocheng/1315650.html <dependency> <groupId>org.hibernate< ...
- Spring整合Redis时报错:java.util.NoSuchElementException: Unable to validate object
我在Spring整合Redis时报错,我是犯了一个很低级的错误! 我设置了Redis的访问密码,在Spring的配置文件却没有配置密码这一项,配置上密码后,终于不报错了!
- 【Structs2】struts2单例多例以及spring整合的问题
单独的Struts2框架 1.struts2的Action默认是多实例的并非单例,也就是每次请求产生一个Action的对象,即每次访问的参数都被封装在Action的成员变量中. 2.struts2中A ...
- RabbitMQ,RabbitMQ 的工作模式,Spring 整合 RabbitMQ,Springboot 整合RabbitMQ
什么是RabbitMQ 1.1 MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器.多用于分布式系统之间进行通信. ⚫ MQ,消息队列,存储消息的中间件 ⚫ ...
- 使用Freemarker来页面静态化,与Spring整合使用
页面静态化介绍 页面静态化其实就是将原来的动态网页(例如通过ajax请求动态获取数据库中的数据并展示的网页)改为 通过静态化技术生成的静态网页,这样用户在访问网页时,服务器直接给用户响应静态html页 ...
最新文章
- 第六篇:并发-粒度锁
- spring mvc项目中利用freemarker生成自定义标签
- window下建立vue.js项目
- 关于接口 RandomAccess
- 直播「拯救」互联网?
- STC89C52 STC89LE52 NRF24L01无线 教程 (二)
- Anaconda安装绘图模块altair
- 能让你的Intellij IDEA 起飞的几个设置(设置背景 字体 快捷键 鼠标悬停提示 提示忽略大小写 取消单行显示)
- 微信小程序网络通信(一)
- 单链表的插入删除以及逆转
- 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)
- synchronized锁升级过程详解
- PDM系统服务器管理,PDM产品数据管理系统
- 更强大、更灵活、更全面丨一文搞懂DolphinDB窗口计算
- 赛马c语言编程,C/C++编程题之渊子赛马
- html之响应式(自适应)网页设计
- TVS二极管和稳压二极管的区别
- protractor环境安装
- AE中的各种报错提示的原因和解决方案
- 运筹学 基础 知识点总结 (八)
热门文章
- esxi - 加装vmware titan xp显卡配置
- mysql计算连续天数_mysql 统计连续天数
- 计算机主机进水无法启动,电脑主机进水会有什么影响!
- 使用python的requests模块实现百思不得其姐抓取(多线程版)
- 【智慧医疗】EMR vs EHR vs PHR 有何区别?
- Manjaro 配置指南
- 交换机trunk接口
- Service Mesh框架选型对比分析:Linkerd、Envoy、Istio、Conduit
- 物联网下的智慧停车 让智能化找到车位
- python 阮一峰_阮一峰关于 Javascript 中闭包的解读是否正确?