[mapguide-internals] Server Revision 3767 fails over after reaching
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