2012-08-14 52 views
1

我想弄清楚如何增加karaf的permgen內存。在karaf的啓動腳本中,我看到有:Apache Karaf啓動腳本。如何設置更多的perm內存?

if not "%JAVA_PERM_MEM%" == "" (
    set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM% 
) 
if not "%JAVA_MAX_PERM_MEM%" == "" (
    set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM% 
) 

我明白JAVA_PERM_MEMJAVA_MAX_PERM_MEM是變量,但他們沒有在任何地方啓動腳本中,除了這裏定義。

的karaf是活的機器上運行,所以我不想做就可以了我需要知道,如果做這樣的實驗任:

if not "%JAVA_PERM_MEM%" == "" (
    set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=512M 
) 
if not "%JAVA_MAX_PERM_MEM%" == "" (
    set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=1024M 
) 

會增加PermGen的內存?我需要做的原因是因爲我不斷收到:Caused by: java.lang.OutOfMemoryError: PermGen space

編輯:

全部部署在karaf束是春天有關,他們有駱駝的路線,CXF端點,OpenJPA的持久性配置都是通過Spring進行管理。但我認爲沒有問題,因爲我知道OutOfMemory PermGen空間意味着沒有足夠的內存用於所有已部署的應用程序。如果有人知道哪裏可能是問題,這將是非常有益的。

回答

0

這些變量可能會從您的環境中讀取,因此只需定義它們即可。

export JAVA_PERM_MEM... 

關於PermGen異常,你可能會使用spring DM嗎?或者一些彈簧相關的osgi包?這有幾個問題。

+0

我編輯了我的問題,有春天相關的捆綁包部署到卡拉夫。 – 2012-08-14 11:15:24

+0

@PauliusMatulionis你可以嘗試增加這個記憶,但通常是不夠的。你可以告訴Java也GC這個內存。在SO – Eugene 2012-08-14 11:22:03

+0

謝謝你這裏有這樣的答案。我會盡力做到這一點。 – 2012-08-14 11:23:39