ArcGIS map services with versioned data

11-10-2016 02:25 AM
New Contributor II

Prerequisites :

  1. Application server
    1. ArcGIS for Server 10.3
    2. ~13 MapServices with ~20 layers each. Dynamic layers/symbology enabled on each services
    3. ArcGIS JS API based web application consuming these services as ArcGISDynamicMapServiceLayer
    4. User is able to view map layers either from DEFAULT version or named GDB version (“gdbVersion” parameter used in JS API)
  2. DB Server
    1. MS SQL Server 2014 SP1 and also 2012
    2. Enterprise geodatabase 10.3
    3. ~50 tables + ~50 featureClasses. Geometry storage type is Microsoft Geometry
    4. Part of featureClasses are arranged in datasets
    5. Part of tables and featureClasses are registered as versioned


Serious performance degredation when accessing MapServer/ExportMap and using “gdbVersion”-parameter with named version. Measured from browser side these REST calls can be something like 500ms vs 5000ms. Our web application is consuming 10+ services with named gdb version and this effect becomes then an issue. It is also keeping ArcGIS Server busy for several seconds for single user’s map draw. This leads again to server load issue when 2+ “very active” users are zooming the map.

We also did rough measurement of net traffic outbound DB server in both cases. Using map services with gdbVersion –parameter net traffic increases to level about 5 to 10 times compared to not using named version.

For comparison, this same database is accessed and tested with ArcMap as client. In case of ArcMap, loading times of data are constant with DEFAULT –version vs. named version. Also net traffic keeps in same level.

Conclusion so far is that ArcGIS Server is accessing named GDB version with some different approach as ArcMap. We have done some query tracing in MS SQL –level. We can see that using named version in this case adds quite much additional queries against GDB internal tables. Until now it is unclear what is causing the additional net traffic.

Is this behavior documented somewhere (ArcGIS Server / Geodatabase)?
Is there some way to speed up fetching versioned data via ArcGIS Server?
Can someone provide us some documentation how to scale environment / map services to support load of ~100 users?

0 Kudos
2 Replies
New Contributor II

I continued this test by upgrading Server to newer version. Versions 10.3, 10.3.1, 10.4 and 10.4.1 are now tested. This behavior seems to be exactly same in all cases. Multiplier in REST -call execution time is about 10 with all tested versions. Also the increased amount of net traffic is visible same way.

0 Kudos
New Contributor II

Update to previous status: Tests were continued. Multiplier between exportMap from DEFAULT vs. named version depends quite much about database connection (see above notes about increasing traffic). Geodatabase internal queries were also traced. Queries against Geodatabase internal tables increases quite a lot when more layers are added to MapServer.

As a result a bug report is now submitted by Esri as : BUG-000101069 : Slow ExportMap response when the gdbversion parameter is used.