2

有时当我多次重新部署战争时,jboss 给出java.lang.OutOfMemoryError: PermGen space错误,是否可以使用不在 jboss 内部运行的其他 Java 程序监视 jboss,以确保它没有运行内存不足,如果是,然后自动重启jboss?

4

2 回答 2

2

我希望您可以通过 JMX 和 MemoryMXBean 监控内存消耗。您可以通过JConsole以交互方式执行此操作,或者编写一个简单的监视器来自动执行此操作。

以下是有关如何在进程中执行此操作的一些详细信息,但您也可以远程执行此操作。有关更多信息,请参阅 JMX 文档。

或者,您可以在JavaServiceWrapper下运行一个进程,并让它根据来自 stdout/err 的消息关闭/重新启动一个进程。这可能是一种自动执行重启的简单方法。但是,从长远来看,我更喜欢使用 JMX 解决方案,这样您就可以获得问题的提前警告(并且可能将它们与它们的根本原因联系起来)。

于 2009-11-23T11:18:17.460 回答
1

我建议HypericHQ。这是一个非常好的独立应用程序,可以监控您的 JBoss 实例,在 permgen 或 heap 变低时提醒您,甚至可以在需要时触发重新启动。这是一个复杂的野兽,但值得投资。

于 2009-11-23T11:11:57.770 回答