Dekuji za odpoved, co se s tim ale da udelat?
V aplikaci mam nejakych vlastnich velmi jednoduchych 20 trid, pokud si
nejake nejak navic generuje (?) pri opakovanych volanich tak by to
vysvetlovalo proc se nafukuje ten PermSpace.
Zvetsit PermSpace mohu, ja se ale obavam ze to pouze protahne dobu do
katastrofy :-(
Jeste podotknu ze pokud tam nebezi ten http refresh tak to bezi nekolik
dni v pohode. Problem asi neni v te obnove jako takove ale v opakovanem
rychle nasledovanem volani.
Urcite to neni v deployi. Pokud tam nedam tag refresh a zbytek zustane
stejny tak to v pohode dlouhodobe bezi (ale musi se cvakat rucne).
Pravdepodobne by problem i tam nastal, pokud by nekdo cvakal v
petisekundovych intervalech cca ty tri hodiny.
L.
Richard Holly napsal(a):
Perm space pouziva class loader,
nevidel som vasu implemetnaciu, ale specialne pri EJB sa robi urcita
"instrumentacia" ktora moze zatazovat class loader novymi triedami do
tej miery se to cele lahne, tak ako ste popisal.
URBAN Leos wrote:
Ahoj,
mam EAR aplikaci (JBOSS 4.0.4.GA + EJB3RC8), jejiz jednou soucasti je
webova aplikace.
V ni je JSP stranka, ktera ve sve session drzi JavaBean a vola jeho
metody, ktere se pripojuji k aplikacnimu serveru a volaji stateless
session bean metody. To vse pak pomoci HTML Refresh cykluje v 5s
intervalech.
Problem je, ze po nejake dobe vsechno lehne s hlaskou:
java.lang.RuntimeException: by java.lang.OutOfMemoryError: PermGen space
Doba za jak dlouho to lehne je umerna velikosti PermSpace pameti
(parametry JVM -XX:PermSize a -XX:MaxPermSize ) - pri dvakrat vetsi
pameti dvakrat delsi doba.
Kdyby to padalo na velikosti HEAPu tak bych rekl ze to nekde neco
neuvolnuje a pretece to ale pamet PermSize se (podle google) pouziva
jen pro ukladani informaci o tridach (nikoliv objektu) a zpusobuje
problemy pri opakovanem deployi aplikaci. To ja nedelam, tam bezi jen
ta jedina aplikace a po zmene cely server restartuji.
Dela to jboss jak pod Windows XP tak pod Linuxem.
Nesetkal jste se nekdo s tim?
Diky moc,
Leos