[mapguide-users] finally
Haris Kurtagic
haris at sl-king.com
Tue May 19 07:58:30 EDT 2009
Finally we found what was causing MapGuide server to crash while reading
data from MapGuide.
It took us lot of energy and time.
Problem will appear in multiuser environment with concurent access when
you are using provider which is per command threaded or sharing
(caching) FDO schema accross multiple connections.
Issue is in function:
MgServerGetFeatures::SerializeToXml(FdoClassDefinition* classDef) which
will in order to serialize class to xml remove that class from schema,
put it to temporary schema serialize and return class to original
schema. While doing this if another thread goes to execute, problem
starts.
Workaround is to set provider to per connection threaded or not cache
schema at all, and both comes with perfomance penalties.
I think that few things are important in this case beside the obvious
issue. One of them is missing constant pointers in FDO API. Schema
returned from provider shouldn't be allowed to be changed by fdo
clients. That is something were problems appeared already.
Also, I think that serialization using XML is not right way to go. XML
we could use to serialize data to end-user not for internal MG
processes.
Haris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20090519/284f6b8e/attachment.html
More information about the mapguide-users
mailing list