001487: Failed to update the published service with the server-side data location. Please see the server’s log for more details


Ho ho ho…getting this error when trying to publish a map? After upgrade? I got this error after upgrade from 10.3.1 and 10.4.1. I made several calls to Esri support, no help at all, they were thinking about file permission. I said what? How come file permission got change after upgrade? It doesn’t make sense and I said the account for ArcGIS server service is member of Administrator group and should have full permission to any files/folders.

Anyway…let me give you some background. After upgrade, I tried to publish a simple map that using Oracle database, so it means I used registered database from data store, it kept fail and threw the error. I checked the server log and I found this:

Failed swizzling the service.

Then

Failed to rename cache folder.

Then

Failed to create the service.: Updating the server connection string for layer Entries failed. Attempted connection string was ENCRYPTED_PASSWORD=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;SERVER=sde;INSTANCE=”DSID=ffffffffffffffffffffffff”;DBCLIENT=oracle;DB_CONNECTION_PROPERTIES=TEST;PROJECT_INSTANCE=sde;USER=ARCSDE;VERSION=SDE.DEFAULT;AUTHENTICATION_MODE=DBMS. Table name is ARCSDE.COUNTIES. Please verify the data exists on the server.

Wow..first..what is swizzling? like mixing drink? And the last error message that made me puzzling, what? Verify the data exists on the server?

I did run Validate All on Server Manager, all showed green checked and did the same from ArcCatalog, all showed green as well. So it meant both from server and from local, it could connect and verify the database connection. So what is wrong then?

As I mentioned in the beginning, I called Esri support and I did my own search on Google. I found some interesting info.

  1. Bug – what? bug? Really?, here is the link, http://support.esri.com/download/7397 . Then it would be easy for me, just apply the patch and will work. Apparently no…the patch didn’t fix the issue.
  2. Found something in ArcGIS Pro reference, http://pro.arcgis.com/en/pro-app/tool-reference/tool-errors-and-warnings/001001-010000/tool-errors-and-warnings-01476-01500-001487.htm . Well…it didn’t make sense for my case.
  3. Found this thread, https://geonet.esri.com/thread/173653 … Well…very promising…until someone named, “Buddhatown”, gave a link
  4. Here is the link, https://geonet.esri.com/thread/177553#comment-614422 . Some gave steps on how to publish a service “manually” which is create MSD file and then publish from Admin site.
  5. Finally, inside that thread, someone named “twheagle-co-nz-esridist” gave this tip..THIS IS REAL HELP. Exactly the same as my case.

 

Let me give you my tips on how to fix:

  1. Check if your …\config-store\data has dsconnections.lst file or not, if not, continue below otherwise, please stop, it doesn’t apply to your caseJ.
  2. Find other site that working fine, has the same connection/registered database, copy the whole \data folder to the broken site AND copy dsconnections.lst file to all servers that member of the site in this location …\ArcGIS\Server\DatabaseSupport. REMEMBER: when you do that, you must stop ArcGIS server service on both source and target.
  3. If you can’t find other site that working fine, if you have multiple servers in a site, remove all servers and left only one server in the site (the idea is to make only one server/site), on Server Manager go to Site – Data Store, remove all Registered Databases entries and Registered Folders entries. Re-entry Register Database first until finish and continue to Register Folder. Make sure when you register first database, check if it created dsconnections.lst file on config-store\data folder. Otherwise, you might need to restart the server.

Those tips that I mentioned, fixed my issue. Thank you very much to those people in the Esri forum threads that give information and idea.

Meanwhile, I have some questions to Esri folks if might get chance to read my post,

  1. Why created dsconnections.lst file on both config-store and each server? I saw there were some inconsistency such as if I have multiple servers in a site, not all servers have identical file compare to each other and compare to config-store.
  2. Why created dsconnections.lst file on local if you are going to use the file on config-store folder?

Suggestion: if anytime we run validation using ArcCatalog and the result is green, why not copy the file from the local to config-store folder and to all servers member of the site (synchronization) and the other way from server manager. By that, all servers in the site and config-store folder will have identical file. Or to make it simple, why maintain critical configuration of a site in local server while you have a central location \config-store and \directories.

 

GOOD LUCK!!!

Collect All Service Properties Information in Site


You can find your service properties information from ArcGIS server manager or admin but how about if you want to see all of your services’ properties? you can run a script and see from there. I found this script was really useful when i wanted to check if any publisher published their service without accepting default value, for example: change minimum instances or maximum instances or maximum idle time or different cluster. Or with a little modification, you can query some other information.

