[mapguide-internals] MapGuide - MgServerDescribeSchema::DescribeSchema

Haris Kurtagic haris at sl-king.com
Fri Jun 15 09:56:32 EDT 2007


After many, many hours of breaking our heads we found what is causing
problems with our multi-user concurrent feature edits. 

I would appreciate if someone would discuss about this what we found.

 

The problem was when executing MgServerDescribeSchema::DescribeSchema.

While transfering classes from FDO schema collection to MapGuide it is
calling MgServerGetFeatures::GetMgClassDefinition in a for-loop for
every class.

GetMgClassDefinition will seralize class to XML. But serialazing is done
in a way that new temporary schema is created and than class is removed
from original schema , put to temporary, temporary schema serialized and
class returned to original class collection.

And if in that proccess another thread is doing describe schema it is
error and exception and...

 

This is more obvious in a case of edits because after every edit (
insert/update/delete ) cache is cleared and DescribeSchema is called
again.

 

I believe that describe schema should work differently, when doing "get
class" it shouldn't change original schema list ( temporary removes
class from list).

 

I would like if someone would talk to me about this findings.

 

Thank you,

Haris

 



More information about the mapguide-internals mailing list