Skip To Content

Map service log codes

This topic lists codes for log messages that you'll see when working with map services. Each list of codes is followed by one or more examples showing how the logs would look with some of the messages.

This topic has two main parts:

  • MapServer messages—A set of errors, warnings, and detailed messages written by the map service.
  • Carto messages—A set of detailed messages about the map drawing. Carto messages are available when the Verbose logging level is enabled.

MapServer messages

This following table lists log messages generated by map services and explains some of their common causes. Detailed log messages range from code 10000 through 10799, while errors and warnings range from 10800 through 10999.

Code numberTextDescription

10000

GetDocumentInfo has started.

Provides a set of map service properties that can be used to describe the general content of the service.

10001

GetDocumentInfo has completed.

Use this code to determine how long it takes this method to process.

10002

GetMapCount has started.

Returns the number of maps (data frames) in a map service.

10003

GetMapCount has completed.

Use this code to determine how long it takes this method to process.

10004

GetMapName has started.

Returns the name of the map (data frame) as indicated by the index value provided.

10005

GetMapName has completed.

Use this code to determine how long it takes this method to process.

10006

GetDefaultMapName has started.

Name of the active map (data frame) in a map service.

10007

GetDefaultMapName has completed.

Use this code to determine how long it takes this method to process.

10008

GetServerInfo has started.

Returns information about the present state of a map (data frame).

10009

GetServerInfo has completed.

Use this code to determine how long it takes this method to process.

10010

Begin ExportMapImage.

Generates a dynamic map image from a data frame (map) in a map service.

10011

End ExportMapImage.

Use this message to determine how long it takes the server to dynamically draw a map image. Using the ArcGIS REST API, this message can be mined over a period of time and used to derive service performance statistics.

10012

ExportScaleBar has started.

Generates a scale bar image for a data frame (map) in a map service.

10013

ExportScaleBar has completed.

Use this code to determine how long it takes this method to process.

10014

Find has started.

Searches the attributes of one or more layers in a data frame, in a map service for a given search string.

10015

Find has completed.

Use this code to determine how long it takes this method to process.

10016

Identify has started.

Returns map features and their attribute values based on a spatial search.

10017

Identify has completed.

Use this code to determine how long it takes this method to process.

10018

QueryFeatureCount has started.

Returns the number of the features that meet the query filter selection criteria for the specified layer ID.

10019

QueryFeatureCount has completed.

Use this code to determine how long it takes this method to process.

10020

QueryFeatureIDs has started.

Returns a set of feature IDs that meet the query filter selection criteria for the specified layer ID.

10021

QueryFeatureIDs has completed.

Use this code to determine how long it takes this method to process.

10022

QueryFeatureData has started.

Returns a record set of features (geometry and attributes) that meet the query filter selection criteria for the specified layer ID.

10023

QueryFeatureData has completed.

Use this code to determine how long it takes this method to process.

10024

QueryFeatureCount2 has started.

Returns the count of the features that meet the query filter selection criteria for the specified layer description.

10025

QueryFeatureCount2 has completed.

Use this code to determine how long it takes this method to process.

10026

QueryFeatureIDs2 has started.

Returns the IDs of the features that meet the query filter selection criteria for the specified layer description.

10027

QueryFeatureIDs2 has completed.

Use this code to determine how long it takes this method to process.

10028

QueryFeatureData2 has started.

Returns a record set of features that meet the query filter selection criteria for the specified layer description.

10029

QueryFeatureData2 has completed.

Use this code to determine how long it takes this method to process.

10030

QueryHyperlinks has started.

Returns feature geometry and associated hyperlink URL for visible layers within a defined map extent.

10031

QueryHyperlinks has completed.

Use this code to determine how long it takes this method to process.

10032

ComputeScale has started.

Calculates the scale of the specified map (data frame) at the given map extent for an image with the given size.

10033

ComputeScale has completed.

Use this code to determine how long it takes this method to process.

10034

ComputeDistance has started.

Calculate the distance between two points in a map (data frame).

10035

ComputeDistance has completed.

Use this code to determine how long it takes this method to process.

10036

ToMapPoints has started.

Converts points from screen coordinates to map coordinates.

10037

ToMapPoints has completed.

Use this code to determine how long it takes this method to process.

10038

