Hi Andrus;

It does seem rather strange.

I'm starting the application with maven (from Eclipse) and jetty-maven-plugin. No hot redeploy. No actual container per se. The class-loader should be the same so shouldn't be re-creating "isolated singletons or statics". I'm using a Filter to serialize-->deserialize the attributes on the HttpSession in order to test how some infrastructure handles serialization-->deserialization of the session attributes.

If I explicitly don't serialize-->deserialize the ObjectContext then there is no problem; so serializing ObjectContext as the root object does seem to cause the problem.

The incremental increase in the memory consumption seems to be roughly exponential in relation to the number of deserializations of the ObjectContext. That may be a clue; I may download Apache commons and see if I can see anything obvious there in the LRU map. Like you say though; it probably shouldn't be serializing this stuff anyway though.

It looks like "SQLTemplateResourceManager" is created via reflection so it may be hard to profile for memory usage.

I'll log a Jira when I get a moment.

Regards;

On 17/02/12 11:29 PM, Andrus Adamchik wrote:
Interesting... I didn't realize we have a static Velocity runtime in the app. 
This must to be changed to instance variable with correct scope, (and if needed 
shut down properly when ServerRuntime is shutdown). Could you please log a Jira 
- we need to investigate.

BTW, are you doing hot redeploy of your app? This in combination with static 
Velocity runtime might produce the observed behavior.

Andrus


On Feb 17, 2012, at 1:19 PM, Andrew Lindesay wrote:

Hi;

It looks like it is holding onto lots (hundreds of megs) of;

        org.apache.commons.collections.map.AbstractHashedMap$HashEntry[]
        >  org.apache.commons.collecitons.map.LRUMap
        >>  org.apache.cayenne.access.jdbc.SQLTemplateResourceManager
        >>>  ...velocity

Not quite understanding yet... as it seems like this wouldn't be something 
stored on an object context.

Regards;

On 16/02/12 7:50 PM, Andrus Adamchik wrote:
  an OutOfMemory -- even with substantial quantities of memory available.

This is a hint actually.. Maybe the problem is not heap size, but perm gen size 
instead? Try increasing that:

-XX:MaxPermSize=256m

On Feb 16, 2012, at 9:44 AM, Andrus Adamchik wrote:

This is strange indeed. Haven't seen such behavior. May need some profiling on 
your end I guess.

Andrus


On Feb 14, 2012, at 1:30 PM, Andrew Lindesay wrote:
Hello;

I have a little question on the ObjectContext in 3.0.2.

I'm keeping an ObjectContext in an HttpSession instance's attributes for re-use 
between request-response cycles.  When I serialize this ObjectContext instance, it 
(+ other objects) stores out to<   8k in my test case, but then deserializing 
the ObjectContext causes an OutOfMemory -- even with substantial quantities of 
memory available.

Has anybody else seen this or is there anything to be weary of before I look 
into it further?

Regards

--
Andrew Lindesay







--
Andrew Lindesay
www.silvereye.co.nz





--
Andrew Lindesay
www.silvereye.co.nz

Reply via email to