gpt4 book ai didi

JBoss 和 Quartz 上的 Java 堆空间停止运行

转载 作者:行者123 更新时间:2023-12-01 14:59:01 26 4
gpt4 key购买 nike

我正在使用 JBoss 5.1.0.GA 和 Quartz Sheduler。当我的 JBoss 出现 Java 堆空间时,我的 Quartz 调度程序停止。奇怪的是:之后我的 Jboss 还在运行

这是我的堆栈

    2012-12-19 10:32:21,296 ERROR [STDERR] (AOPListner) Exception in thread "AOPListner" 
2012-12-19 10:32:26,531 ERROR [STDERR] (AOPListner) java.lang.OutOfMemoryError: Java heap space
2012-12-19 10:32:26,531 ERROR [STDERR] (AOPListner) at java.util.WeakHashMap.put(WeakHashMap.java:416)
2012-12-19 10:32:28,125 ERROR [STDERR] (AOPListner) at org.jboss.aop.AspectManager.getAdvisors(AspectManager.java:546)
2012-12-19 10:32:29,703 ERROR [STDERR] (AOPListner) at org.jboss.console.plugins.AOPLister$RefreshPoller.run(AOPLister.java:891)
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) Exception in thread "DefaultQuartzScheduler_QuartzSchedulerThread"
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) java.lang.OutOfMemoryError: Java heap space
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) at org.quartz.CronExpression.addToSet(CronExpression.java:852)
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) at org.quartz.CronExpression.storeExpressionVals(CronExpression.java:483)
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) at org.quartz.CronExpression.buildExpression(CronExpression.java:376)
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) at org.quartz.CronExpression.<init>(CronExpression.java:248)
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) at org.quartz.CronExpression.clone(CronExpression.java:1375)
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) at org.quartz.CronTrigger.clone(CronTrigger.java:431)
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) at org.quartz.simpl.RAMJobStore.acquireNextTrigger(RAMJobStore.java:1161)
2012-12-19 10:32:45,593 ERROR [STDERR] (DefaultQuartzScheduler_QuartzSchedulerThread) at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:233)

最佳答案

您应该明白这是一个错误,而不是异常。基本上,一旦 Java 内存不足,您的进程就会变得不稳定,即使 jboss 继续运行,您也无法真正确定将来程序执行的结果是什么。

我建议进行内存转储(JVM 中有一个参数允许在发生此错误时保存内存转储)。然后使用您最喜欢的分析器(VisualVM 是免费的并与 JDK 捆绑在一起,或者您可以使用任何其他分析器)对其进行分析,并尝试查找发生错误的原因,而不是如何保持 Quartz 运行。

这可能是应用程序泄漏,或者只是创建了太多对象。无论如何,都应该对其进行分析。

当然,通常的“即时”解决方案只是增加 java 进程的内存堆大小,但如果你说这不是一个选项,我不会详细说明这一点...

希望这有帮助

关于JBoss 和 Quartz 上的 Java 堆空间停止运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13958916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com