FromMapPoints has started.

Converts map coordinates to screen coordinates.

10039

FromMapPoints has completed.

Use this code to determine how long it takes this method to process.

10040

GetLegendInfo has started.

Returns legend information, such as layer name, group heading, classification labels, and symbol swatches, for layers in a map.

10041

GetLegendInfo has completed.

Use this code to determine how long it takes this method to process.

10042

GetSQLSyntaxInfo has started.

Returns SQL syntax information for the specified layer.

10043

GetSQLSyntaxInfo has completed.

Use this code to determine how long it takes this method to process.

10044

GetSupportedImageReturnTypes has started.

Returns the supported formats for retrieving images generated by a map service.

10045

GetSupportedImageReturnTypes has completed.

Use this code to determine how long it takes this method to process.

10046

IsFixedScaleMap has started.

Determines whether a map (data frame) has a cache. The cache may be a single fused map or a layer cache.

10047

IsFixedScaleMap has completed.

Use this code to determine how long it takes this method to process.

10048

HasSingleFusedMapCache has started.

Determines whether a map (data frame) has fused cache. Each map in a map service can only have one fused cache.

10049

HasSingleFusedMapCache has completed.

Use this code to determine how long it takes this method to process.

10050

GetTileCacheInfo has started.

Get cache configuration properties for a given map.

10051

GetTileCacheInfo has completed.

Use this code to determine how long it takes this method to process.

10052

GetTileImageInfo has started.

Get information about the image format of the cache tiles.

10053

GetTileImageInfo has completed.

Use this code to determine how long it takes this method to process.

10054

GetMapTile has started.

Returns the image tile from a fused map cache for a specific location.

10055

GetMapTile has completed.

Use this code to determine how long it takes this method to process.

10056

HasLayerCache has started.

Determines whether a given layer in a map (data frame) has a layer cache.

10057

HasLayerCache has completed.

Use this code to determine how long it takes this method to process.

10058

GetLayerTile has started.

Returns the image tile from a layer cache for a specific location.

10059

GetLayerTile has completed.

Use this code to determine how long it takes this method to process.

10060

GetVirtualCacheDirectory has started.

Gets the virtual directory containing the cache tiles for a given layer within a map (data frame).

10061

GetVirtualCacheDirectory has completed.

Use this code to determine how long it takes this method to process.

10062

GetCacheName has started.

Gets the cache name for a given layer within a map (data frame).

10063

GetCacheName has completed.

Use this code to determine how long it takes this method to process.

10064

GetCacheDescriptionInfo has started.

Gets the cache description information for a given map. This includes cache control info, tile cache info, tile image info, and cache type info.

10065

GetCacheDescriptionInfo has completed.

Use this code to determine how long it takes this method to process.

10066

GetCacheControlInfo has started.

Gets the cache control information for a given map. This is primarily used to determine whether client caching is allowed.

10067

GetCacheControlInfo has completed.

Use this code to determine how long it takes this method to process.

10068

GetServiceConfigurationInfo has started.

Returns a set of name-value pairs that contain information on map service configuration restrictions.

10069

GetServiceConfigurationInfo has completed.

Use this code to determine how long it takes this method to process.

10070

ExportLayout has started.

Generates an image of the layout, based on the given page description object, and writes the image to a specified file on disk.

10071

ExportLayout has completed.

Use this code to determine how long it takes this method to process.

10072

ExportLegend has started.

Exports a legend to an image file. This is not available through an internet connection to a map service.

10073

ExportLegend has completed.

Use this code to determine how long it takes this method to process.

10074

ExportNorthArrow has started.

Exports a north arrow to an image file. This is not available through an internet connection to a map service.

10075

ExportNorthArrow has completed.

Use this code to determine how long it takes this method to process.

10076

FromPagePoints has started.

Converts a page coordinate to a screen location. This is not available through an internet connection to a map service.

10077

FromPagePoints has completed.

Use this code to determine how long it takes this method to process.

10078

ToPagePoints has started.

Converts a screen location to a page coordinate. This is not available through an internet connection to a map service.

10079

ToPagePoints has completed.

Use this code to determine how long it takes this method to process.

10080

ApplyMapDescription has started.

Applies the current state of the map description to the map server object. This is not available through an internet connection to a map service.

10081

