Summary
Manages internal data kept by the server about the built tiles in a map or image service cache.
Usage
This tool is useful for rebuilding the cache status after you manually copy tiles into the cache directory or build tiles on demand.
This tool is the only way to build a status for a cache created with a previous release of ArcGIS Server or Portal for ArcGIS.
Rather than creating a status for the entire cache, you can alternatively use this tool to create status reports for custom areas of interest and scale levels. You do this by setting the Manage Mode parameter (manage_mode in Python) to REPORT_BUNDLE_STATUS. The report is stored in a new file geodatabase named Status.gdb, specifically within a feature class named TaskStatus.
Note that your cache directory also contains a Status.gdb that pertains to the entire cache and is updated when you use the other Manage Mode options for this tool. You cannot substitute a custom Status.gdb in this location.
Syntax
arcpy.server.ManageMapServerCacheStatus(input_service, manage_mode, {scales}, {num_of_caching_service_instances}, {report_folder}, {area_of_interest}, {report_extent})
Parameter | Explanation | Data Type |
input_service | The map image layer for which the cache status will be modified.. You can choose it by browsing to the desired service in Portal or you can drag and drop a web tile layer from the Catalog pane Portal tab to supply this parameter. | Image Service; MapServer |
manage_mode |
| String |
scales [scales,...] (Optional) | The scale levels for which the status will be modified. This parameter is only applicable when building a custom status using the REPORT_BUNDLE_STATUS option for the manage_mode parameter. | Double |
num_of_caching_service_instances (Optional) | Defines the number of instances that will be used to update/generate the tiles. The value for this parameter is set to unlimited (-1) and cannot be modified. | Long |
report_folder (Optional) | Output folder for the Status.gdb. This parameter is only applicable when building a custom status using the REPORT_BUNDLE_STATUS option. | Folder |
area_of_interest (Optional) |
An area of interest (polygon) that determines what geography the status report will cover. This parameter is only applicable when building a custom status using the REPORT_BUNDLE_STATUS option. | Feature Set |
report_extent (Optional) |
A rectangular extent defining the area for which the status will be built. This parameter is only applicable when building a custom status using the REPORT_BUNDLE_STATUS option. Note that the area_of_interest parameter allows you to specify an area of interest that is nonrectangular.
| Extent |
Derived Output
Name | Explanation | Data Type |
output_folder | The output service URL. | String |
Code sample
Delete the status information for a cache.
# Name: ManageMapServerCacheStatus.py
# Description: The following stand-alone script demonstrates how to delete
# Status of cache using ManageMapServerCachStatus tool
# Requirements: os, sys, time and traceback modules
# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
# "sys.argv[]"
# Import system modules
import arcpy
from arcpy import env
import os, sys, time, datetime, traceback, string
# Set environment settings
env.workspace = "C:/data"
# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapService"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = ""
manageMode = "DELETE_CACHE_STATUS"
numOfCachingServiceInstances = "2"
outputFolder = ""
areaOfInterest = ""
reportExtents = ""
currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = 'C:/data/report_%s.txt' % arg1
# print results of the script to a report
report = open(file,'w')
# use "scales[0]","scales[-1]","scales[0:3]"
try:
starttime = time.clock()
result = arcpy.ManageMapServerCacheStatus_server(inputService,
manageMode, scales,
numOfCachingServiceInstances,
outputFolder,
areaOfInterest,
reportExtents)
finishtime = time.clock()
elapsedtime = finishtime - starttime
#print messages to a file
while result.status < 4:
time.sleep(0.2)
resultValue = result.getMessages()
report.write ("completed " + str(resultValue))
print("Reported the Bundle status for scale =" + str(scales[-1]) + "of " + \
serviceName + "at " + outputFolder + "\n using specified feature class " + \
areaOfInterest + " in " + str(elapsedtime) + " sec \n on " + arg2)
except Exception as e:
# If an error occurred, print line number and error message
tb = sys.exc_info()[2]
report.write("Failed at step 3 \n" "Line %i" % tb.tb_lineno)
report.write(str(e))
report.close()
Environments
Licensing information
- Basic: Yes
- Standard: Yes
- Advanced: Yes