More

What needs to be done to ArcGIS Server if the server machine/host name is changed?

What needs to be done to ArcGIS Server if the server machine/host name is changed?


We have a Windows Server 2008 where ArcGIS Server 10 was installed. Not much has been done with the machine yet, but the name of the machine had to be changed after the ArcGIS installation. The old server name was DAYTONA and the new name of the server is PIGIRON (names changed to protect the innocent).

In the server activity log there is a message: "Machine daytona is not a valid server container. Machine daytona is not found."

I also see an error in the system event log that reads: "DCOM was unable to communicate with the computer daytona using any of the configured protocols."

I found a reference to daytona in the file C:Program Files (x86)ArcGISServer10.0serversystemServer.dat, but when I remove the machine reference in this file, save it, and restart the SOM, the machine reference gets put back into this file. This leads me to believe that there are other things that need to be updated because of the server name change.

I found something on ESRI's website about doing this on a Linux or AIX box and the three step solution was uninstall ArcGIS, rename the server, install ArcGIS. I might end up doing that, but thought there might be a way to do it with out reinstalling everything.

The SOC is not listed in ArcCatalog under this GIS Server. We tried adding it anyway, and then removing it, but that didn't work.


It should be sufficient to just re-run both Post-Installs. If that doesn't do it, you'll likely need a full reinstall.


For me, just full reinstall AGS 10 for Java plataform works.

Remove, install and run post install.


  1. Stop arcgis server service
  2. modify server.dat
  3. start service

Perform any of the following workarounds to resolve the issue:​​​

Run ArcGIS Administrator with administrator permissions

  1. Click Windows Start Menu > All Programs > ArcGIS.
  2. Right-click ArcGIS Administrator, and select Run as administrator.

Close all ArcGIS Desktop applications prior to running ArcGIS Administrator

Ensure ArcGIS Desktop applications such as ArcMap and ArcCatalog are closed before launching ArcGIS Administrator.

Change the Product and License level via batch file

  1. Launch Notepad.
  2. Enter the following in Notepad:
  1. Save the file as a .bat file.
  2. Run the file to launch ArcMap with the preferred product and license level.

Change the Product and License level via Windows Registry Editor

Edit the following registry keys according to the license level.

  1. Open the Registry Editor. Navigate to Start > Run, and type regedit. Click OK.
  2. Navigate to the license folder in the following path:

  1. Right-click the SOFTWARE_CLASS string and click Modify.
  2. Change the value data according to the license level as per below:
    • For Basic: Viewer
    • For Standard: Editor
    • For Advanced: Professional

  1. Right-click the SEAT_PREFERENCE string and click Modify.
  2. Change the value data according to the license type as written below:
    • For Concurrent Use: Float
    • For Single Use: Fixed

For more information, please refer to the Related Information links below.


Web Connector Setup

The Web Connector requires the complete Microsoft .NET Framework 4 to be installed. This means that both the Microsoft .NET Framework 4 Client Profile and the Microsoft .NET Framework 4 Extended must appear in the list of installed programs. If either of these is not installed, you must install it.

The Web Connector also requires Internet Information Services (IIS) version 6 (or higher) to be installed and turned on. If IIS is not turned on, it can be installed and / or turned on by accessing the Windows Features on your operating system. If you are turning on IIS for the first time, make sure that the Web Management Tools and World Wide Web Services are both turned on.

You must have completed and verified your Tracking Server installation before setting up the Web Connector.

If your system meets the minimum requirements for deploying the Web Connector (Tracking Server, IIS, and .NET Framework 4 installed), follow these steps. These steps are generalized to accomodate all operating systems, but be aware that slight differences exist between different operating systems.

If you have already completed the Tracking Server post installation setup, you may have already completed this step.

  1. Open the Tracking Server Post Install dialog box through the Start menu (Start > Programs > ArcGIS Tracking Server > Post Install).
  2. Click "Run" next to Deploy Web Connector. The Deploy Web Connector dialog box appears.
  3. Click the Browse button and browse to the root directory of IIS. (typically "C:Inetpubwwwroot")
  4. Select the directory and click OK.
  5. The selected directory now appears in the text box on the Deploy Web Connector dialog box. Click Deploy to deploy Tracking Viewer.
  6. Click "Exit" to close the Tracking Server Post Install dialog box.

Make sure that you have administrative rights to do this.

If you are using a 64-bit operating system, you will need to specify the Framework64 folder instead.

This will isolate Tracking Server Web Connector from other Web applications you may also have running on IIS, allowing you to stop and start Tracking Server Web Connector without disturbing the other Web Applications.