ApplyMapDescription has completed.

Use this code to determine how long it takes this method to process.

10082

RefreshServerObjects has started.

Updates the server info based on the current state of the underlying fine-grained objects. This is not available through an internet connection to a map service.

10083

RefreshServerObjects has completed.

Use this code to determine how long it takes this method to process.

10084

Find for layer <layer name> has started.

Searches the attributes for a specific layer in a data frame, in a map service for a given search string.

10085

Find for layer <layer name> has completed.

Use this code to determine how long it takes this method to process.

10086

Identify for layer <layer name> has started.

Returns map features and their attribute values based on a spatial search for a specific layer.

10087

Identify for layer <layer name> has completed.

Use this code to determine how long it takes this method to process.

10088

QueryHyperlinks for layer <layer name> has started.

Returns feature geometry and an associated hyperlink URL for a specific layer within a defined map extent.

10089

QueryHyperlinks for layer <layer name> has completed.

Use this code to determine how long it takes this method to process.

10090

GetLegendInfo for layer <layer name> has started.

Returns legend information, such as layer name, group heading, classification labels, and symbol swatches, for a specific layer in a map.

10091

GetLegendInfo for layer <layer name> has completed.

Use this code to determine how long it takes this method to process.

10092

MapReaderOpen has started.

Opens an MXD or PMF file stored at the specified path.

10093

MapReaderOpen has completed.

Use this code to determine how long it takes this method to process.

10094

Preparation for method: <method name> has started.

Use this code to determine how long it takes this method to process.

10095

Preparation for method: <method name> has completed.

Use this code to determine how long it takes this method to process.

10096

QueryOperation_Start

This message is used for QueryFeatureData and QueryFeatureData2.

10097

QueryOperation_End

Use this code to determine how long it takes this method to process.

10098

ImageGeneration_Started

This creates the image file from the map service.

10099

ImageGeneration_End

Use this code to determine how long it takes this method to process.

10138

Extent:<XMin>,<YMin>,<XMax>,<YMax>;Size:<size 1>,<size 2>;Scale:<scale value>

In an ExportMapImage request, this code returns the extent (in map service units), size (in pixels), and scale (representative fraction) of the requested map image.

103023

Symbol Drawing

The map symbol is drawn as part of the method Map.Draw.

103024

Data Access

Symbolizing

Execute Query

The data representing the symbol is accessed, symbolization is initialized, and a query is run to obtain the feature symbology.

10800

MapServerFailed

A number of errors may occur during the MapServer:Connect method. Details of the specific error should be written within the text of the message.

10801

The layer <layer name> in Map: <map name> is invalid.

This would occur when there is a layer with a broken link in the map being served. The map should be checked for layers having broken links to their data. These should be repaired and the map service refreshed after the repair.

10802

InvalidLicense

10803

Unsupported request name

10804

The requested capability is not supported.

These are the capabilities set by the server administrator.

10805

Invalid or Invisible field in SubField of the QueryFilter

This message results when the QueryFilter in a QueryFeatureData or QueryFeatureData2 contains an invalid field. An invalid field can be either a field that is marked as not visible in the original map document being served or by specifying a field in the query that does not exist in the map service.

10806

Service is Disconnected From Data

This warning would occur when attempting to perform one of the following methods on a map service layer that is not connected to its data source: Find, Identify, QueryFeatureCount, QueryFeatureCount2, QueryFeatureIds, QueryFeatureIds2, QueryFeatureData, QueryFeatureData2, QueryHyperlinks, GetLegendInfo, and GetSQLSyntaxinfo.

10807

The document contains secure (password-protected) layers.

Maps containing secure layers cannot be served. To successfully serve the map, layers requiring a password must be removed from the map.

10808

File <file name> is invalid. File <file name> does not exist. Access to file <file name> is denied.

To successfully serve a map document, the map document must be valid and accessible to the ArcGIS Server account. Something may have corrupted the file, and the map document may need to be re-created. The permissions to the map document and the directory it resides in should also be checked.

10809

PMF File <file name> is only readable by the ArcReader application.

PMFs (Published Map File) can be configured such that only ArcReader can open the document. PMFs configured in this way cannot be served. To serve such a map, a new PMF must be authored such that applications other than ArcReader can open the PMF.

10810

