小智 12
我遇到了类似的问题,但问题是,我在石英属性中有10个线程石英默认线程数,当我进行线程转储*我发现我在阻塞统计中有10个工作,这意味着我不能再运行了线程.
快速解决此问题以增加quartz属性中线程池中的线程数.
实际的修复是审查我的代码,以了解为什么我有10个被阻止的线程.
*做线程转储你可以使用kill -3 <java进程号>将线程转储打印到你的应用程序标准输出,即如果你运行tomcat你在catalina.out日志文件中找到它
小智 7
在我的情况下,我有一个与数据库的开放连接.当我没有更多可用的连接时,我的线程仍在等待.因为我无法开始任何其他工作,所以什么也没发生,一切都被阻止了.我建议您检查是否有可能需要发布的阻塞资源.
如果您使用数据库来存储作业,请检查触发器的trigger_state。现在我遇到了类似的问题(或者至少有类似的症状)。
每分钟运行一次的作业将使触发器处于“已获取”状态,并且永远不会再次运行。和你一样,我在日志中什么也没看到。
我还看到同一问题的不同原因。同样,作业只是停止运行,但触发器不处于“ACQUIRED”状态。至今我还不知道原因。
到目前为止我所知道的是调度程序线程正在等待空闲的工作线程。看起来所有工作线程都在等待信号量以更新其调度。我还无法获得线程转储来验证工作线程正在等待什么。
我正在运行 Quartz 1.6.1 RC1。请参阅此错误报告: http://jira.opensymphony.com/browse/QUARTZ-668
我想这就是我所看到的。
| 归档时间: |
|
| 查看次数: |
29604 次 |
| 最近记录: |