If you created an application pool specifically for Tracking Server Web Connector (as recommended above), be sure to select that application pool to be used by the application. If you choose to use a different application pool (such as the default application pool), make sure that the application pool is set to use .NET Framework 4.0.

This may not be required for all operating systems and versions of IIS.

This may not be required for all operating systems and versions of IIS. The image below shows where this needs to be done if you are using IIS 6.

You may need to modify the properties of the "Web.config" file so it isn't read-only before editing the file.

In a standard installation, all three of these Tracking Server components will reside on your local machine. Regardless, it is always important to set these properties to the explicit name of the host machine for each component, or else some Web Connector features may not work when accessed externally. For example, Web Connector KML services will not be accessible from other machines if the Web Connector host name is not explicitly set.

  1. Start Tracking Server.
  2. Click on the Data Links tab.
  3. Double-click Generic Input to open the Generic Input Data Link Properties dialog box.
  4. Create a connection, or modify an existing connection, to use the input port specified for the Web Connector (default is 5555), the TCP Server transport protocol, and CSV text format (using default delimiters).

The following screenshot shows the default configuration required.

Depending on the exact sequence of steps you have followed, you may need to restart IIS or the Tracking Gateway before using the Web Connector.


Single Use

Single Use products require authorization on individual machines for use. You will need the authorization codes sent from Esri Customer Service to the contact email address referenced in the sales order during the authorization process. This email includes the authorization codes issued for each license in the order. In addition to finding the information in the email, if you already have an Esri Global Account, you can log in to the Esri Customer Care site, click on Authorization & Provisioning, then click on a product name to obtain its authorization code. If you do not yet have an Esri Global Account, you can create one at My Esri. You will receive an email confirmation and have access to Authorization & Provisioning on the Customer Care site.