This PMF cannot be served because the following functionality in it has been disabled: <name of functionality>

PMFs (Published Map File) can be configured such that the PMF restricts specified functionality. This functionality can include export, find, identify, change views, access hyperlinks, change layer visibility, measure, query, query value, and view the TOC. Whenever functionality has been disabled when publishing a PMF, the PMF cannot be served. To serve such a map, a new PMF must be authored such that no functionality is disabled.

10811

PMF File <file name> is password protected and cannot be used for a server.

PMFs (Published Map File) that are password protected cannot be served. To serve the map, a new PMF must be authored without password protection.

10812

PMF File <file name> has timed out.

PMFs (Published Map File) can be authored with a timeout option. Once the date of the timeout has been exceeded, the PMF cannot be opened, and a map service based on such a PMF can no longer be served.

10813

Unable to read the specified PMF document.

To successfully serve a PMF (Published Map File), the PMF must be valid and accessible to the ArcGIS Server account. The PMF may need to be re-created. The permissions to the PMF file and the directory it resides in should also be checked.

10814

Cannot open PMF file <file name>. Probable cause: The PMF file is inaccessible to Server.

To successfully serve a PMF (Published Map File), the PMF must be valid and accessible to the ArcGIS Server account. The PMF may need to be re-created. The permissions to the PMF file and the directory it resides in should also be checked.

10815

PMF File <file name> contains a Globe and cannot be opened by the MapServer.

PMFs (Published Map File) can contain globes. Such PMFs cannot be used to author a map service. To create a map service, the globe must be removed from the map and the PMF republished.

10816

PMF Document <file name> cannot be opened.

To successfully serve a PMF (Published Map File), the PMF must be valid and accessible to the ArcGIS Server account. The PMF may need to be re-created. The permissions to the PMF file and the directory it resides in should also be checked.

10817

PMFInvalidFileType

To successfully serve a PMF (Published Map File), the PMF must be valid and accessible to the ArcGIS Server account. The PMF may need to be re-created. The permissions to the PMF file and the directory it resides in should also be checked.

10818

PMFUnknownError

10819

MissingParameter

A request made to the map service is missing a required parameter.

10820

OutputDirectoryNotFound

The Output directory is where the server creates temporary files for the map service. This directory is specified by the server administrator when publishing a map service and is part of the map service configuration. This directory must exist and be accessible to the ArcGIS Server account. Check the existence and the accessibility of this directory.

10821

OutputDirectoryAccessDenied

The Output directory is where the server creates temporary files for the map service. This directory is specified by the server administrator when publishing a map service and is part of the map service configuration. This directory must exist and be accessible to the ArcGIS Server account. Check the existence and the accessibility of this directory.

10822

PropertyFilePathUndefined

This error occurs when MapServer cannot find the property for FilePath in the property set.

10823

IsCacheMissing

IsCached is a map service configuration indicating whether the map service has a cache. Check the configuration file to make sure this setting is present and is set appropriately.

10824

CacheOnDemandMissing

CacheOnDemandMissing is a map service configuration indicating whether the map service provides on-demand caching. Check the configuration file to make sure this setting is present and is set appropriately.

10825

IgnoreCacheMissing

IgnoreCacheMissing is a map service configuration indicating whether the map service is to ignore an existing cache. Check the configuration file to make sure this setting is present and is set appropriately.

10826

ClientCachingAllowedMissing

ClientCachingAllowedMissing is a map service configuration. Check the configuration file to make sure this setting is present and is set appropriately.

10827

MapServer::OnStart() failed: can't create temp directory name.

MapServer creates a directory for each map service underneath the arcgisoutput directory. These directories are used for WMS files if the WMS capability is enabled for the service. This error may occur if the ArcGIS Server account cannot create the directory. Make sure that the ArcGIS Server account has proper permission to the arcgisoutput directory.

10828

MapServer::OnStop() failed: can't create temp directory name.

MapServer creates a directory for each map service underneath the arcgisoutput directory. These directories are used for WMS files if the WMS capability is enabled for the service. This error may occur if the ArcGIS Server account cannot create the directory. Make sure that the ArcGIS Server account has proper permission to the arcgisoutput directory.

10829

Invalid service configuration. A service disconnected from data cannot ignore cache.

