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 number | Text | Description |
---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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 number | Text | Description |
---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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):
- Receipt of request
- Preparation of the map
- The Geography phase——drawing of each map layer
- The Annotation phase——drawing of graphics, labeling, and annotation
- Selection drawing
- Graphic selection
- After draw——drawing of custom features
- Image generation
- Process completed and result sent
After the ExportMapImage request is received by the server, the first step is to prepare the map.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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".
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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).
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
Map.Draw | Beginning of annotation phase. | 103006 |
If there are graphics within the map extent being drawn, a count will be reported (code 103020).
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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.
Method | Message | Elapsed | Code |
---|---|---|---|
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 |