java quartz 失败重试_重试Quartz Scheduler启动数据库连接失败

我们有一个Java应用程序,它使用Quartz来调度作业 . 我们使用的石英版本是:quartz-2.2.1

quartz配置使用JDBC作业存储 .

如果在石英调度程序对象上调用start方法时数据库连接已关闭(由于间歇性网络故障),则会因以下异常而失败:

2017-05-28 00:05:45 org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Couldn't recover jobs: The connection is closed. [See nested exception: com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.]]

2017-05-28 00:05:45 at org.quartz.impl.jdbcjobstore.JobStoreSupport.schedulerStarted(JobStoreSupport.java:692)

2017-05-28 00:05:45 at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:567)

2017-05-28 00:05:45 at org.quartz.impl.StdScheduler.start(StdScheduler.java:142)

为了确保石英调度程序成功启动,我们在代码中添加了重试,该代码在每1秒后调用石英调度程序对象上的start方法 . 但是当数据库连接启动时,对quartz scheduler start方法的调用成功(它不会抛出任何异常) - 但是不会启动驻留在数据库中的关联触发器,也不会触发任何作业 .

知道这里有什么问题吗?任何帮助将不胜感激 .

这是石英配置,请注意我们已启用验证查询来处理糟糕的连接(由于间歇性网络故障)

#============================================================================

# Configure Main Scheduler Properties

#============================================================================

org.quartz.scheduler.instanceName = TestScheduler

org.quartz.scheduler.instanceId = AUTO

org.quartz.scheduler.skipUpdateCheck=true

#============================================================================

# Configure ThreadPool

#============================================================================

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount = 50

org.quartz.threadPool.threadPriority = 5

#============================================================================

# Configure JobStore

#============================================================================

org.quartz.jobStore.misfireThreshold = 60000

org.quartz.jobStore.maxMisfiresToHandleAtATime = 15

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate

org.quartz.jobStore.useProperties = false

org.quartz.jobStore.dataSource = aBPM

org.quartz.jobStore.tablePrefix = ABPM_

org.quartz.jobStore.isClustered = false

org.quartz.jobStore.useDBLocks = false

org.quartz.jobStore.acquireTriggersWithinLock = true

#============================================================================

# Configure Datasources

#============================================================================

org.quartz.dataSource.aBPM.driver = org.hsqldb.jdbcDriver

org.quartz.dataSource.aBPM.URL = jdbc:hsqldb:file:embeddedDb/db/abpmquartz

org.quartz.dataSource.aBPM.user = sa

org.quartz.dataSource.aBPM.encryptPassword = yes

org.quartz.dataSource.aBPM.password = fMFVvEFk3gFmM9ewWQkTNg==

org.quartz.dataSource.aBPM.maxConnections = 55

org.quartz.dataSource.aBPM.validationQuery= SELECT 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值