A map service disconnected from its data needs to use a cache. In cases in which the map service is disconnected from its data, the property IgnoreCache must be false.

10830

Invalid service configuration. A service cannot be in Cache On Demand mode and disconnected from the data.

A map service using Cache On Demand cannot be disconnected from its data.

10831

Invalid service configuration. A service cannot be in Cache On Demand mode and ignore cache.

A map service using Cache On Demand needs to use a cache. When a map service is using Cache On Demand, the property IgnoreCache must be false.

10832

MapServer construction failed. Unable to obtain pointer to IServerEnvironment.

10833

Does not have Server Object administration privileges.

10834

Unable to connect to the cache

10835

The configuration could not be started because the WMS capability requires an assigned output directory. Please assign an output directory to this service.

10836

MapNotFound

Many requests require a map name as a parameter. This error occurs when the value of the map name in a MapServer request does not match a valid available map service name.

10837

General Geodatabase error

There are a number of things that can cause an error within the geodatabase. This Map Server error wraps any geodatabase error in a single Map Server error code.

10838

No Layer found with ID: <ID number>

LayerID supplied was incorrect.

10849

An invalid where clause or definition expression has been requested: "<where clause or definition expression>"

This message is logged if database-specific functions and syntax are used in a query. If this message is continually logged, it may indicate a potential security threat or SQL injection attack.

To learn more, see About standardized queries.

Example

This example explains error messages you may see if you sent a query to a map service using a nonexistent field name.

MethodMessageElapsedCode

MapServer.QueryFeatureData

QueryFeatureData has started.

10022

MapServer.QueryFeatureData

Preparation for method: QueryFeatureData has started.

10094

MapServer.QueryFeatureData

Preparation for method: QueryFeatureData has completed.

0.00111

10095

MapServer.QueryFeatureData

Query Operation for method: QueryFeatureData has started.

10096

GeoDatabase Error: A column was specified that does not exist.

10837

MapServer.QueryFeatureData

QueryFeatureData has completed.

0.01171

10023

MapServer.QueryFeatureData

Method failed.HRESULT = 0x80040358 : This is a FACILITY_ITF error that is specific to the interface that returned this error. See the documentation of the interface that returned this error for information about this HRESULT.

0.0138

100005

Two errors are returned. One, using code 10837, is generated by MapServer. Code 10837 is a generic code used by MapServer for all errors generated by the geodatabase. The text of the message will be "GeoDatabase Error:" followed by whatever text the geodatabase provides. In this example, the geodatabase-generated text is "A column was specified that does not exist."

Another error message, code 100005, is also reported for the same issue. This message is a system-generated message. This redundancy is expected.

Carto messages

When logging is set to Verbose, map services provide messages from two sources: methods from the MapServer and methods from Carto. Carto is the package of objects that draws the map. The Carto messages refer to subprocesses that occur within a map server context when a client calls ExportMapImage.

Code numberTextDescription

103000

Beginning of layer draw: <layer name>

The layer draw is part of the geography phase.

103001

End of layer draw: <layer name>

Use this code to determine how long it takes a layer to draw.

103002

Beginning of group layer draw: <layer name>

The group layer draw is part of the geography phase.

103003

End of group layer draw: <layer name>

Use this code to determine how long it takes all the member layers of a group layer to draw.

103004

Beginning of geography phase

This is the phase in which the features of individual layers draw. This phase includes running a query (code 103021) against the layer's data along with the drawing of layer features. Also, for layers based on feature classes, a count of features being drawn is reported (code 103019).

103005

End of geography phase

Use this code to determine how long it takes all layers in the map to draw.

103006

Beginning of annotation phase

This is the phase in which graphics, labeling, and annotation draw.

103007

End of annotation phase

Use this code to determine how long it takes graphics, labeling, and annotation in the map to draw.

103008

Beginning of selection draw phase

This is the phase in which selected features draw.

103009

End of selection draw phase

Use this code to determine how long it takes selected features in the map to draw.

103010

Beginning of graphic selection draw phase

This is the phase in which selected graphics draw.

103011

End of graphic selection draw phase

Use this code to determine how long it takes selected graphics in the map to draw.

103012

Beginning of custom draw phase of the map

This is the phase in which custom features or elements draw. This is also known as the "after draw". These features or elements are often generated by extension software. It is important to note that these are not custom layers.

