I've created a small python synchronous geoprocessing script (ctagc) that runs on AGS. The script accepts a table (GPRecordSet) as an input parameter. The script then calls arcpy.GeocodeAddresses_geocoding() to submit the table to a specified geocoding service running on the same server. The script then generates an output feature class "in_memory" to send back to the caller.
When my silverlight client submits multiple http requests (4 threads of 100 records) of JSON batches of data through the generated REST interface on the server, the script INconsistently fails on the same data being submitted. On different runs of the test data, different batches fail each time (and a different number fail). This happens with different geocoding services on the server.
I think that there may be problems with the geocoding service accessing the single locator file. I've tried changing pooling and isolation parameters. Still crashes. Does anyone know have suggestions for handling multiple requests hitting a geocoding service? I thought ArcGIS server could handle thousands of requests, blah, blah per hour?
System Info: Running AGS 10.03 and have installed geocoding patch Gis10sp3-SGIS-GGM-Patch.msp from 1/3/2012 on virtual Win 2008 R2. Pooling services, low isolation.
Error message returned to client:
example 1
Error Executing Task. Error executing tool.: \u003cclass 'arcgisscripting.ExecuteError'\u003e: ERROR 000464: Cannot get exclusive schema lock. Either being edited or in use by another application.\nFailed to execute (GeocodeAddresses).\n\nFailed to execute (ctagc).
example error 2
Error Executing Task. Error executing tool.: \u003cclass 'arcgisscripting.ExecuteError'\u003e: ERROR 000010: Geocode addresses failed.\nFailed to execute (GeocodeAddresses).\n\nFailed to execute (ctagc).
Server Log File Messages:
<Msg time='2012-02-09T12:12:44' type='INFO3' code='20022' target='cta/ctagc.GPServerSync' methodName='GPServerSync.Execute.ctagc' machine='VAGS10B' process='20336' thread='3152' elapsed='3.02319'>Execute job j769cfe004d6c4152a5357f7a9c318f7b</Msg>
<Msg time='2012-02-09T12:12:44' type='ERROR' code='20010' target='cta/ctagc.GPServerSync' methodName='GPServerSync.CheckMessages' machine='VAGS10B' process='20336' thread='3152'>Executing (ctagc): ctagc "Record Set" 0 0 2 12 Start Time: Thu Feb 09 12:12:41 2012 Running script ctagc... \\VAGS10B\ArcGIS\cta\ctagc_ags_connection\cta\comp_parcels_streets.GeocodeServer <class 'arcgisscripting.ExecuteError'>: ERROR 000010: Geocode addresses failed. Failed to execute (GeocodeAddresses). Failed to execute (ctagc). Failed at Thu Feb 09 12:12:44 2012 (Elapsed Time: 3.00 seconds)</Msg>
<Msg time='2012-02-09T12:12:44' type='ERROR' code='20010' target='cta/ctagc.GPServerSync' methodName='GPServerSync.CheckMessages' machine='VAGS10B' process='20336' thread='3152'>Error executing tool.: <class 'arcgisscripting.ExecuteError'>: ERROR 000010: Geocode addresses failed. Failed to execute (GeocodeAddresses). Failed to execute (ctagc).</Msg>
<Msg time='2012-02-09T12:12:44' type='INFO3' code='20024' target='cta/ctagc.GPServerSync' methodName='GPServerSync.Save.ctagc' machine='VAGS10B' process='20336' thread='3152' elapsed='0.00056'>Save job j769cfe004d6c4152a5357f7a9c318f7b message type SOAP message size 534</Msg>