VERIFIED SOLUTION i
X

Resolve cannot find resource 46 in table EllisUtilityResources within assembly MapInfo.CoreEngine

Issue

Cannot find resource 46 in table EllisUtilityResources within assembly MapInfo.CoreEngine.
 

Cause

The call stack is as follows: Error: Cannot find resource 46 in table EllisUtilityResources within assembly MapInfo.CoreEngine. Caller: PostProcessingProcess.ProcessVehicleEvent Add'l: EventID: 755443-> at MapInfo.L10N.Resources.GetResource(ResourceManager rm, String resName, Type resType) at MapInfo.L10N.Resources.GetTableString(String resTable, String resName) at MapInfo.Engine.CoreEngineException.GetEllisResource(String ellisTable, String resName, String pMsg0, String pMsg1) at MapInfo.Engine.CoreEngineException.GetEllisResource(String ellisTable, Int32 iResID, String pMsg0, String pMsg1) at MapInfo.Engine.CoreEngineException.ConcatEllisMessage(String msg) at MapInfo.Data.MIDataReader.Read() at Transfinder.DataInterchange.TFReverseGeocode.InternalAddressesForPoint(DPoint oSearchPoint, String sStreetLayer, Double heading) at Transfinder.DataInterchange.TFReverseGeocode.GetAddressesForPoint(DPoint source, Double heading) at Transfinder.DataInterchange.TFMapHandler.FindClosestStreet(Point source, Double heading, DataSet lasttwopoints) at Transfinder.DataInterchange.TFMapHandler.FindClosestStreet(Double x, Double y, Double heading, DataSet lasttwopoints) at Transfinder.DataInterchange.Processes.PostProcessing.PostProcessController.PostProcessingProcess.ProcessVehicleEvent(In

Cannot find resource 46 in table EllisUtilityResources within assembly MapInfo.CoreEngine.

Resolution

UPDATED: September 8, 2017


Work around for the issue.

The two threads running under a windows service, both developed as .net managed code.
Thread 1 captures data from external vendors interfaces(SOAP web services, REST Services, and in one case shells to an exe that queries
 an external DB and writes XML docs that the thread reads). This thread takes the obtained data and inserts into a local database(on another server).

Thread 2 reads and records from this database, and uses Mapxtreme to perform GPS related functions, then saves these results back to the processed record in the local database.

The issue was when thread 1 called the exe via System.Diagnostics.Process namespace, and
Thread 2 was on a code to query one of map data files via MICommand class, the original mentioned error would occur. then open the connection to on the command right before the cmd.ExecuteNonQuery(), then immediately close the connection. This code has worked for many years with no issues. It was not until we recently implemented the new vendor type that calls the exe and reads the produced xml files that the issue came about.

It almost seemed to customer local machine has lots of I/O happening the Mapxtreme error would occur.The first idea was to change an attribute of the Process to not load the user profile when starting the exe (gpsProc.StartInfo.LoadUserProfile = false). This stopped the error from happening when we initiated the exe, but then shifted the error to pop up when thread1 read the xml the exe produced. then decompiled the vendors exe which was in .net, and placed their code in our assembly, and instead of writing the xml to files, wrote it to a memory stream instead. customer no longer have seen the error since doing this.

So, somewhat have concluded it was all the disk i/o occurring that caused Mapextreme to error. The map files are on the same local hard drive as the xml files being written/read , the user profile loaded from etc.

Environment Details

Product affected: Mapxtreme 2005 6.7.1


 

Downloads

  • No Downloads