Hopefully you find this script is useful for you.

Cheers…

 

#-------------------------------------------------------------------------------
# Name: List_Svc_properties.py
# Purpose: List All Started Services and their properties
#
# This script could be scheduled to run at a regular interval.
#
# Author: Muryadi Oey
#
# Created: 03/11/2016
# Copyright: (c) muryadioey 2016
# Licence: <your licence>
#-------------------------------------------------------------------------------

# For Http calls
import httplib, urllib,json,urllib2

# For system tools
import sys, datetime

# For reading passwords without echoing
import getpass

#Get the current date
now = datetime.datetime.now()

# Defines the entry point into the script
def main(argv=None):

# ##########################################################################################################################
# Start of Variables
# ##########################################################################################################################

# Server name
##serverName = raw_input("Enter server name: ")
serverName = 'SERVER01'

# Admin/publisher user name and password
## username = raw_input("Enter user name: ")
## password = getpass.getpass("Enter password: ")
username = 'ARCGISADMIN'
password = 'passwordadmin'

# Log file location
filePath = r'\\server01\d$\temp\Svc_Properties.txt'
doc = open(filePath, 'w')
header = "Server;Service;Status;MinIns;MaxIns;MaxIdle;MaxStart;MaxUsage;MaxWait;IsolationLevel;Cluster"
doc.write(header +"\n")

# ###########################################################################################################################
# End of Variables
# ###########################################################################################################################
# Print some info
print
print "This script is to collect all services' information."
serverPort = 6080
print

# Create a list to hold folder names
folderList = []

# Create a list to hold stopped/started services
targetList = []

# Get a token
token = getToken(username, password, serverName, serverPort,doc)
if token is None:
print "Could not generate a token with the username and password provided."
doc.write("\nCould not generate a token with the username and password provided." +"\n")
doc.close()
return

folderList = getCatalog(token,serverName,serverPort,doc)

for folder in folderList:
count = targetList.__len__()
i =0
folderName = folder
print "Processing folder : " + folderName
#doc.write("\n"+ "Processing folder : " + folderName + "\n")
while(i < count):
targetList.remove(targetList.__getitem__(0))
i = i +1

# Construct URL to read folder
if folder == "ROOT":
folder = ""
else:
folder += "/"

folderURL = "/arcgis/admin/services/" + folder

# This request only needs the token and the response formatting parameter
params = urllib.urlencode({'token': token, 'f': 'json'})

headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}

# Connect to URL and post parameters
httpConn = httplib.HTTPConnection(serverName, serverPort)
httpConn.request("POST", folderURL, params, headers)

# Read response
response = httpConn.getresponse()
if (response.status != 200):
httpConn.close()
print "Could not read folder information."
doc.write("\n" + "Could not read folder information." +"\n")
return
else:
data = response.read()

# Check that data returned is not an error object
if not assertJsonSuccess(data,doc):
print "Error when reading folder information. " + str(data)
#doc.write("\n" + "Error when reading folder information. " + str(data)+"\n")
else:
print "Processed folder information successfully. Now processing services..."
#doc.write("Processed folder information successfully. Now processing services..." +"\n")
print

# Deserialize response into Python object
dataObj = json.loads(data)
httpConn.close()

counter = 0

# Loop through each service in the folder and stop or start it
for item in dataObj['services']:

fullSvcName = item['serviceName'] + "." + item['type']

# Construct URL to stop or start service, then make the request
statusURL = "/arcgis/admin/services/" + folder + fullSvcName + "/status"
httpConn.request("POST", statusURL, params, headers)
# Read status response
statusResponse = httpConn.getresponse()
if (statusResponse.status != 200):
httpConn.close()
print "Error while checking status for " + fullSvcName
doc.write("\n" + "Error while checking status for " + fullSvcName +"\n")
return
else:
statusData = statusResponse.read()

# Check that data returned is not an error object
if not assertJsonSuccess(statusData,doc):
print "Error returned when retrieving status information for " + fullSvcName + "."
doc.write("\n" + "Error returned when retrieving status information for " + fullSvcName + "." +"\n")
print str(statusData)
doc.write("\n" + str(statusData) +"\n")

else:

statusDataObj = json.loads(statusData)
status = statusDataObj['realTimeState']

