General considerations for using web tools

Large dataset upload and download

There is a file size limitation for uploading data when sharing a web tool and downloading output data when running the web tool. The limitation depends on the heap size of the federated server that hosts the web tool. The default server heap size is 64 MB; however, the size can be modified by the server administrator if needed. Check with your server administrator to increase the heap size in the following instances:

  • Uploading raster data larger than 64 MB
  • Uploading feature data close to or larger than 64 MB
  • Downloading feature data close to or larger than 64 MB

For detailed explanations about the relationship of heap size and large upload and download datasets, see the Heap size section of Web tool properties advanced settings.

When downloading large feature data, the maximum number of records returned by the server should also be considered. The default record size is 1000. If the number of records returned will be more than 1000, you can do the following:

  • Reset the maximum record count from the web tool settings when sharing as a web tool.
  • If you do not reset during the sharing process, the data is not downloaded, and web tool execution results in the geoprocessing history containing the message data exceeds transfer limit. You must sign in to the federated server manager and reset the maximum number of records for the geoprocessing service that hosts the web tool.
  • Use web tools with an output feature service to avoid downloading large amounts of output data.

Upload large datasets from a web application

Web applications use the Representational State Transfer (REST) Uploads operation to upload files. This capability is set by the Uploads capability on the geoprocessing service property page. The default maximum upload size is 2 GB. You can modify the maximum upload size to less than 2 GB by following the steps described in the Upload size section of Web tool properties advanced settings. You cannot modify the maximum upload size to a size greater than 2 GB.

If the input data is a .txt, .zip, or .jpg file, you can use the uploads resource operation to upload these file types. The setup of an upload file type is described in the Upload types section of Web tool properties advanced settings.

Web tools from ArcMap

You can use web tools using a server connection file. If a web tool is published from any client to ArcGIS Enterprise 10.9.1 or an earlier version, you can use it with any connection type and sharing privilege. Publishing from ArcMap to ArcGIS Enterprise 11 and later is not supported. However, you can use the web tools published from ArcGIS Pro to ArcGIS Enterprise 11 with the following requirements:

  • Use User connection type for server connection.
  • The web tool is shared with everyone.
  • There is no overwrite an output feature service option as in ArcGIS Pro 3.0, but you can run the tool with the output feature service parameter.
  • If the web tool has a parameter with a value table or field data type, you can only use it with the existing values. Changing the existing values or providing values from ArcMap is not supported.

Input as a feature or image service

You can provide an input from a feature service for feature and image service for raster data type by typing the service URL, selecting a service layer from table of content , or choosing a service from the Portal pane in ArcGIS Pro .

Output as a feature service

When consuming a web tool, the output can be generated as an output feature class or table or as an output feature service using the Output feature service name parameter. This option can expedite the consumption process when the size of the output feature is large. It also makes your data permanently available from various clients such as web clients, desktop apps, and field apps. You can read more information about saving output as a feature service in Use web tools with an output feature service

Use custom geographic transformation

There are occasions when you may want to use a custom geographic transformation file (.gtf) for the web tool you share. If this is the case, ensure that the .gtf file is on the federated server that hosts the web tool. For more information about creating a .gtf file and saving it to the server, see Use geoprocessing services with custom geographic transformation. The .gtf file path saved in ArcGIS Pro is similar to that in ArcGIS Desktop. All you need to do is replace the Desktop10.x portion of the .gtf path with ArcGISPro.

Use environments

When consuming a web tool from ArcGIS Pro, you can use the tool's Environments tab to set environment settings for the tool's execution. Some environments, such as Output Coordinate System and Mask, accept a typed in feature service or map service URL in addition to choosing from the drop-down list. Some environments, such as Snap Raster and Cell Size, accept a typed in image service URL in addition to choosing from the drop-down list. Environment settings specified in the Analysis tab, which are used in local geoprocessing in ArcGIS Pro, will not be processed when the web tool is consumed. Below is the list of supported environments.

  • Output Coordinates—Output Coordinate System, Geographic Transformations
  • Processing Extent—Extent
  • Parallel Processing—Parallel Processing Factor
  • Raster Analysis—Cell Size, Cell Size Projection Method, Mask, Snap Raster
  • Geodatabase—Auto Commit
  • M Values—Output has M Values
  • Z Values—Default Output Z Value, Output has Z Values
  • Random Numbers—Random Number Generator
  • Raster Storage—NoData
  • Processor Type—Processor Type, GPU ID

Parameter filters

When authoring a tool, you can set a filter on the Parameters tab on the Tool Properties dialog box. Starting at ArcGIS Server 10.7, when you publish a tool with filters, the filter information is also published. Only filters for supported input data types are supported, other than Date filters.

Example

In the tool below, a Range Filter has been set for a Double parameter with a Minimum value of 213 and a Maximum value of 123132.123.

Updating a tool's range filter

When the tool has been published and used as a web tool in ArcGIS Pro, an input value outside of the filter range prompts an error indicating the value is out of range.

The use of a range filter prevents values from being used outside of your defined range

Python environment used by web tools

Similar to ArcGIS Pro, ArcGIS Enterprise uses Python environments in ArcGIS Server.

By default, your web tools published from ArcGIS Pro use the default Python environment, which is in the ArcGIS Server install directory on your server machine. If your ArcGIS Server is in the default installation location, your Python environment is at C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3.

If you are using a customized Python environment with third-party Python packages when you author your analysis, those Python packages are not automatically uploaded to the ArcGIS Server during the publishing process. To upload your packages, see Deploying custom Python packages for ArcGIS Server. Otherwise, your web tools will fail with Python errors.

Considerations for various ArcGIS Enterprise deployment types

There are numerous deployment scenarios. Some deployments may need attention under specific circumstances.

High availability in ArcGIS Enterprise

If you publish web tools to a highly available ArcGIS Enterprise deployment with NFS file shares, ensure you do not set the NOLOCK option on the NFS file shares. File locking can ensure essential files recording web tool job status with an asynchronous geoprocessing service have a proper locking mechanism. If the NOLOCK option is set on your NFS file share, multiple machines may process the same request, causing duplicate results. See High availability in ArcGIS Enterprise and Choose a NAS device for ArcGIS Server for more information about this deployment and a NAS device.

Multiple-machine ArcGIS Server site

If your multiple-machine ArcGIS Server site is using a third-party load balancer, ensure the load balancer can support sticky sessions. This allows a client using asynchronous geoprocessing services to submit a job and obtain the job status, progress, inputs, and outputs from the same machine. Otherwise, if the load balancer routes a request to a machine other than the one running the job, the client will not be able to obtain the job status.