Quartz Jobs 不会间歇性触发
Quartz Jobs do not fire intermittently
环境:
- 应用服务器:WebSphere 8.5
- OS:Solaris 11
- 石英版本:2.2.1
- None集群环境。
目前的问题和发现:
- 当计划触发两个并发作业时,只有一个作业会自动触发。然而,并非所有工作都是如此。有时,一项工作也没有解雇。
- 作业未触发后不报misfire作业。
[QuartzScheduler_QuartzScheduler-NON_CLUSTERED_MisfireHandler] DEBUG jdbcjobstore.JobStoreTX - Found 0 triggers that missed their scheduled fire-time.
作业计划每隔几个小时 运行 完成一次,每个作业的完成时间不会超过几分钟。换句话说,线程转储中证明没有线程忙。
为 Quartz 配置了 30 个线程。在作业计划时间之前获取的线程转储中,所有 30 个都处于 TIMED_WAITING 状态。
QuartzScheduler_Worker-30
*priority:3 - threadId:0x0000000104ff5000 - nativeId:0x1c1 - nativeId (decimal):449 - state:TIMED_WAITING
stackTrace:
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
- locked (a java.lang.Object)*
- 有一段时间它工作正常,它发生在 WAR 文件重启后。
有关模拟问题的更多详细信息:
- 虽然作业未根据日志触发。 PREV_FIRE_TIME QUARTZ_TRIGGERS table 中的列已更新。
数据库出现问题。表空间已满,因此 quartz 无法插入记录以启动计划作业。
我想知道为什么即使我启用了 Quartz 调试模式,但在出现数据库问题时却没有抛出异常。
环境:
- 应用服务器:WebSphere 8.5
- OS:Solaris 11
- 石英版本:2.2.1
- None集群环境。
目前的问题和发现:
- 当计划触发两个并发作业时,只有一个作业会自动触发。然而,并非所有工作都是如此。有时,一项工作也没有解雇。
- 作业未触发后不报misfire作业。
[QuartzScheduler_QuartzScheduler-NON_CLUSTERED_MisfireHandler] DEBUG jdbcjobstore.JobStoreTX - Found 0 triggers that missed their scheduled fire-time.
作业计划每隔几个小时 运行 完成一次,每个作业的完成时间不会超过几分钟。换句话说,线程转储中证明没有线程忙。
为 Quartz 配置了 30 个线程。在作业计划时间之前获取的线程转储中,所有 30 个都处于 TIMED_WAITING 状态。
QuartzScheduler_Worker-30 *priority:3 - threadId:0x0000000104ff5000 - nativeId:0x1c1 - nativeId (decimal):449 - state:TIMED_WAITING stackTrace: java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568) - locked (a java.lang.Object)*
- 有一段时间它工作正常,它发生在 WAR 文件重启后。
有关模拟问题的更多详细信息: - 虽然作业未根据日志触发。 PREV_FIRE_TIME QUARTZ_TRIGGERS table 中的列已更新。
数据库出现问题。表空间已满,因此 quartz 无法插入记录以启动计划作业。
我想知道为什么即使我启用了 Quartz 调试模式,但在出现数据库问题时却没有抛出异常。