minInstURL = "/arcgis/admin/services/" + folder + fullSvcName
httpConn.request("POST", minInstURL, params, headers)

# Collect all services information, you can also query any information available in Service properties
# Read status response
minInstResponse = httpConn.getresponse()
minInstData = minInstResponse.read()
minInstDataObj = json.loads(minInstData)
minIns = minInstDataObj['minInstancesPerNode']
maxIns = minInstDataObj['maxInstancesPerNode']
maxIdle = minInstDataObj['maxIdleTime']
maxStr = minInstDataObj['maxStartupTime']
maxUsg = minInstDataObj['maxUsageTime']
maxWait = minInstDataObj['maxWaitTime']
isoLvl = minInstDataObj['isolationLevel']
cluster = minInstDataObj['clusterName']
print (serverName + ';'+ str( fullSvcName) + ';'+ str(status) + ';'+ str(minIns) +';' + str(maxIns) +';' +str(maxIdle) +';' +str(maxStr) +';' +str(maxUsg) +';' +str(maxWait) +';' +str(isoLvl) +';' +str(cluster) )
doc.write(serverName + ';'+ str( fullSvcName) + ';'+ str(status) +';'+ str(minIns) +';' + str(maxIns) +';' +str(maxIdle) +';' +str(maxStr) +';' +str(maxUsg) +';' +str(maxWait) +';' +str(isoLvl) +';' +str(cluster) +'\n' )
httpConn.close()

print
doc.close()
return

def getCatalog(token,server,port,doc):
baseUrl = "http://{}:{}/arcgis/admin/services".format(server, port)
folderNameList = []
catalog = json.load(urllib2.urlopen(baseUrl + "/" + "?f=json&token=" + token))
print ' List of Folders :'
#doc.write(" List of Folders :" +"\n")
print '\tROOT'
#doc.write("\tROOT" +"\n")
folderNameList.append("ROOT")
if "error" in catalog: return
folders = catalog['folders']
for folderName in folders:
folderNameList.append(folderName)
print '\t'+folderName
#doc.write("\t"+folderName +"\n")
if "error" in catalog: return
else: return folderNameList
# A function to generate a token given username, password and the adminURL.
def getToken(username, password, serverName, serverPort,doc):
# Token URL is typically http://server[:port]/arcgis/admin/generateToken
tokenURL = "/arcgis/admin/generateToken"

params = urllib.urlencode({'username': username, 'password': password, 'client': 'requestip', 'f': 'json'})

headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}

# Connect to URL and post parameters
httpConn = httplib.HTTPConnection(serverName, serverPort)
httpConn.request("POST", tokenURL, params, headers)

# Read response
response = httpConn.getresponse()
if (response.status != 200):
httpConn.close()
print "Error while fetching tokens from admin URL. Please check the URL and try again."
doc.write("\n" + "Error while fetching tokens from admin URL. Please check the URL and try again." +"\n")
return
else:
data = response.read()
httpConn.close()

# Check that data returned is not an error object
if not assertJsonSuccess(data,doc):
return

# Extract the token from it
token = json.loads(data)
return token['token']
# A function that checks that the input JSON object
# is not an error object.
def assertJsonSuccess(data,doc):
obj = json.loads(data)
if 'status' in obj and obj['status'] == "error":
print "Error: JSON object returns an error. " + str(obj)
#doc.write("\n" + "Error: JSON object returns an error. " + str(obj) +"\n")
return False
else:
return True
# Script start
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))

Share on Upgrade ArcGIS Server to 10.3.1


Hello,

Finally, I have finished upgrade all servers, ArcGIS Server and Web Adapter 10.2.2 to 10.3.1. At least 20 + servers across production and non production. Since the upgrade was pretty smooth, specially for single server but for multiple servers environment, you need to be careful. Here are some notes that I can share with you all.

  1. When upgrade multiple servers environment, to make it fast, I removed all servers and left one in cluster and site. So the site was up and running.
  2. Upgraded all servers that outside the cluster/site.
  3. Run Validate All in Data Store to make sure that all Registered Databases and Folders are green.
  4. Upgrade the only server in the cluster/site. I saw that there are some minor changes in folder structures inside config-store and directory compare to 10.2.2.
  5. Added the rest servers into cluster/site.
  6. Make sure to delete all your ArcGIS server connection on ArcCatalog and create new one.

Feel free to share with me if you have something else.

 

Lycka Till!