103013

End of custom draw phase of the map

Use this code to determine how long it takes the custom features or elements in the map to draw.

103014

Beginning of the graphics drawing

This is part of the annotation phase.

103015

End of graphics drawing

Use this code to determine how long it takes graphics in the map to draw.

103016

Beginning of the labeling

This is part of the annotation phase.

103017

End of the labeling

Use this code to determine how long it takes labeling in the map to draw.

103018

Labeling Layers:

This is the list of layers in the map that are being labeled. Also included is the list of layers that provide barriers to label placement.

103019

Feature count:

This is the count of features drawn for a particular layer at a given extent.

103020

Graphic count:

This is the count of graphics drawn for a particular layer at a given extent.

103021

Executing query

Use this code to determine how long it takes for a layer based on a feature class to query the database when drawing.

103022

Drawing as masking layer

The layer being used as a masking layer.

103800

LayerDrawingError

Indicates that a drawing error has occurred.

Example: Connect to a map service (Desktop client)

This example explains detailed messages you may see when connecting to a map service from ArcGIS Desktop. The logs have been edited to highlight specific MapServer-related messages and to remove Info messages.

When ArcGIS Desktop connects to a map service (HTTP connection), several requests are made: GetDefaultMapName, GetServerInfo, IsFixedScaleMap, GetSupportedImageReturnTypes, and GetLegendInfo. The first request is GetDefaultMapName.

MethodMessageElapsedCode

MapServer.GetDefaultMapName

GetDefaultMapName has started.

10006

MapServer.GetDefaultMapName

GetDefaultMapName has completed.

0.00032

10007

GetDefaultMapName returns the name of the active map in the map service. In this example, it took MapServer 0.00032 seconds to complete the GetDefaultMapName request. The next request is GetServerInfo.

MethodMessageElapsedCode

MapServer.GetServerInfo

GetServerInfo has started.

10008

MapServer.GetServerInfo

GetServerInfo has completed.

0.06732

10009

GetServerInfo returns information about the current state of the map, such as which layers are visible (turned on). In this example, it took MapServer 0.06732 seconds to complete the request. Next is GetCacheDescriptionInfo.

MethodMessageElapsedCode

MapServer.GetCacheDescriptionInfo

GetCacheDescriptionInfo has started.

10064

MapServer.GetCacheDescriptionInfo

GetCacheDescriptionInfo has completed.

0.0003

10065

GetCacheDescriptionInfo returns cache description information for a given map. This includes cache control info, tile cache info, tile image info, and cache type info. In this example, it took MapServer 0.0003 seconds to complete the request. After making a GetCacheDescriptionInfo request, ArcGIS Desktop makes a HasSingleFusedMapCache request.

MethodMessageElapsedCode

MapServer.HasSingleFusedMapCache

HasSingleFusedMapCache has started.

10048

MapServer.HasSingleFusedMapCache

HasSingleFusedMapCache has completed.

0.0003

10049

HasSingleFusedMapCache determines whether the map service has a fused cache. In this example, it took MapServer 0.0003 seconds to complete the request. The next request is IsFixedScaleMap.

MethodMessageElapsedCode

MapServer.IsFixedScaleMap

IsFixedScaleMap has started.

10046

MapServer.IsFixedScaleMap

IsFixedScaleMap has completed.

0.00032

10047

IsFixedScaleMap determines whether the map service has a cache. This could be either a fused or multilayer cache. In this example, it took MapServer 0.00032 seconds to complete the request. The next request is GetSupportedImageReturnTypes.

MethodMessageElapsedCode

MapServer.GetSupportedImageReturnTypes

GetSupportedImageReturnTypes has started.

10044

MapServer.GetSupportedImageReturnTypes

GetSupportedImageReturnTypes has completed.

0.0003

10045

GetSupportedImageReturnTypes provides the list of supported image formats. In this example, it took MapServer 0.00032 seconds to complete the request. The final request is GetLegendInfo.

MethodMessageElapsedCode

MapServer.GetLegendInfo

GetLegendInfo has started.

10040

MapServer.GetLegendInfo

GetLegendInfo on layer 'Layer #1' has started.

10090

MapServer.GetLegendInfo

GetLegendInfo on layer 'Layer #1' has completed.

