What’s in a (pool) Name?

A customer decided to set up a new Lync environment and dutifully followed “Migration from Office Communications Server 2007 R2 to Lync Server 2010”. They got as far as Phase 3: Deploy Lync Server 2010 Pilot Pool and hit a road block.
They were presented with this when attempting to Publish Topology

image

 

Error: An error occurred: "Microsoft.Rtc.Management.Deployment.DeploymentException" "A trusted service with the type "Microsoft.Rtc.Applications.Cas" and the fully qualified domain name (FQDN) "sip.treyresearch.net" was found for a previous server version."

So what really happened? They simply chose to use the same pool name as they were using in their Legacy OCS 2007 R2 Pool, i.e. they had naming convention as follows:

OCS Pool Name: sip.treyresearch.net
Lync Pool Name: sip.treyresearch.net

Now, this didn’t appear to be a big deal, until they realized that their OCS servers were now non-functional and the Front-End Services won’t start. When attempting to start the services they were presented with an error

Windows could not start the Office Communications Server Front-End on Local Computer. For more information, review the System Event Log. If this is a non-Microsoft service, contact the service vendor, and refer to service-specific error code -3287185878. Error 0xC3EE79D6

The error 0xC3EE79D6 actually points to a problem with certificates

x:\>lcserror 0xC3EE79D6
0xC3EE79D6 -> (ES_E_HTTP_INIT_FAILED_INVALID_CERTIFICATE)

This is a misnomer, the actual problem is actually with the AD Objects which got created when Enable-CsTopology was run on the Lync Server. What it probably did was register another object with the same SPN as the OCS server pool name. Unfortunately, I don’t have any data to back this hypothesis.

To resolve the issue we need to remove Lync and all the entries that were created in the Active Directory by Lync and then restart OCS services. The following steps are meant to be used in a lab/test environment only, use them at your own risk. Please call Product Support before proceeding with any of the steps noted below.

  1. Clean up Active Directory
    • Take a back-up of your Active Directory (Full system back-up on a domain controller)
    • Download and extract ADExplore from Windows Sysinternals. (You can take a Snapshot of AD using this tool as well)
    • Locate RTC Service container. For Example, “CN=RTC Service,CN=Services,CN=Configuration,DC=TreyResearch,DC=net”
    • Within the RTC Service container locate and then delete “CN=Topology Settings”.
    • Now go through each of the containers and the objects within them. You should delete anything which has the “WhenCreated” attribute with a date/time stamp that is same as the date/time when you ran the Enable-CsTopology.
    • Be careful while deleting items, you do not want to delete anything which is being used by OCS as you might end up breaking OCS.
    • Wait for the replication to complete or force a replication by using ReplMon.exe
    • Start OCS services on your Front-End and test connectivity
  2. Clean up the partial Lync install
    • Launch a Command Prompt with elevated privileges.
    • Navigate to <Lync-install-path>\Deployment folder.
    • Run bootstrapper.exe /scorch
    • Uninstall all Lync Components from the server.
    • Remove any databases that got created as part of the “Publish Topology” in your SQL Backend.

The technet article has been updated to clearly indicate that the pool name must be unique. Here is what it says:

 "The pool or server fully qualified domain name (FQDN) that you define for the pilot must be unique. It cannot match the name of the currently deployed Office Communications Server 2007 R2 pool, or any other servers currently deployed."