ERROR ORA-01455 AFTER UPGRADED ARCGIS SERVER TO 10.3.1


You just upgraded your ArcGIS Server and Desktop to 10.3.1 and when you tried to connect to Oracle DB from SDE connection, it threw error:

Underlying DBMS error[ORA-01455: converting column overflows integer datatypeNo extended error.]

Image 55

Actually this error is not related to your new ArcGIS 10.3.1. it is due to your Oracle client that does not meet the minimum requirement. Try update your Oracle client to latest one. It should solve the issue.

Good Luck!!!

 

FINDING GHOST ARCSOC


Many times in many occasions, I came across with “Ghost ArcSOC”. What is Ghost ArcSOC? This is my term, it is basically ArcSOC process which you can see from Windows Task Manager, that running, consuming your server resources BUT the server is not part of any cluster. How come it happens? for my case, I have multiple servers in cluster, sometimes when I removed a server from a cluster, the ArcSOC process would disappear eventually but for some reasons, it wouldn’t. OR in another case for Ghost ArcSOC, one of your servers in a cluster didn’t crank up a ArcSOC process and caused your system degrades.

I created below Python script to make me easier and faster to identify this kind of issue.

</pre>

#-------------------------------------------------------------------------------
# Name: Finding_GHOST.py
# Purpose: List All Started Services, minimum instances and compare them against
# ArcSOC running on all servers
# This script could be used to find GHOST ArcSOC.GHOST ArcSOC is ArcSOC process that running on server
# but the service status is not running on ArcGIS Manager/Admin.
# If column FOUND = NO means ArcSOC process is running BUT Service status is STOPPED = GHOST is found
# Author: Oey
#
# Created: 09/15/2015
# Copyright: (c) Oey 2015
# Licence: <your licence>
#-------------------------------------------------------------------------------

# For Http calls
import httplib, urllib,json,urllib2

# For system tools
import sys, datetime

# For reading passwords without echoing
import getpass
import wmi

#Get the current date
now = datetime.datetime.now()

# Defines the entry point into the script
def main(argv=None):

# ##########################################################################################################################
# Start of Variables
# ##########################################################################################################################

# Server name - Pick a server name that the script will use to login on Admin console
serverName = 'ArcGIS1'

# list of Servers in environment
servers = ["ArcGIS1", "ArcGIS2","ArcGIS3"]

# Status of the Service
startStop = 'STARTED'
##startStop = 'STOPPED'

# Admin/publisher user name and password
username = 'admin'
password = 'admin_123'

# Log file location
filePath = r'\\ArcGIS1\d$\temp\Services_' + startStop + '_Services_' + str(now.year) + str(now.month) + str(now.day) + '.txt'
# ###########################################################################################################################
# End of Variables
# ###########################################################################################################################
doc = open(filePath, "w")
header = "Server,Service,Number of SOCs,Found\n"
doc.write(header)

# Print some info
print
print "This script detects " + startStop + " services in a folder."
print

serverPort = 6080
print

# Create a list to hold folder names
folderList = []

# Create a list to hold stopped/started services
targetList = []

# Get a token
token = getToken(username, password, serverName, serverPort,doc)
if token is None:
print "Could not generate a token with the username and password provided."
doc.write("\nCould not generate a token with the username and password provided." +"\n")
doc.close()
return

folderList = getCatalog(token,serverName,serverPort,doc)

for folder in folderList:
folderName = folder
print
print "Processing folder : " + folderName

# Construct URL to read folder
if folder == "ROOT":
folder = ""
else:
folder += "/"

folderURL = "/arcgis/admin/services/" + folder

