2011-11-25 138 views
1

我这是在GlassFish中3.1.1由于意外的outOfmemory错误导致应用程序失败。

一旦PS老一代达到最大运行(-Xmx为512M)的Java应用程序,它丢弃,但我的整个应用程序挂起和死亡,它抛出outOfmemory:java heap space

我不明白为什么自ps老一代已经掉线 唯一的修复方法是重启服务器。

我需要应用程序来继续PS老一代滴。

回答

0

您可以监视您的服务器,并根据需要使用srcipt重新启动服务器。

+0

我想要的是释放PS老一代,一旦它达到最大值之前达到98%,因为它死了。 –

0

由于关机过程,内存使用率可能会下降。 outOfmemory异常清楚地表明它由于内存不足而正在死亡。

有一些选项可以优化老一代的尺寸。但是你应该采取一个堆快照并检查是否所有正在存储的数据都是必需的。可能有一些内存泄漏,或者可能需要增加应用程序的可用内存。

+0

感谢您的回复。 1.您提到“堆快照并检查是否所有的数据都被存储是必要的”,我所做的就是从数据库中获取数据并存储请求。你是否建议从数据库中获取更少的信息? 2.我增加了-Xms,但是一旦应用程序运行时间更长,我遇到了同样的问题 –

+0

您是否将它存储在request.getSession()对象中?您在请求中存储了多少数据? –

+0

对不起,我没有要求存储。但在每个页面上,我显示的数据库大约有50个图像,每个图像小于200k,然后使用outputstream将byte []写入我的web应用程序 –

相关问题