Re: RequestProcessor processPopulate heavily increases memory usage

2006-02-22 Thread willem . vermeer
Hi,
Thanks for your pointers.
It turns out that on *all* forms the enctype=multipart/form-data was set 
even though no file upload was taking place. This caused the commons 
multipart request handler to allocate huge amounts of memory (256K for 
each field on the form) for each form which never get released. I 'fixed' 
it by setting memFileSize to a low value (2K) 
Apparently the enctype was added to all forms to circumvent problems when 
chaining Struts actions.
Yes I know, I just started here one month ago and ugly skeletons keep 
falling out of the closet every day.
Thanks for your time,
Willem





Michael Jouravlev [EMAIL PROTECTED]
21/02/2006 20:08
Por favor, responda a Struts Users Mailing List
 
Para:   Struts Users Mailing List user@struts.apache.org
cc: 
Asunto: Re: RequestProcessor processPopulate heavily increases 
memory usage


Session-scoped form can affect memory footprint on the first load and
barely on update. He gets +30M on each load. I doubt that reasonably
designed session-scoped form can be at fault here. It would sit there,
but it would not grow that fast. There should be something else that
he allocates.

BTW, his log shows request-scoped form.

Willem, try to create an empty action/form pair and test it. I suppose
this is something that you create.

Michael.

On 2/21/06, Joe Germuska [EMAIL PROTECTED] wrote:
 Do you have a session scoped form with one or more FormFile
 properties?  Consider switching the scope to request, or
 alternatively, using the controller element to reduce the size of
 the in-memory file representation before the data is written to disk
 (see the memFileSize attribute described at
 
http://struts.apache.org/struts-action/userGuide/configuration.html#controller_config

 )

 Joe

 At 6:12 PM +0100 2/21/06, [EMAIL PROTECTED] wrote:
 Hi,
 
 Last week we migrated our Struts 1.0 application to 1.2.8. As far as we
 can tell, we correctly followed the migration steps inbetween.
 Since the migration we have noticed the following weird behaviour:
 upon submitting a form from a jsp to as struts form/action, the method
 processPopulate of RequestProcessor will increase memory usage on our
 windows box by some 30M for each call. Unfortunately, this extra memory 
is
 not freed, not even after waiting more than say one hour. After a few 
such
 requests, needless to say, this produces OutOfMemoryErrors.
 I pinpointed the memory usage to this method by setting
 log4j.logger.org.apache.struts=DEBUG in my log4j.properties. In the 
log,
 after form submission, the following info appears:
 
 DEBUG: RequestUtils.createActionForm.300 -  --
 [EMAIL PROTECTED] (21 feb 2006 17:59:31,156)
 DEBUG: RequestProcessor.processActionForm.327 -  Storing ActionForm 
bean
 instance in scope 'request' under attribute key 'incidentForm' (21 feb
 2006 17:59:31,156)
 DEBUG: RequestProcessor.processPopulate.793 -  Populating bean 
properties
 from this request (21 feb 2006 17:59:35,616)
 DEBUG: CommonsMultipartRequestHandler.getRepositoryPath.388 - File 
upload
 temp dir:
 C:\dev\workspace-reconstruct-hibernate\Attend\work\org\apache\jsp (21 
feb
 2006 17:59:35,772)
 
 What could be the cause of this excessive memory increase?
 
 Could it be that the entire Struts config is accidentally reloaded 
because
 of a problem in our configuration?
 
 Thanks,
 Willem

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




RequestProcessor processPopulate heavily increases memory usage

2006-02-21 Thread willem . vermeer
Hi,

Last week we migrated our Struts 1.0 application to 1.2.8. As far as we 
can tell, we correctly followed the migration steps inbetween.
Since the migration we have noticed the following weird behaviour:
upon submitting a form from a jsp to as struts form/action, the method 
processPopulate of RequestProcessor will increase memory usage on our 
windows box by some 30M for each call. Unfortunately, this extra memory is 
not freed, not even after waiting more than say one hour. After a few such 
requests, needless to say, this produces OutOfMemoryErrors.
I pinpointed the memory usage to this method by setting 
log4j.logger.org.apache.struts=DEBUG in my log4j.properties. In the log, 
after form submission, the following info appears:

DEBUG: RequestUtils.createActionForm.300 -  -- 
[EMAIL PROTECTED] (21 feb 2006 17:59:31,156) 
DEBUG: RequestProcessor.processActionForm.327 -  Storing ActionForm bean 
instance in scope 'request' under attribute key 'incidentForm' (21 feb 
2006 17:59:31,156) 
DEBUG: RequestProcessor.processPopulate.793 -  Populating bean properties 
from this request (21 feb 2006 17:59:35,616) 
DEBUG: CommonsMultipartRequestHandler.getRepositoryPath.388 - File upload 
temp dir: 
C:\dev\workspace-reconstruct-hibernate\Attend\work\org\apache\jsp (21 feb 
2006 17:59:35,772) 

What could be the cause of this excessive memory increase?

Could it be that the entire Struts config is accidentally reloaded because 
of a problem in our configuration?

Thanks,
Willem