Sometimes I'm presented with an error message saying something along the lines of:
[COMException (0x800a0bcd): Exception from HRESULT: 0x800A0BCD]
... long stacktrace continues...
And no human readable description to help me in my diagnosis. What does the HRESULT code mean?
Sometimes the thrown error does not contain a human readable descriptions, and sometimes the description is lost in translation (e.g. when .NET transforms a HRESULT status code into a proper Exception object). Below is a table with most common of the possible HRESULT values with their symbolic representation:
HRESULT | Symbol | Description |
---|---|---|
0x8004001F | GF_HE_OUT_OF_MEMORY | An out of memory condition while using the GeoMedia engine ensued. You might want to revise your Map Server memory usage thresholds for more aggressive Map Server recycles. |
0x80040133 | GDO_HE_InvalidObject | This happens most of the time when the library connection is broken, or the data therein are corrupted. Specifically, the library part of the WebMap Publisher metadata might exhibit such behavior and a republishing is needed for the specific service source. |
0x80040638 | GM_HE_INVALID_GRECORDSET | A connection failure occurred when trying to access the features inside a recordset. Sometimes this also happens when you publish a legend to the WebMap Publisher metadata which contains features incompatible with the service source type or its usage. |
|
GMST_HE_FILEACCESSDENIED GMSS_HE_FILEACCESSDENIED GMST_HE_FILEACCESSDENIED GF_HE_PermissionDenied GF_HE_AccessDenied GF_HE_FileAccessDenied GF_HE_DDLPermissionDenied ADO_HE_MFCACCESSDENIED |
These are all some kind of permission problem encountered. |
0x8004045D |
GWM_HE_IMAGETYPE | An invalid image type has been passed to the WebMap API |
0x80040BCD |
GF_HE_NoCurrentRecord | The recordset is not set to a valid row. This mostly happens when the recordset is empty, and the logic tried to examined its contents without establishing whether it contains anything. In WebMap this happens for example when you try to access an empty Service Source to which no data has been published yet. |
0x80040E3A |
GWM_HE_NO_AUTOSCALE | No autoscale object has been set prior to calling the CreateMapByRange of WebMap API |
0x80040FBD |
GWM_HE_NO_CACHE | The cache folder has not been set or is invalid. Rerun the GeoMedia WebMap Configuration Wizard and configure it on the appropriate page, or use the Geospatial Server Administration Console to set it in the GeoMedia WebMap/Settings option. |
0xA07B0001 |
GWM_E_MAPSVRMNGR_TIMEOUT | The request for a free Map Server expired in the Map Server Manager. |
0xA07B0002 |
GWM_E_MAPSVRMNGR_NOTREADY | The request for a free Map Server arrived at the Map Server Manager when it was still not ready to process it. |
0xA07B0003 | GWM_E_MAPSVRMNGR_REJECTED | The request for a free Map Server was rejected by the Map Server Manager. Possibly due to the request queue being full. |
The full list is attached as an excel file.
Armed with the list and a detailed log file of WebMap and/or its services makes it easier to pinpoint the exact problem.