0

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)
4

4 に答える 4

1

これは例外ではなくエラーであることを理解しておく必要があります。基本的に、Java でメモリ不足になると、プロセスが不安定になり、jboss が引き続き実行されたとしても、将来のプログラム実行の結果がどうなるかを実際に確認することはできません。

メモリ ダンプを取得することをお勧めします (JVM には、このエラーが発生したときにメモリ ダンプを保存できるパラメータがあります)。次に、お気に入りのプロファイラー (VisualVM は無料で JDK にバンドルされているか、他のものを使用できます) で分析し、Quartz の実行を維持する方法ではなく、エラーが発生する理由を見つけようとします。

アプリケーションのリーク、または作成されたオブジェクトが多すぎる可能性があります。いずれにせよ、分析する必要があります。

もちろん、通常、これに対する「即時の」解決策は、Java プロセスのメモリ ヒープ サイズを増やすことですが、それがオプションではないと言う場合は、これについて詳しく説明しません...

お役に立てれば

于 2012-12-26T05:47:08.343 に答える
0

そのため、これらはエラーと呼ばれます。そのため、メモリ不足エラーから回復するときに異常な動作が発生する可能性があるため、メモリの問題を修正してサーバーを再起動することをお勧めします。

于 2012-12-19T18:41:51.977 に答える
0

jboss サーバーにより多くのメモリを割り当てて再起動してみてください

于 2012-12-19T18:43:52.607 に答える
0

上記のように、Jboss as または esb の自動的に作成されたテーブルを停止してバックアップ + ドロップを試みることができます。

JBM_USER JBM_ROLE JBM_POSTOFFICE JBM_MSG JBM_COUNTER ... etc.

次に、サーバーを再起動する必要があります。

これで問題は解決しました。

于 2014-03-17T06:40:32.783 に答える