For ArcGIS for Desktop Single Use, the authorization code starts with the letters ESU or EVA, followed by nine numeric digits, for example, ESU123456789. Follow these steps to complete the Single Use product authorization. (Contact information can be found at http://www.esri.com/about-esri/contact.)

Step 1: Select one of the three Single Use products.

Step 2: Click Authorize Now to launch the Software Authorization Wizard . The wizard will walk you through the online or offline authorization process.


Most (I think ALL) SSL certificates are domain-name-based, so there should be no need to get a new certificate as long as the hostname of the server will be the same after the move.

It will require a DNS change, timed with the move, however.

No, SSL is tied to the domain name, not the public IP address. For your prep though, you should set your DNS TTL to be low, so that propagation is quick.

The only time SSL and IP clash is when you are working with multiple SSL certs on a single IIS box.

6 years later, I wanted to add a quick edit to this one. I know the question wasn't about assigning an SSL cert to an IP, but that is possible.

""An SSL certificate is typically issued to a Fully Qualified Domain Name (FQDN) such as "https://www.domain.com". However, some organizations need an SSL certificate issued to a public IP address. This option allows you to specify a public IP address as the Common Name in your Certificate Signing Request (CSR). The issued certificate can then be used to secure connections directly with the public IP address (e.g., https://123.456.78.99.).""

SSL certificates are tied to a single IP address in so far as that you can only have one certificate bound to a given IP address. The certificates themselves are expected to match the Common Name (CN) which is typically the hostname entered into DNS and configured for the service (IMAP, HTTPS, SMTP, etc).

That said the moving of servers and changing the IP address is not a problem so long as you take the necessary steps to update the DNS for the respective hostname entry to point to the new IP address. As mentioned you can limit the potential time by lowering the TTL so that the change propagates quickly, you can also make the DNS IP address change before actually moving the server so the update will go into affect before the change and thus lowering the possible unreachability.


6 Answers 6

It is unwise to run SQL Server with any other product, including another instance of SQL Server. The reason for this recommendation is the nature of of how SQL Server uses the OS resources. SQL Server runs on an user mode memory management and processor scheduling infrastructure called SQLOS. SQL Server is designed to run at peak performance and assumes that is the only server on the OS. As such the SQL OS reserves all RAM on the machine for SQL process and creates a scheduler for each CPU core and allocates tasks for all schedulers to run, utilizing all CPU it can get, when it needs it. Because SQL reserves all memory, other processes that need memory will cause SQL to see memory pressure, and the response to memory pressure will evict pages from buffer pool and compiled plans from the plan cache. And since SQL is the only server that actually leverages the memory notification API (there are rumors that the next Exchange will too), SQL is the only process that actually shrinks to give room to other processes (like leaky buggy ASP pools). This behavior is also explained in BOL: Dynamic Memory Management.

A similar pattern happens with CPU scheduling where other processes steal CPU time from the SQL schedulers. On high end systems and on Opteron machines things get worse because SQL uses NUMA locality to full advantage, but no other processes are usually not aware of NUMA and, as much as the OS can try to preserve locality of allocations, they end up allocating all over the physical RAM and reduce the overall throughput of the system as the CPUs are idling on waiting for cross-numa boundary page access. There are other things to consider too like TLB and L2 miss increase due to other processes taking up CPU cycles.

So to sum up, you can run other servers with SQL Server, but is not recommended. If you must, then make sure you isolate the two server to your best ability. Use CPU affinity masks for both SQL and IIS/ASP to isolate the two on separate cores, configure SQL to reserve less RAM so that it leaves free memory for IIS/ASP, configure your app pools to recycle aggressively to prevent application pool growth.


3 Answers 3

Basically, when you failed to connect to your SQL Server, the issue could be:

  1. Network issue,
  2. SQL Server configuration issue.
  3. Firewall issue
  4. Client driver issue
  5. Application configuration issue.
  6. Authentication and logon issue.

Step 1: Network issue

You might be able to make local connection without a working network, but that's a special case. For remote connection, a stable network is required. The first thing to trouble shoot SQL connectivity issues is to make sure the network we rely on is workable and stable. Please run the following commands:

ping -a (use -4 and -6 for IPv4 and IPv6 specifically) ping -a nslookup (type your local and remote machine name and IP address multiple times)

Be careful to see any mismatch on the returned results. If you are not able to ping your target machine, it has high chance that either the network is broken or the target machine is not running. It's possible the target machine is behind a firewall and the firewall blocks the packets sent by ping, though. Windows firewall does not block ping (ECHO) packet by default. The correctness of DNS configuration on the network is vital to SQL connection. Wrong DNS entry could cause of all sorts of connectivity issue later. See this link for example, "Cannot Generate SSPI Context" error message, Poisoned DNS.

Step 2: SQL Server configuration issue

You need to make sure the target SQL Server is running and is listening on appropriate protocols. You can use SQL Server Configuration Manager (SCM) to enable protocols on the server machine. SQL Server supports Shared Memory, Named Pipes, and TCP protocols (and VIA which needs special hardware and is rarely used). For remote connection, NP and/or TCP protocols must be enabled. Once you enabled protocols in SCM, please make sure restart the SQL Server.

You can open errorlog file to see if the server is successfully listening on any of the protocol. The location of errorlog file is usually under: %ProgramFile%Microsoft SQL Server/MSSQLxx.xxx/MSSQL/Log If the target SQL instance is a named instance, you also need to make sure SQL Browser is running on the target machine. If you are not able to access the remote SQL Server, please ask your admin to make sure all these happen.

Step 3: Firewall issue

A firewall on the SQL Server machine (or anywhere between client and server) could block SQL connection request. An easy way to isolate if this is a firewall issue is to turn off firewall for a short time if you can. Long term solution is to put exception for SQL Server and SQL Browser.

For NP protocol, please make sure file sharing is in firewall exception list. Both file sharing and NP use SMB protocol underneath. For TCP protocol, you need put the TCP port on which the SQL Server listens on into exception. For SQL Browser, please put UDP port 1434 into exception. Meanwhile, you can put sqlservr.exe and sqlbrowser.exe into exception as well, but this is not recommended. IPSec between machines that we are not trusted could also block some packets. Note that firewall should never be an issue for local connections.

Step 4: Client driver issue

At this stage, you can test your connection using some tools. The tests need to be done on client machine for sure.

First try: telnet You should be able to telnet to the SQL server TCP port if TCP is enabled. Otherwise, go back to check steps 1-3. Then, use OSQL, SQLCMD, and SQL Management Studio to test sql connections. If you don't have those tools, please download SQL Express from Microsoft and you can get those tools for free.

OSQL (the one shipped with SQL Server 2000) uses MDAC. OSQL (the one shipped with SQL Server 2005 & 2008) uses SNAC ODBC. SQLCMD (shipped with SQL Server 2005 & 2008) uses SNAC OLEDB. SQL Management Studio (shipped with SQL Server 2005 & 2008) uses SQLClient.

Possilbe command use be: osql -E -SYour_target_machineYour_instance for Windows Auth osql -Uyour_user -SYour_target_machineYour_instance for SQL Auth

SQLCMD also applies here. In addition, you can use “-Stcp:Your_target_machine, Tcp_port” for TCP, “-Snp:Your_target_machineYour_instance” for NP, and “-Slpc:Your_target_machineYour_instance” for Shared Memory. You would know if it fails for all protocols or just some specific procotols.

At this stage, you should not see general error message such as error 26 and error 40 anymore. If you are using NP and you still see error 40 (Named Pipes Provider: Could not open a connection to SQL Server), please try the following steps: a) Open a file share on your server machine. b) Run “net view your_target_machine” and “net use your_target_machineyour_share” (You can try Map Network Drive from Windows Explorer as well) If you get failure in b), it's very likely you have OS/Network configuration issue, which is not SQL Server specific. Please search on internet to resolve this issue first.

