If you have an ArcGIS Enterprise deployment, you can take advantage of a server-side asynchronous batch geocoding pattern that will help you get the best possible performance from your locator services. This approach works with locators that you have published on your portal. For more information about creating locators, and sharing them to a portal, see Create a locator and Share a locator.
You can use the power of ArcGIS Enterprise to get the most out of your published locators. Once a locator has been shared to your portal, it can be used to do batch geocoding. Some advantages to using your portal to do batch geocoding include the following:
- Maximize server resources to get the batch geocoding job done as quickly as possible.
- Allow the ArcGIS administrator to manage back-end resources and not overload services.
- Perform large batch geocoding behind your organization's firewall using your data and your own published locator.
- Chunking and retry logic are built in to ensure large batch geocoding jobs do not fail.
To get the most from your published locator services, you can scale up the resources for your geocode server. You can do this in ArcGIS Enterprise Manager.
In the diagram above, an administrator has scaled up the locator service to four instances. The administrator can then set the number of batch geocoding threads to 4 for the locator, and achieve a fourfold increase in batch geocoding performance. The administrator can set the number of batch geocoding threads property on your portal's home page by going to the Organization tab, clicking Settings > Utility services, and scrolling down to Geocoding. If there are four available geocoding instances, and two users want to perform batch geocoding simultaneously, the administrator should set the number of batch geocoding threads property to 2, or jobs will be queued and potentially time out while waiting for another job to finish. That way, each batch geocoding job will be run against two of the available locator instances, and the back-end locator services will be able to handle the load of submitting multiple jobs simultaneously.
Once you have shared your locator to the organization, the administrator can configure their portal to use the asynchronous batch geocoding pattern described above by completing these steps.
Increase the time-out for batch geocoding
By default, the GeocodingTools geoprocessing service times out on jobs longer than 200 minutes. If you anticipate a batch geocoding job may take longer than 3 hours and 20 minutes to complete, you should increase the maximum time a client can use the service.
- Sign in to ArcGIS Enterprise Manager as an administrator.
- Click the Services button to go to the Services page.
- Click the Utility services tab.
- Click the GeocodingTools geoprocessing service.
- Click the Settings page.
- In the Service time section, update the Maximum time a client can use the service value. Increasing this value to a very large number ensures that large batch geocoding jobs will never time out.
- Click Save.
Configure the suggested number of batch geocoding threads for your locator
Any locator published to your organization can also be used by the GeocodingTools geoprocessing service. The GeocodingTools service can send multiple concurrent requests to the geocoding utility service to speed up the overall execution for batch geocoding. The number of concurrent requests (number of batch geocoding threads) made by the geoprocessing service can be configured by a portal administrator. It is important to set the number of batch geocoding threads to the correct value; otherwise, it will result in increased failures for batch geocoding.
As a best practice, the number of batch geocoding threads should be set proportionally to the number of instances available for the geocode service. For example, if there are eight instances available for the geocode service, set the number of batch geocoding threads to 8. When the geoprocessing service is executed, it sends eight concurrent batch geocoding requests to the locator service. In case more instances are available for the locator service, adjust the number of batch geocoding threads appropriately to maximize the utilization of instances for the locator service. However, if two users want to batch geocode at the same time against the same service, the administrator should set the number of batch geocoding threads to 4, so each user is using half of the available geocode service instances, and the back-end geocode service is not overwhelmed with requests.
Note that the ArcGIS World Geocoding Service cannot be configured with batch geocoding threads. The following configuration applies to all other published locators that are configured as utility services.
To set the suggested number of batch geocoding threads for your locator, follow these steps:
- Publish the desired locator to your portal using ArcGIS Pro.
- Sign in to your portal as an administrator.
- Click Content, and make sure the locator is shared with the organization.
- Click Organization, and under Settings, browse to Utility Services.
- Scroll down to the Geocoding section, and click Add Locator. Select the locator you want to configure for batch geocoding, and adjust the Number of batch geocoding threads value.
- Click OK and click Save.
The number of batch geocoding threads must be less than or equal to the number of instances available for the locator. If a greater value is selected, batch geocoding jobs may fail.
Tools enabled for batch geocoding
After the administrator has configured the number of batch geocoding threads per locator, users can take advantage of the increased performance in their batch geocoding jobs. Tools that take advantage of this performance increase are Geocode Table, Geocode Locations From Table, and Geocode File in ArcGIS Pro, as well as Geocode Locations from Table in Map Viewer Classic.