One of the servers in our large server farm crashed, and we replaced it with a new machine, taking the opportunity to give the server a new name and upgrade its application. However, we can't delete the old application from our farm. It comes up in Published Application Manager with a red circle and a line overlaying the standard application icon. When we view the application properties, a button appears with the statement, "Why is this read only?" Clicking this button reveals the following explanation: "The configuration data for application <myapp> could not be loaded. You will not be able to delete, change, or modify the application." We created a new farm for the upgraded application, and it's working fine. However, we want to remove the old application from the old farm and the old farm name from the new server. Any suggestions?

Citrix uses four Registry keys to control managed applications, the first two of which are simply application name lists for publishing applications to users:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ICABrowser\Parameters\AppName. This key contains the list of application names for the Windows NT scope for backward compatibility with old published applications on Citrix MetaFrame 1.0 and earlier versions.
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ICABrowser\Parameters\ManagedAppNames. This key contains the list of application names for the Citrix farm scope. These are the applications published for use in a Citrix server farm.
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\ManagedApplications. This key contains the list of subkeys for each Citrix farm application. Each key contains the parameters for the application and a subkey for each server from which the application is available.
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ICABrowser\Parameters\Neighborhood. The String Variable in this key is the name of the farm of which the server is currently a member.

Your problem is that when you have a ghost Registry entry in either the first or the second key without corresponding application information in the third key, the server farm sees the application but doesn't know how to edit it or use it. To set things straight, you must open regedit (regedt32 won't work well for this), go to the correct Registry key (in your case, the second key because you have published your applications in a server farm), and delete the appropriate entry for the application. Then, to refresh your master browser, type

Qserver /update

at the command prompt, or stop and restart the ICA Browser service on each server in the farm to update the information.

As a general rule, you should delete an old farm from a machine when you create a new farm. Your old farm will still show up as available in Program Neighborhood or in the Select Scope command. Sometimes, however, a farm won't let you delete it. In fact, Citrix doesn't recommend deleting a farm from the Registry, saying that the results are unpredictable. However, I have done it several times without incident. Try it at your own risk. Look in the fourth key for any server entries that have the farm's name, delete the entries, and reboot. After all servers reboot, load the Published Application Manager, and you should find that it is reset. If you choose Configure, only Join should be enabled. Run the wizard and join or create a new farm.