# This request only needs the token and the response formatting parameter
params = urllib.urlencode({'token': token, 'f': 'json'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}

# Connect to URL and post parameters
httpConn = httplib.HTTPConnection(serverName, serverPort)
httpConn.request("POST", folderURL, params, headers)

# Read response
response = httpConn.getresponse()
if (response.status != 200):
httpConn.close()
print "Could not read folder information."
doc.write("\n" + "Could not read folder information." +"\n")
return
else:
data = response.read()

# Check that data returned is not an error object
if not assertJsonSuccess(data,doc):
print "Error when reading folder information. " + str(data)
doc.write("\n" + "Error when reading folder information. " + str(data)+"\n")
else:
print "Processed folder information successfully. Now processing services..."
# Deserialize response into Python object
dataObj = json.loads(data)
httpConn.close()
counter = 0

# Loop through each service in the folder and stop or start it
for item in dataObj['services']:

fullSvcName = item['serviceName'] + "." + item['type']

# Construct URL to stop or start service, then make the request
statusURL = "/arcgis/admin/services/" + folder + fullSvcName + "/status"
httpConn.request("POST", statusURL, params, headers)

# Read status response
statusResponse = httpConn.getresponse()
if (statusResponse.status != 200):
httpConn.close()
print "Error while checking status for " + fullSvcName
doc.write("\n" + "Error while checking status for " + fullSvcName +"\n")
return
else:
statusData = statusResponse.read()

# Check that data returned is not an error object
if not assertJsonSuccess(statusData,doc):
print "Error returned when retrieving status information for " + fullSvcName + "."
doc.write("\n" + "Error returned when retrieving status information for " + fullSvcName + "." +"\n")
print str(statusData)
doc.write("\n" + str(statusData) +"\n")

else:
# Add the stopped/started service and the current time to a list
statusDataObj = json.loads(statusData)

if statusDataObj['realTimeState'] == startStop:

# Find MINIMUM INSTANCES PER NODE, IF 1 or more then count into it
minInstURL = "/arcgis/admin/services/" + folder + fullSvcName
httpConn.request("POST", minInstURL, params, headers)

# Read status response
minInstResponse = httpConn.getresponse()
minInstData = minInstResponse.read()
minInstDataObj = json.loads(minInstData)
if minInstDataObj['minInstancesPerNode'] >= 1:
fullSvcNames = folderName + "." + fullSvcName

# Append it into list
counter = counter + 1
targetList.append(fullSvcNames)
#targetList.append([fullSvcName + "(" + str(minInstDataObj['minInstancesPerNode']) + ")" ])

httpConn.close()

# Check number of stopped/started services found
if len(targetList) == 0:
print "No " + startStop + " services detected in folder " + str(folderName)
print
##doc.write("\n\t" + "No " + startStop + " services detected in folder " + str(folderName) +"\n")
##else:
# Write out all the stopped/started services found
# This could alternatively be written to an e-mail or a log file

# ##########################################################################################
# START OF - This portion is to extract ArcSOC process on each servers
# ##########################################################################################

for server in servers:

#Flush dictionary
hitDict = {}
c= wmi.WMI(server)
ArcSOC = 0
for process in c.Win32_Process ():
if process.Name == "ArcSOC.exe":
ArcSOC = ArcSOC + 1
strCmdLine = process.CommandLine

# The data is: "D:\Program Files\ArcGIS\Server\bin\ArcSOC.exe" -XX:-CreateMinidumpOnCrash -Xmx64M -Dservice=maps.AZR_TST.MapServer "-Djava.class.path=D:\Program Files\ArcGIS\
astrVerify = "-Dservice="
ostrVerify = "-Djava.class"
a = strCmdLine.find(astrVerify)
o = strCmdLine.find(ostrVerify)
keyCheck = strCmdLine[a+len(astrVerify):o]
if keyCheck in hitDict:
stats = hitDict[keyCheck]

# Add 1 to tally of hits
stats[0] += 1

else:
# Add key with one hit
hitDict[keyCheck] = [1]

# Read through dictionary
for key in sorted(hitDict):

# Compare each ArcSOC with List of STATUS that collected from Server Admin
if key in targetList:

# Calculate total hit
totalDraws = hitDict[key][0]

# Construct and write the comma-separated line
line = server +"," + key + "," + str(totalDraws) + ",YES" +"\n"
line2 = server +"," + key + "," + str(totalDraws) + ",YES"
print line2
doc.write(line)
else:

# Calculate total hit
totalDraws = hitDict[key][0]

# Construct and write the comma-separated line
line = server +"," + key + "," + str(totalDraws) +",NO" +"\n"
line2 = server +"," + key + "," + str(totalDraws) + ",NO"
print line2

doc.write(line)
# ##########################################################################################
# END OF - This portion is to extract ArcSOC process on each servers
# ##########################################################################################

doc.close()
return

def getCatalog(token,server,port,doc):
baseUrl = "http://{}:{}/arcgis/admin/services".format(server, port)
folderNameList = []
catalog = json.load(urllib2.urlopen(baseUrl + "/" + "?f=json&token=" + token))
print ' List of Folders :'
##doc.write(" List of Folders :" +"\n")
print '\tROOT'
##doc.write("\tROOT" +"\n")
folderNameList.append("ROOT")
if "error" in catalog: return
folders = catalog['folders']
for folderName in folders:
folderNameList.append(folderName)
print '\t'+folderName
##doc.write("\t"+folderName +"\n")
if "error" in catalog: return
else: return folderNameList
# A function to generate a token given username, password and the adminURL.
def getToken(username, password, serverName, serverPort,doc):
# Token URL is typically http://server[:port]/arcgis/admin/generateToken
tokenURL = "/arcgis/admin/generateToken"

params = urllib.urlencode({'username': username, 'password': password, 'client': 'requestip', 'f': 'json'})

headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}