You can try connection using both Windows Authentication and SQL Authentication. If the tests with all tools failed, there is a good chance that steps 1-3 were not set correctly, unless the failure is logon-related then you can look at step 6.

If you succeeds with some of the tools, but fails with other tools, it's probably a driver issue. You can post a question on our forum and give us the details.

You can also use “windowssystem32odbcad32.exe” (which ships with Windows) to test connection by adding new DSN for various drivers, but that's for ODBC only.

Step 5: Application issue

If you succeed with steps 1-4 but still see failure in your application, it's likely a configuration issue in your application. Think about couple of possible issues here. a) Is your application running under the same account with the account you did tests in step 4? If not, you might want to try testing in step 4 under that account or change to a workable service account for your application if possible. b) Which SQL driver does your app use? c) What's your connection string? Is the connection string compatible to your driver? Please check http://www.connectionstrings.com/ for reference.

Step 6: Authentication and logon issue This is probably the most difficult part for sql connectivity issues. It's often related to the configuration on your network, your OS and your SQL Server database. There is no simple solution for this, and we have to solve it case by case. There are already several blogs in sql_protocols talking about some special cases and you can check them see if any of them applies to your case. Apart from that, things to keep in mind: a) If you use SQL auth, mixed authentication must be enabled. Check this page for reference http://msdn.microsoft.com/en-us/library/ms188670.aspx b) Make sure your login account has access permission on the database you used during login ("Initial Catalog" in OLEDB). c) Check the eventlog on your system see if there is more information

Sorry for this wall of text, i hope that something from here can help you solve your issue!


R eplication and Failover for EJBs and RMIs

For clustered EJBs and RMIs, failover is accomplished using the object's replica-aware stub. When a client makes a call through a replica-aware stub to a service that fails, the stub detects the failure and retries the call on another replica.

With clustered objects, automatic failover generally occurs only in cases where the object is idempotent. An object is idempotent if any method can be called multiple times with no different effect than calling the method once. This is always true for methods that have no permanent side effects. Methods that do have side effects have to be written with idempotence in mind.

Consider a shopping cart service call addItem() that adds an item to a shopping cart. Suppose client C invokes this call on a replica on Server S1. After S1 receives the call, but before it successfully returns to C, S1 crashes. At this point the item has been added to the shopping cart, but the replica-aware stub has received an exception. If the stub were to retry the method on Server S2, the item would be added a second time to the shopping cart. Because of this, replica-aware stubs will not, by default, attempt to retry a method that fails after the request is sent but before it returns. This behavior can be overridden by marking a service idempotent.


RPC ‘Server is unavailable’ Errors

So what would cause an “RPC server unavailable” error? Well, let’s say that one service on your computer needs to communicate with another, so it contacts the RPC server on the computer to initiate the exchange. The RPC server uses ports on your computer to “listen” and “talk”, and it is the server that does the actual enabling communication between services, whether they are networked or local. If the call to the RPC server fails because the server is unavailable, does not respond, cannot write to memory, or cannot open a port, then the “RPC server is unavailable” error is triggered.


Robot Framework - SSH library - Editing a file on remote server

I am writing a test case in Robot Framework where in, I have to either copy the file from the local machine (windows) to the remote server (linux) or create a new one at the location. I have used multiple sudo su - command to switch users to root user to reach the desired host. As a result of this, I am not able to use Put File Keyword from SSH Library to upload the file. I have reached at the desired folder location by executing the commands with Write keyword. Since there is no option left (thats what i realize with my limited knowledge on Robot Framework), i started creating a new file with vi <filename> command. I have also reached the INSERT mode of the file, BUT i am not able to edit text into the file.

Can someone please suggest me how can i either

  1. Copy the file from local windows machine to remote linux server AFTER multiple SU commands (Switch User)
  2. Create a new text file and enter the content.

Please See : the new file which is being created / copied is a certificate file. Hence i do not wish to write the entire content of the certificate in my test suite file

The entire test case looks something like this

In the step Check Auth Certificate, the certificate is checked to be present or not, if present -> delete the current certificate and create the new one (either create a new file or upload from local) and if it not there create a new certificate


Watch the video: ArcGIS Enterprise: Managing ArcGIS Server