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





Odpovedet emailem