- URL:https://<services-url>/createService(POST only)
- Required Capability:Default administrator role | All authorized privileges
- Version Introduced:10.1
Description
The createService operation creates a new GIS service in a folder. A service is created by submitting a JSON representation of the service to this operation.
Legacy:
At 10.9.1, when installing ArcGIS Server, you had the option to disable the ArcMap service runtime. If you did not disable the ArcMap runtime, you could create map, image, geodata, geoprocessing, and geocode services with ArcMap as their service provider (ArcObjects). Starting at ArcGIS Enterprise 11.0, the ArcMap service runtime has been removed, requiring that all services be created using the ArcGIS Pro service runtime and the ArcObjects11 provider.
The JSON representation of a service contains a number of properties that are divided into five sections:
Request parameters
Parameter | Details |
---|---|
service | The JSON representation of the service being created, which includes service description, service framework, service type, extension, and framework properties. Note:The values of all parameters must be either JSON or double quoted strings (""). Example
|
f | The response format. The default response format is html. Values: html | json | pjson |
Service description properties
The following table outlines the common properties shared by all service types that are used to identify a specific service.
Property | Description |
---|---|
serviceName | The name of the service. Example
|
type | The type of service. Example
|
description | An optional user-readable description for the service. Example
|
capabilities | The capabilities of the service. The domains of these values are specific to each service type. Example
|
Service framework properties
The following table outlines the properties targeted toward the framework that hosts the GIS service, which define the life cycle and load balancing of the service.
Property | Description |
---|---|
clusterName | The name of the cluster to which this service will be deployed. Note:Clusters have been deprecated. The use of clusters for new deployments is discouraged and existing deployments are advised to migrate away from use of clusters as part of ongoing maintenance and upgrades. Example
|
minInstancesPerNode | The minimum number of instances of the service to create on each node in the cluster. The default is 1. Example
|
maxInstancesPerNode | The maximum number of instances of the service to create on each node in the cluster. The default is 2. Example
|
maxWaitTime | The maximum amount of time (in seconds) the framework will wait to get a free instance of the service. The default is 60 seconds. Example
|
maxStartupTime | The maximum amount of time (in seconds) that can elapse on a startup attempt. When service instances are created in the GIS server, either as a result of the server starting or in response to a request of the server by a client, the time it takes to initialize the service instance is referred to as its creation time. When the maximum startup time has passed, it is assumed the startup has stopped responding and the GIS server cancels the creation of the service instance. The default is 300 seconds. Example
|
maxIdleTime | The maximum amount of time (in seconds) an idle instance of a service will remain idle before it is stopped. The default is 1800 seconds. Example
|
maxUsageTime | The maximum amount of time (in seconds) an instance can service a request. The default is 600 seconds. Example
|
recycleInterval | The maximum amount of time (in hours) an instance of the service can run. The default is 24 hours. Example
|
loadBalancing | Specifies the load balancing algorithm the framework will use for instances of a service among all the nodes in a cluster. The default is ROUND_ROBIN. Values: ROUND_ROBIN | FAIL_OVER |
isolationLevel | Specifies the isolation level under which an instance of a service will run. The default is HIGH. Values: LOW | HIGH |
Service type properties
The following table outlines the property that targets the core service type as seen by the server administrator. Since this property is associated with a server object, it varies across the service types. The sections following this table provide the service type properties for map, image, geoprocessing, and geocode services.
Property | Description |
---|---|
properties | A JSON object containing the properties for the targeted service type. Example
|
Map service type properties
The following table lists the map service type properties:
Property | Description |
---|---|
filePath (Required) | The full path, including the file name, of the map document file. Example
|
resampling (Optional) | Specifies whether rendering will be used in Tile Package Clients such as ArcGIS Pro, Map Viewer, and JSAPI. When true, resampling will redraw images up to the maxScale value. In areas with no data, blurred images will be displayed. Values: true | false |
maxRecordCount (Optional) | The maximum number of records that will be returned by query or data operations. The default value is 500. Example
|
dateFieldsTimezoneID (Optional) | The time zone that will be used by the service using the Windows ID for the time zone (for example, Pacific Standard Time or Eastern Standard Time). Once set, it is assumed that all date field values will be stored in the specified time zone and data will be converted from UTC to the time zone specified before changes are written to the database. This property, if configured, only applies to date fields that are not used to time enable a layer and are not used in editor tracking date fields. When enabling this property, it must be placed immediately after maxRecordCount; otherwise, dateFieldsTimezoneID will be ignored. Tip:When performing query operations on a map service when dateFieldsTimezoneID has been configured, the values for a where clause that references date field values must be in the same time zone specified in dateFieldsTimezoneID. Example
|
dateFieldsRespectsDaylightSavingTime (Optional) | If dateFieldsTimezoneID is defined, this Boolean property specifies whether time will be adjusted for daylight saving time. If daylight saving time does not apply to the data's region, set the value to false. If date values will be stored using daylight saving time when it is in effect, set this value to true. Once set, it is assumed that all date field values will be stored in the specified time zone and data will be converted from UTC to the time zone specified before changes are written to the database. This property, if configured, only applies to date fields that are not used to time enable a layer and are not used in editor tracking date fields. When enabling this property, it must be placed immediately after maxRecordCount; otherwise, dateFieldsRespectsDaylightSavingTime will be ignored. Tip:When performing query operations on a map service when dateFieldsRespectsDaylightSavingTime has been configured, the values for a where clause that references date field values must be in the same time zone as the data. Values: true | false |
maxBufferCount (Optional) | The maximum number of selected features that can be buffered for map operations. The default value is 100. Example
|
maxSampleSize (Optional) | The maximum number of records that will be sampled when computing a class breaks renderer, which is used by the Generate Renderer operation. Example
|
maxImageWidth (Optional) | The maximum image width allowed for requests. The default is 2048. Example
|
maxImageHeight (Optional) | The maximum image height allowed for requests. The default is 2048. Example
|
supportedImageReturnTypes (Optional) | The supported image return types. The default types are MIME+URL Example
|
isCached (Optional) | A Boolean flag that specifies whether the map service will be cached (true) or dynamic (false). Values: true | false |
ignoreCache (Optional) | A Boolean flag that specifies whether the map service will ignore the cache (true). Values: true | false |
cacheOnDemand (Optional) | A Boolean flag that specifies whether cache tiles will be created on demand and added to the server cache directory as users navigate the map (true). Values: true | false |
disableCaching (Optional) | A Boolean flag that specifies whether the REST handler will be disabled from caching all static resources, such as map service resource, layer resource, legends, and so on (true). Values: true | false |
clientCachingAllowed (Optional) | A Boolean flag that specifies whether clients will be allowed to cache tiles (true). Values: true | false |
cacheDir (Optional) | The physical directory where the tiles will be stored. Example
|
virtualCacheDir (Optional) | The virtual directory where the tiles can be accessed. Example
|
outputDir (Required) | The physical directory where the temporary output files will be created. Example
|
virtualOutputDir (Required) | The virtual directory where the output files can be accessed. Example
|
connectionCheckInterval (Optional) | The number of seconds between validity checks or repairs on SDE data connections used in a map service. Example
|
schemaLockingEnabled (Optional) | A Boolean tag that specifies whether the map service will acquire schema locks for map layers from a geodatabase (true). If locks will impede your workflow, set this value to false to disable schema locking. Values: true | false |
maxDomainCodeCount (Optional) | The maximum number of domain codes that can be returned from all fields, subtypes, layers, and tables in a map service. The default value is 25000. Example
|
useLocalCacheDir (Optional) | A Boolean that specifies whether the ArcGIS Server map caching mechanism will write bundle files to a local directory and copy them to a shared cache directory (true) or write the files directly to the shared cache directory (false). This option can improve performance, but it only applies to the compact cache storage format when multiple machines are working on the cache. Values: true | false |
antialiasingMode (Optional) | Specifies the antialiasing mode that will be used for drawing vectors in the map. The default is NONE. Values: FASTEST | FAST | NORMAL | BEST | NONE |
textAntialiasingMode (Optional) | Specifies the antialiasing mode that will be used for drawing vectors in the map. The default is FORCE. Values: NORMAL | FORCE | NONE |
disableIdentifyRelates (Optional) | A Boolean flag that specifies whether the processing of related records as a part of the identify results will be disabled. If there are too many related records, this may improve the performance of the Identify operation. The default is false. Values: true | false |
enableDynamicLayers (Optional) | A Boolean flag that specifies whether the map service will allow dynamic layer functionality such as reordering layers, changing symbology per request, and so on (true). The default value is false. Values: true | false |
dynamicDataWorkspaces (Optional) | The workspace connections that will be available for the web clients applications for adding dynamic layers per request. This is a string value representing the JSON array containing JSON objects describing the workspace connection. Example
|
hasStaticData | Specifies whether the performance of a map service that uses static, unchanging data will be optimized (true). This property is automatically set to true in ArcGIS Server when a map service is published by copying data to the server. Values: true | false |
cacheControlMaxAge | The value that will be returned for max-age as the cache-control response header by the export request and the tile resource. If no value is provided, the default value of 0 seconds for the export request, 86400 seconds for tiles that the client can cache, and 0 seconds for tiles that disallow client caching, will be returned as the max-age value. However, if client caching is not allowed, the max-age value for tile responses will always be 0, and any value provided for cacheControlMaxAge will be ignored. Example
|
disableDownsamplingTilesForExportMap | Specifies whether the cached map service will render the image using the cache tiles. When set to false, if no cache tiles exist at a certain level, the image will use resampled cache data to render an image using CPU resources. When set to true, if no cache tiles exist for an export request, the service will return an error. This property is used to optimize export requests. The default is false. Values: true | false |
failOnStartWhenDataInaccessible | Added at 10.8.1. Specifies whether starting a map service when a data source is inaccessible will fail. By default, when the data source of a layer or stand-alone table is inaccessible, a map service will start without listing broken layers or tables in its resources. However, when this property is set to true and the map service cannot access any of its layer or table sources, it will fail to start. The default is false. Values: true | false |
Image service type properties
The following table lists the image service type properties:
Property | Description |
---|---|
path (Required; Optional if connectionString or serviceURL is specified) | The path to the published raster dataset or raster layer. Example
|
connectionString (Required; Optional if path or serviceURL is specified) | The connection properties of a geodatabase containing the published raster dataset. |
raster (Required if connectionString is specified) | The published raster dataset name in the geodatabase specified by connectionString. |
serviceURL (Required; Optional if path or connectionString is specified) | The published classic image server service URL |
maxImageWidth (Optional) | The maximum number of columns of the image returned by the exportImage operation. Example
|
maxImageHeight (Optional) | The maximum number of rows of the image returned by the exportImage operation. Example
|
supportedImageReturnTypes (Optional) | The supported image return types. The default types are MIME+URL. Example
|
maxMosaicImageCount (Optional) | The maximum number of images that will be used for generating a mosaic image. Example
|
maxRecordCount (Optional) | The maximum number of records that can be fetched. Example
|
maxDownloadImageCount (Optional) | The maximum number of images that can be downloaded. Example
|
allowedCompressions (Optional) | The transmission compressions that can be used. Example
|
allowedItemMetadata (Optional) | Specifies the level of raster item metadata that can be used. Values: None | Basic | Full |
allowedFields | The visible fields for the image service. Example
|
allowedMosaicMethods (Optional) | The list of allowed mosaic methods. Example
|
allowedMensurationCapabilities (Optional) | Specifies the mensuration capabilities that can be used. Values: None | Basic | Height | Shadow | 3D |
defaultCompressionQuality (Optional) | The default compression quality. Example
|
defaultResamplingMethod (Optional) | The default resampling method. Example
|
outputDir (Optional) | The physical output directory. Example
|
virtualOutputDir (Optional) | The virtual output directory. Example
|
connectionCheckInterval (Optional) | The number of seconds between validity checks or repairs on SDE data connections used in a map service. Example
|
downloadDir (Optional) | A list of physical directories for direct download. Each list entry must be separated by a semicolon (;). |
virtualDownloadDir (Optional) | A list of virtual directories for direct download. Each list entry must be separated by a semicolon (;). |
rasterFunctions (Optional) | A list of published raster function templates (.rft). Each list entry must be separated by a semicolon (;). |
rasterTypes (Optional) | A list of published raster types (.art). Each list entry must be separated by a semicolon (;). |
allowFunction (Optional) | A Boolean flag that specifies whether the performing of a raster function is allowed. Values: true | false |
colormapToRGB (Optional) | A Boolean flag that specifies whether pseudo-color images will be converted to RGB images. Values: true | false |
uploadDir (Optional) | A list of physical directories for storing uploaded images. Each list entry must be separated by a semicolon (;). |
serviceSourceType (Optional) | Specifies the published source data type. Values: esriImageServiceSourceTypeDataset | esriImageServiceSourceTypeLayer | esriImageServiceSourceTypeCatalog | esriImageServiceSourceTypeMosaicDataset |
isCached (Optional) | A Boolean flag that specifies whether the map service will be cached (true) or dynamic (false). Values: true | false |
ignoreCache (Optional) | A Boolean flag that specifies whether the map service will use the cache (true). Values: true | false |
cacheOnDemand (Optional) | A Boolean tag that specifies whether cache tiles will be created on demand and added to the server cache directory as users navigate the map (true). Values: true | false |
cacheDir (Optional) | The physical directory where the tiles will be stored. Example
|
virtualCacheDir (Optional) | The virtual directory where the tiles can be accessed. Example
|
useLocalCacheDir (Optional) | A Boolean that specifies whether the ArcGIS Server map caching mechanism will write bundle files to a local directory and copy them to a shared cache directory (true) or write the files directly to the shared cache directory (false). This option can improve performance, but it only applies to the compact cache storage format when multiple machines are working on the cache. Values: true | false |
clientCachingAllowed (Optional) | A Boolean flag that specifies whether clients can cache tiles locally (true). Values: true | false |
cacheControlMaxAge (Optional) | The value returned for max-age as the cache-control response header by an exportImage request and the tile resource. If no value is provided, the default value of 43200 seconds for the exportImage operation for tiles that the client can cache, and 0 seconds for clients that disallow client caching will be used. However, if client caching is not allowed, the max-age value for tile responses will always be 43200, and any value provided for cacheControlMaxAge will be ignored. Example
|
Geoprocessing service type properties
The following table lists the geoprocessing service type properties:
Parameters | Details |
---|---|
toolbox (Required) | The path to the toolbox that is the source of the geoprocessing service tasks. Example
|
executionType (Optional) | Specifies whether the client will perform operations for this service synchronously or asynchronously. If performed synchronously, the client waits until the server has completed the current running operation. If performed asynchronously, the client can do other work while the server completes the current operation. The default is Asynchronous. Values: Asynchronous | Synchronous |
resultMapServer (Optional) | A Boolean flag that specifies whether a map server will be used to draw the geoprocessing results. The default is false. Values: true | false |
maximumRecords (Optional) | The maximum number of features the geoprocessing service will return. The default is 1000. Example
|
showMessages (Optional) | A Boolean flag that specifies whether tool processing messages will be included in geoprocessing service messages. The default is false. Values: true | false |
jobsDirectory (Required) | The path to the jobs directory where the geoprocessing service output will be written. Example
|
jobsVirtualDirectory (Optional) | The URL to the jobs directory. Example
|
outputDir (Optional) | The path to the directory that will return the written files. Example
|
virtualOutputDir (Optional) | The URL to the output directory. Example
|
localJobsDir (Optional) | A Boolean flag that specifies whether the temp directory will be used for the jobs directory when running tasks. The default is false. Values: true | false |
Geocode service type properties
The following table lists the geocode service type properties:
Parameters | Details |
---|---|
locatorWorkspaceConnectionString (Required for locators in databases) | The parameters for a connection to the geodatabase storing the locator Example
|
locatorWorkspacePath ( Required for file-based locators) | The path to the location on disk where the locator file is stored Example
|
locator (Required) | The name of the address locator for the geocode service. Example
|
suggestedBatchSize (Optional) | The suggested number of addresses that will be sent to a server in one batch geocoding request. The default is 1000. Example
|
maxBatchSize (Optional) | The maximum number of result records that can be processed in one batch geocoding request. The default is 1000. Example
|
maxResultSize (Optional) | The maximum number of result records that can be returned by the FindAddressCandidates operation. The default is 500. Example
|
Extension properties
The table below outlines the properties that represent the extensions that are enabled on a service.
Property | Description |
---|---|
typeName | The type of extension. See the list of supported extension types. Example
|
capabilities | The capabilities of the extension type. Example
|
enabled | A Boolean that specifies whether the extension will be enabled on the service. Values: true | false |
properties | A bag of properties for the targeted extension type. Example
|
Framework properties
The table below defines the property used to determine the heap size that will be applied to a service.
Property | Description |
---|---|
javaHeapSize | The heap size for a particular service, which will override the default heap size properties you can set for all services using the edit operation. Providing a value for javaHeapSize will only affect this service; all other services in the machine will remain unchanged. Example
|
Example usage
The following is a sample POST request for the createService operation, formatted for readability:
POST /webadaptor/admin/services/createService HTTP/1.1
Host: machine.domain.com
Content-Type: application/x-www-form-urlencoded
Content-Length: []
service={
"serviceName": "Test",
"type": "MapServer",
"description": "my map service",
"capabilities": "map,query,data",
"clusterName": "default",
"minInstancesPerNode": 1,
"maxInstancesPerNode": 2,
"maxWaitTime": 60,
"maxStartupTime": 300,
"maxIdleTime": 1800,
"maxUsageTime": 600,
"recycleInterval": 24,
"loadBalancing": "ROUND_ROBIN",
"isolationLevel": "HIGH",
"properties": {
"maxBufferCount": "100",
"virtualCacheDir": "https://SERVER:6080/arcgis/server/arcgiscache",
"maxImageHeight": "2048",
"maxRecordCount": "1000",
"filePath": "\\\\machine\\data\\Corine\\CORINE6.msd",
"maxImageWidth": "2048",
"cacheOnDemand": "false",
"virtualOutputDir": "https://SERVER:6080/arcgis/server/arcgisoutput",
"outputDir": "C:\\arcgisserver\\arcgisoutput",
"supportedImageReturnTypes": "MIME+URL",
"isCached": "false",
"ignoreCache": "false",
"clientCachingAllowed": "false",
"cacheDir": "C:\\arcgisserver\\arcgiscache\\Corine"
},
"extensions": [
{
"typeName": "KmlServer",
"enabled": true,
"capabilities": "SingleImage,SeparateImages,Vectors",
"properties": {
"minRefreshPeriod": "30",
"compatibilityMode": "GoogleEarth",
"imageSize": "1024",
"dpi": "96",
"endPointURL": "",
"featureLimit": "1000000",
"useDefaultSnippets": "false"
}
},
{
"typeName": "WFSServer",
"enabled": true,
"capabilities": "",
"properties": {
"appSchemaURI": "https://grid5:6080/arcgis",
"appSchemaPrefix": "arcgis",
"enableTransactions": "false"
}
},
{
"typeName": "WCSServer",
"enabled": false,
"capabilities": "",
"properties": {}
}
],
"frameworkProperties": {
"javaHeapSize": "64"
}
}&f=json
JSON Response examples
The following is a sample success response for the createService operation, indicating that the service was created successfully:
{
"status": "success"
}
The following error response is returned when an attempt is made to create a service with ArcMap as its service provider:
{
"status": "error",
"messages": ["Failed to create the service 'SampleWorldCities10x.MapServer'. This service cannot be created because the ArcObjects provider is no longer supported. Starting at version 11.0, you must use the ArcObjects11 provider."],
"code": 500
}