0.00206

10091

MapServer.GetLegendInfo

GetLegendInfo on layer 'Layer #2' has started.

10090

MapServer.GetLegendInfo

GetLegendInfo on layer 'Layer #2' has completed.

0.00087

10091

MapServer.GetLegendInfo

GetLegendInfo on layer 'Group Layer member #1' has started.

10090

MapServer.GetLegendInfo

GetLegendInfo on layer 'Group Layer member #1' has completed.

0.001

10091

MapServer.GetLegendInfo

GetLegendInfo on layer 'Group Layer member #2' has started.

10090

MapServer.GetLegendInfo

GetLegendInfo on layer 'Group Layer member #2' has completed.

0.00086

10091

MapServer.GetLegendInfo

GetLegendInfo on layer 'Raster layer' has started.

10090

MapServer.GetLegendInfo

GetLegendInfo on layer 'Raster layer' has completed.

0.00087

10091

MapServer.GetLegendInfo

GetLegendInfo has completed.

0.01252

10041

GetLegendInfo returns the legend information for each layer. Each layer that supports a legend has a started and a completed message. These messages are logged, including the time it takes to package the legend information for that layer.

Example: ExportMapImage

This example explains detailed log messages that you may see when you request a dynamic map image from a map service using the ExportMapImage method. The logs have been edited to highlight specific MapServer-related messages and to remove Info messages.

There are nine parts to the ExportMapImage process. These include (in order):

  1. Receipt of request
  2. Preparation of the map
  3. The Geography phase——drawing of each map layer
  4. The Annotation phase——drawing of graphics, labeling, and annotation
  5. Selection drawing
  6. Graphic selection
  7. After draw——drawing of custom features
  8. Image generation
  9. Process completed and result sent

After the ExportMapImage request is received by the server, the first step is to prepare the map.

MethodMessageElapsedCode

MapServer.ExportMapImage

Begin ExportMapImage.

10010

MapServer.ExportMapImage

Preparation for method: ExportMapImage has started.

10094

MapServer.ExportMapImage

Preparation for method: ExportMapImage has completed.

0.14895

10095

Preparation includes applying the MapDescription to the map and setting up the map to draw. This includes applying any necessary geotransformations or applying a selection to any of the layers. In this example, the preparation took 0.14895 seconds. The next step is to draw the map. Drawing the map encompasses a number of phases. The first phase is the geography phase.

MethodMessageElapsedCode

Map.Draw

Beginning of geography phase.

103004

This is the phase in which the features of individual layers draw. Here is an example for a layer named "Layer 3".

MethodMessageElapsedCode

Map.Draw

Beginning of layer draw: Layer 3

103000

FeatureLayer.Draw

Executing query.

0.00332

103021

UniqueValueRenderer.Draw

Feature count: 51

103019

Map.Draw

End of layer draw: Layer 3

0.10421

103001

Layer 3 is a feature layer. Therefore, a query against the database is run (code 103021). The elapsed time for this query is 0.00332 seconds. This time is included in the elapsed time for the entire draw (code 103001). Do not add this time to the "End of layer draw" (code 103001) time. The count of features being drawn in this layer, that is, the number of features within the specified map extent, is reported as 51. Also, notice that the type of renderer is reported within the method. In this example, Layer 3 is using a unique value renderer.

When the layer is a nonfeature layer, only the Beginning of layer draw (code 103000) and End of layer draw (code 103001) are reported. Here is an example for a raster layer.

MethodMessageElapsedCode

Map.Draw

Beginning of layer draw: Raster layer

103000

Map.Draw

End of layer draw: Raster layer

0.64353

103001

Below is an example of the log messages for a group layer along with the message indicating the end of the geography phase (code 103001).

MethodMessageElapsedCode

Map.Draw

Beginning of group layer draw: Group Layer

103002

GroupLayer.Draw

Beginning of Layer Draw: Group Layer member #2

103000

FeatureLayer.Draw

Executing query.

0.02128

103021

SimpleRenderer.Draw

Feature count: 168

103019

GroupLayer.Draw

End of Layer Draw: Group Layer member #2

0.02934

103001

GroupLayer.Draw

Beginning of Layer Draw: Group Layer member #1

103000

FeatureLayer.Draw

Executing query.

