2011-11-25 102 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應用程序 –

相關問題