[mapguide-internals] Server Revision 3767 fails over after reaching memory limits

UV uvwild at gmail.com
Fri Mar 27 08:04:02 EDT 2009


I updated to revision r3767 today to make a clean referenz build to 
compare memory requirements during my test case with my patched build.

The server works fine until it hits a memory limit.
After that the clients get a 559 MgOutOfMemoryException and no further 
requests are processed.

This is a sign that the exception handler chain triggered by the memory 
overflow does not clean up the failed request correctly.
I believe this is quite a normal failure for a system of this complexity 
and documentation level.

However, I suggest to the developer/designer that has enough knowledge 
of the internal server design to fix this
also to take this as the opportunity to create a little bit of 
documentation about object lifecycles and
how objects are shared in the server between which threads.

The understanding of those interactions is crucial to the correct use of 
the server code base.
I encountered a few scenarios already where I was wondering in which 
threadcontext my code is running and
if the used objects are shared with other threads. I have seen a few 
mutexes and semaphore calls...
but not enough to get a full picture.... the current state of the code 
base could be a sign that I am not alone.

I am further willing to assist in capturing those internals as UML 
 I believe sequence and probably interaction diagrams are the best way 
to describe such server internals.
I think this will be an extremely useful piece of documentation helping 
future developers to avoid such errors in the first place.

More information about the mapguide-internals mailing list