# Connect to URL and post parameters
httpConn = httplib.HTTPConnection(serverName, serverPort)
httpConn.request("POST", tokenURL, params, headers)

# Read response
response = httpConn.getresponse()
if (response.status != 200):
httpConn.close()
print "Error while fetching tokens from admin URL. Please check the URL and try again."
doc.write("\n" + "Error while fetching tokens from admin URL. Please check the URL and try again." +"\n")
return
else:
data = response.read()
httpConn.close()

# Check that data returned is not an error object
if not assertJsonSuccess(data,doc):
return

# Extract the token from it
token = json.loads(data)
return token['token']
# A function that checks that the input JSON object
# is not an error object.
def assertJsonSuccess(data,doc):
obj = json.loads(data)
if 'status' in obj and obj['status'] == "error":
print "Error: JSON object returns an error. " + str(obj)
#doc.write("\n" + "Error: JSON object returns an error. " + str(obj) +"\n")
return False
else:
return True
# Script start
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))
<pre>

CLONE ARCGIS SERVER


Yes, have you ever cloned your arcgis server? let say:

  • One day, for no reason, your server that hosting your ArcGIS server is down and the hardware is broken (RAM or hard drive or etc) but fortunately, so have backup its configuration file to different location.
  • One day, you want to create a new site that duplicate of your existing site.

All of those scenarios I mentioned above, you can do it by “cloning”. How is the cloning possibly? It is kind of simple, you only need is you can access to the server config-store and directory and able to get the files/folders. Do you want to know the detail? drop me a line. Disclaimer: Any negative side effects of cloning process is not my responsible. hahaha. PS: I know that there is an option for restoring, Backup & Restore

Update:

Here we go, the detail on how to clone:

1. As my previous information, you have to have access to your config-store and directory folders

2. Remove all files that have .rlock and .site from those folders. Make sure that nothing is locking the files (someone/system open/access), you also can stop ArcGIS server service if it is still running and using the files. Remove default folders such as \SampleWorldCities.Mapserver, \System and etc

3. Now you have “clean” config-store and directory folders.

4. Prepare the server – If you are using new ArcGIS server, you can “connect” it directly or if you are not using new ArcGIS server, you have to remove it from site or do back door by delete xml files from \server\framework\etc.

5. Create a new site and then stop ArcGIS server service.

6. Copy clean folder from number 3 to your new site and start ArcGIS server service.

7. Voila…you just cloned your server.

8. Good Luck

ISSUE AFTER UPGRADED ARCGIS SERVER TO 10.2.2


OK, you have upgraded your ArcGIS server from 10.1 to 10.2 and issue came up, such as

 

Server machine ‘nameofserver’ is currently being configured by another administrative operation. Please try again later.’

 

Or

The map was successfully published, however the service did not start automatically.

 

 

I got also similar issue when I upgraded to 10.2. I opened case with ESRI support but no luck. I did several investigations and troubleshoot while waiting for Esri to respond.

For your better information, I had more than two servers in cluster and it complicated when I did my troubleshooting. So I removed all servers (include removed them from site) and left only one server. I did some tests again but the errors were still the same, it kept saying “…Currently being configured by another administrative operation….” Which it didn’t make sense.

In my opinion, somewhere it still tried to access “a file” which been opened by something and locked it or for some reason it couldn’t read it. So I needed to close it. I tried by start and restart ArcGIS Server Service and continued with reboot the server itself. Still it didn’t help. Last resort, I tried to change the account that used in ArcGIS server service. Voila…it worked!!!! And I changed back to original account, it worked too…Eureka!!! By doing that, the server could access the file and didn’t complain about “being configured by another administrative.”

I hope this post can give you idea on how to troubleshoot issue after you upgraded your server to 10.2.

Good luck, fellas!