0.00898

103021

SimpleRenderer.Draw

Feature count: 13

103019

GroupLayer.Draw

End of Layer Draw: Group Layer member #1

0.01678

103001

Map.Draw

End of group layer draw: Group Layer

0.04732

103003

Map.Draw

End of geography phase.

1.01074

103005

In this example, the group layer, "Group Layer", has two member layers: "Group Layer member #1" and "Group Layer member #2". Each member layer is drawn and messages are logged based on layer type as previously described. Notice that the end of group layer draw has a code (103003) different than the end of layer code (103001). The elapsed time for the group layer draw is the sum of the elapsed time of all the member layers within the group layer.

The next phase in drawing the map is the annotation phase. This phase includes drawing graphics, annotations, and the labeling of map features.

MethodMessageElapsedCode

Map.Draw

Beginning of annotation phase.

103006

If there are graphics within the map extent being drawn, a count will be reported (code 103020).

MethodMessageElapsedCode

Map.Draw

Beginning of the graphics drawing.

103014

CompositeGraphicsLayer.Draw

Graphic count: 3.

103020

Map.Draw

End of the graphics drawing.

0.00128

103015

In the example above, there are three graphics within the map extent being drawn, which takes 0.00128 seconds to process. It's important to note that even if there are no graphics in the map there will still be a minimal amount of processing that the software will need to do to cycle through each phase.

Next in the annotation phase is "on-the-fly" feature labeling. Any number of layers can be labeled with any number of placement rules defined. Every time a map extent changes, features are relabeled. This requires the labeling engine to recalculate label positions based on the rules set in the served map document. Each layer in the map that is going to be labeled is listed (code 103018), along with a list of layers being used as barriers to label placement.

MethodMessageElapsedCode

Map.Draw

Beginning of the labeling.

103016

Map.Draw

Layers being labeled: Group Layer member #1,Layer #1. Barriers in labeling.

103018

Map.Draw

End of the labeling.

0.20395

103017

Map.Draw

End of annotation phase.

0.21024

103007

In this example, there are two layers being labeled: "Group Layer member #1" and "Layer #1". None of the layers are used as barriers.

The last three phases are the selection draw phase, the graphics selection draw phase, and the custom draw phase. The selection draw refers to any map features that are selected. In the example below, there are six features selected. In most cases, there will be very little for the map server to process for any of these three phases.

MethodMessageElapsedCode

Map.Draw

Beginning of the selection draw phase.

103008

Map.Draw

End of the selection draw phase.

0.20223

103009

Map.Draw

Beginning of graphics selection draw phase.

103010

Map.Draw

End of graphics selection draw phase.

0.00029

103011

Map.Draw

Beginning of the custom draw phase of the map.

103012

Map.Draw

End of the custom draw phase of the map.

0.00028

103013

The final step in the ExportMapImage process is image generation.

MethodMessageElapsedCode

MapServer.ExportMapImage

Image Generation for method: ExportMapImage has started.

10098

MapServer.ExportMapImage

Image Generation for method: ExportMapImage has completed.

0.25913

10099

MapServer.ExportMapImage

End ExportMapImage.

1.84224

10011

In this example, it took 0.25913 seconds for the image (in this example, a PNG) to be generated. The overall ExportMapImage took 1.84224 seconds to process.

It is important to note that there will be a difference in how long it takes a MapServer request to be processed and how long it takes a binary request to be processed for the same request. This difference is related to the amount of time it takes for the server to write the response to the stream.

Example: QueryFeatureData

This example shows detailed log messages that you may encounter when you query data in a map service using the QueryFeatureData method. The logs have been edited to highlight specific MapServer-related messages and to remove Info messages.

MethodMessageElapsedCode

MapServer.QueryFeatureData

QueryFeatureData has started.

10022

MapServer.QueryFeatureData

Preparation for method: QueryFeatureData has started.

10094

MapServer.QueryFeatureData

Preparation for method: QueryFeatureData has completed.

0.00111

10095

MapServer.QueryFeatureData

Query Operation for method: QueryFeatureData has started.

10096

MapServer.QueryFeatureData

Query Operation for method: QueryFeatureData has completed.

0.95778

10097

MapServer.QueryFeatureData

QueryFeatureData has completed.

0.96118

10023