有时当我多次重新部署war时,jboss会给出 java.lang.OutOfMemoryError:PermGen space 错误,是否可以使用其他Java程序监视jboss不是在jboss里面运行,以确保它没有运行内存,如果是,那么自动重启jboss?
答案 0 :(得分:2)
我希望您可以通过JMX和MemoryMXBean监视内存消耗。您可以通过JConsole以交互方式执行此操作,或者编写一个简单的监视器来自动执行此操作。
Here's some details关于如何在进程中执行此操作,但您也可以远程执行此操作。有关详细信息,请参阅JMX文档。
或者,您可以在JavaServiceWrapper下运行一个进程,并根据从stdout / err发出的消息让它关闭/重启进程。这可能是一种自动执行重启的简单方法。但是,我更倾向于长期使用JMX解决方案,因此您可以预先警告问题(并且可能将它们与其根本原因联系起来)。
答案 1 :(得分:1)
我建议HypericHQ。它是一个非常好的独立应用程序,可以监视JBoss实例,在permgen或堆变低时提醒您,甚至可以在需要时触发重启。这是一个复杂的野兽,但值得投资。