Well, based on previous advice we are inspection both the profile and
heap dump. Both point to a problem with one of our business objects
(referenced previous: ShallowSongBO) so I implemented a simple instance
counter on that object. |
There is a static variable. It is incremented in the constructor and decremented by finalize. Both are synchronized on the class "ShallowSongBO" so the counter should be thread safe. I simply print the count each time an instance is created of finalized.
On my box and on production to start with the instance count is well behaved. It goes up for a while and then at some point it will fall off. On production, eventually it begins to ONLY increase and never go down. I suspect that other objects have the same problem, it is just that we load many many songs compared to other classes. In fact the heap dump shows that the object we load the second most is also hanging around.
It looks to me like garbage collection just stops at some point.
As an experiment I've implemented a url that allows me to execute System.gc(); This is probably a placebo and should be needed but I'll know today or tonight if requesting garbage collection has any effect. I have to wait for the problem to manifest itself again some time later today or tonight to know if this will have any effect.
Bill Au wrote:
I would take some threads dump during heavy load to see what is going on.
_______________________________________________ resin-interest mailing list firstname.lastname@example.org http://maillist.caucho.com/mailman/listinfo/resin-interest