Advice on the use of 300 DWF layers

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Advice on the use of 300 DWF layers

lucvanlinden
Hi All


We are investigating the use of DWF layers from DWF files in MapGuide OS 2.6.

These 300 DWF files are generated from 300 DWG files using AutoCAD MAP 3D via export to DWF with assigned CS from Modelspace while setting the DPI appropriately.
The content of these files are all autocad dimension objects for a long network.
1 single DWG file corresponds actually to a “grid” of 4500 meter by 5000 meter.
Size of the DWF files ranges from 190 kb  to 4 kb.

We tested with a couple of DWF's and they worked really well, also thanks to the use of Maestro!

The loading of the DWF works quit well with the Load Procedure from Maestro.
300 DWF source files, each containing  a single (autocad) layer of dimension objects, resulting in 300 data DWF drawing Sources, from which 300 (DWF) Layer definitions are generated.
BTW, all names are unique.
We added a folder to our map definition which contains those 300 layers.

Although to be able to save the map definition in Maestro, we already had to increase the
SessionRepositoriesLimit           = 200
to 1000
to avoid having the Error : DBEnv::open: DB_RUNRECOVERY
as mentioned here:

http://forums.autodesk.com/t5/infrastructure-map-server/error-dbenv-open-db-runrecovery/td-p/3126680

Now, once the map is consumed through the flex web layout/Fusion the system is not capable of returning a map at all given again the error in the browser:

An exception occurred in DB component. DbEnv::txn_begin: DB_RUNRECOVERY: Fatal error, run database recovery.

We have to admit, in the initial test with only 5 DWFs we managed to set the maxscale to 1000 through the XML editor.
I believe here is a small bug in the Maestro interface where the Maxscale is never inserted into the Layer definition on save, while it does when using the XML editor.

This brings some questions to the surface on the use or usability of (a large number of) DWFs in such a context:

1. What would be the quickest way  to include the Maxscale values in the XML Layer definitions for those 300 DWF layers (without doing this manually)?

2. Would it help the server to avoid "rendering all DWF files on the initial mapload (given the default maxscale value of infinite)?
With other words, is Mapguide somehow spatially indexing the bounds of the DWF files and will it only access the appropriate content that it needs (given a reasonable scale factor)?
A bit like or comparable to principles of the RasterWorkshop (Loading, creating the ric file ) of Mapguide 6.5?

3. In addition, the CS of the DWF is different from the Pseudo Mercator used by the Fusion web Layout.
For the initial test we did not had any issue with performance (also I guess given the maxscale) while the content was transformed consistently on the fly.
Would it be necessary to have the DWF files pre transformed in the Pseudo Mercator? Would that be necessary even if MapGuide would have such a RIC principle in place?

3. Is there any other advice in using a large number of such files/layers in MapGuide?

4. Are there any other settings we have to (re)set in the ini files?

5. It seems that restarting the service MAPGUIDE OS takes care of the DB_RunRecovery stuff or are there any specific actions and or tricks we have to apply in order to “reset” the server?

Thanks in advance for any input (even if it was on one of the questions only)

Luc
Reply | Threaded
Open this post in threaded view
|

Re: Advice on the use of 300 DWF layers

lucvanlinden
This post was updated on .
Well, after having used the python script console in Maestro, we were able to update the Maxscale for those 300 dwf layers in bulk as opposed to a manual way.

While searching and testing we came with some questions or at least some hints to our open question.

I thought I would be interesting to at least some of these back to the list as an answer to our own requests ;-):

1. What would be the quickest way  to include the Maxscale values in the XML Layer definitions for those 300 DWF layers (without doing this manually)?


Python Script: http://osgeo-org.1560.x6.nabble.com/Maestro-Python-api-example-script-setScaleRange-for-a-drawingLayer-tt5183707.html to be used in teh python console of Maestro.


2. Would it help the server to avoid "rendering all DWF files on the initial mapload (given the default maxscale value of infinite)?

Setting the Maxscale is absolutely a must, as always, to render the information only on an appropriate
zoom level. As we found out from the raw XML, the extents of the DWF files content of the individual DWF Drawing datasource definitions are stored as

<Extent>
      <MinX>105017.49574</MinX>
      <MinY>129315.39414</MinY>
      <MaxX>110011.29465</MaxX>
      <MaxY>130510.21422</MaxY>
</Extent>

So we believe there must be an indexing or a smart lookup behind the scene on these by MapGuide.

3. Would it be necessary to have the DWF files pre transformed in the Pseudo Mercator? 

With the maxscale in place the performance is now quyt similar to the MapGuide 6.5 DWG datasource. 2 to 3 secs depending on the density of DWF files. This is ok for now. it might be that a pre-transformed datasource might be quicker, which is something we might test later on.

4. Are there any other settings we have to (re)set in the ini files?

Still open

5. It seems that restarting the service MAPGUIDE OS takes care of the DB_RunRecovery stuff or are there any specific actions and or tricks we have to apply in order to “reset” the server?

Still open on others input. We have noticed that restarting the service solves (temporary if you do not change the config, in this case change the zoom scale) the error message without having to do anything on a recovery issue.


Luc