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

zdwk9cvp  于 2022-11-23  发布在  Java
关注(0)|答案(4)|浏览(154)

我正在使用JBoss 5.1.0.GA和Quartz调度器。当我的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)
2izufjch

2izufjch1#

你应该明白这是一个错误,而不是一个异常。基本上,在Java中,一旦你的内存不足,你的进程就变得不稳定,你不能真正确定你的程序在未来的执行结果是什么,即使jboss继续运行。
我会建议进行内存转储(JVM中有一个参数,允许在发生此错误时保存内存转储)。然后使用您最喜欢的分析器(VisualVM是免费的,捆绑到JDK,或者您可以使用任何其他工具)分析它,并尝试找到错误发生的原因,而不是如何保持Quartz运行。
这可能是应用程序泄漏,或者只是创建了太多的对象。在任何情况下,都应该进行分析。
当然,通常一个“即时”的解决方案就是增加java进程的内存堆大小,但是如果你说这不是一个选项,我就不详细说明了...
希望这对你有帮助

avkwfej4

avkwfej42#

因此,修复内存问题并重新启动服务器总是很好的,因为当服务器从内存不足错误中恢复时,您可能会遇到异常行为。

ozxc1zmp

ozxc1zmp3#

尝试为jboss服务器分配更多内存并重新启动它

a64a0gku

a64a0gku4#

您可以尝试停止和备份+删除Jboss as或esb自动创建的表,如上面所示;
JBM_USER JBM_ROLE JBM_POSTOFFICE JBM_MSG JBM_COUNTER ... etc.
然后您应该重新启动服务器。
这解决了我们的问题。

相关问题