That is not the case! 

the jvm uses the PermGenSpace to store the classes meta-information
(eg. needed for reflection). everytime Tapestry reloads and enhances a
page a new class is generated and its meta-information gets stored in the 
PermGenSpace. Even if the same page class has been enhanced before
because now its another class. Because the PermGenSpace does not 
get gc it will eventually, after many reloads, get a OutOfMemoryError. 

This is a problem that occured to me often when developing T4 applications
with the tapestry.cache parameter set to false because then the page 
classes
would get enhanced (and written to the PermGenSpace) on every request.

I never experienced such a exception with T5 because it uses an own 
classloader that is discarded (and the associated data from the 
PermGenSpace)
before the pages are reloaded and enhanced. 

Also it is not a problem exclusive to Tapestry. If you use Hibernate, 
Spring, AOP
and other frameworks that make heavy use of runtime class manipulation... 
can 
produce such exceptions. (just google it)

the first thing you can do is to increase the permGenSpace of your jvm:
eg.: --XX:MaxPermSize=256m 

btw. even i you used persist annotations extensively Tapestry would have
a relativley small memory session footprint compared to other Web 
frameworks
as Tapestry itself does not need the session - at least keeps the usage to 
a 
bare minimum. this is a consequence of the "static page/component tree 
dynamic
behaviour" concept of Tapestry. other Web frameworks need the session to 
persist the component tree between requests because they can be changed 
dynamically and need to be restored on the next request.

g,
kris





"Marcelo Lotif" <[EMAIL PROTECTED]> 
13.06.2008 14:03
Bitte antworten an
"Tapestry users" <users@tapestry.apache.org>


An
"Tapestry users" <users@tapestry.apache.org>
Kopie

Thema
Re: Tomcat 5.5.26 + JDK 6_05 - java.lang.OutOfMemoryError: PermGen Space







Hi guys,
I had some problems like this too, and i want to know from you,
tapestry experts:
Do you think that the wrong usage of @Persist annotation can cause
problems like this? If we have more things to "persist", we will have
a bigger client session, combined with many clients all the time in a
tiny "server" like that: BUM! what do you think?

Thanks in advance!

2008/6/13 9902468 <[EMAIL PROTECTED]>:
>
> Hi,
>
> We had same symptoms with 5.5.25 using T4 during _development_. Our case 
was
> identified that the live class loading resulted in that error once the 
app
> got big enough. The live reloading is somewhat broken anyway in Tomcat, 
so
> we moved to Glassfish in our next project as the development server. The
> experience has been better with Glassfish, it takes longer to initially
> start, but feels faster once up & live reloading works better -> not so 
much
> need to restart all the time.
>
> Haven't had single issue in production (In production we use JBoss.).
>
> - 99
>
>
> Estevam Henrique Portela Mota e Silva wrote:
>>
>> Good Afternoon,
>>
>> Who knows the problem of tomcat on the server.
>>
>> Tomcat's war have 17 in my company
>> Memory (Initial memory pool: 512mb and Maximum memory pool: 1024mb)
>> Version:
>>      --> Tomcat 5.5.26
>>      --> JDK 6_05
>> Server:
>>      --> Gigabyte, Core 2 Duo and Memory 2 gb (motherboard has maximum 
of
>> memory is 2 gb)
>> Added:
>>      --> Isapi Redirector 1.2.14 on another server (IIS 5.0 and Win 
2000)
>> Note:
>>      --> All programs are installed executable (EXE)
>>
>> When I clicked generate PDF (Jasper) in my project, was wrong ... See
>> below
>> pra
>>
>> [ERROR] RequestExceptionHandler Processing of request failed with 
uncaught
>> exception: PermGen space
>> java.lang.OutOfMemoryError: PermGen Space
>>
>> How resolved?
>>
>> --
>> Regards,
>>
>> Estevam Henrique Portela Mota e Silva
>> Handicapped Auditory = deaf
>> [EMAIL PROTECTED] / [EMAIL PROTECTED]
>> Programmer Java and Tapestry
>> Brazil - Fortaleza / CE
>>
>>
>
> --
> View this message in context: 
http://www.nabble.com/Tomcat-5.5.26-%2B-JDK-6_05---java.lang.OutOfMemoryError%3A-PermGen-Space-tp17804956p17816332.html

> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Atenciosamente,
Marcelo Lotif

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to