Shared SSP and Web-application creation in Sharepoint 2007 (Alternate URL Synchronizer)
At one of my customers we have a situation where we are Sharing the SSP from one Farm (i.e. Parent Farm) to another Farm (Child Farm). We also need to create a web-application with the same host header name (e.g. http://secure.msft.com) in both the Farms.
Following is the main crux of the issue:
1. We have a Parent Farm (This farm provides the SSP to child Farms), lets call this Farm ASIAFARM.
2. We create a web-app with url “secure.msft.com“ in the ASIAFARM, and the web-app is created.
3. Now we create the AAM entries for this web-app in the Parent farm (3 entries).
4. We now go to the Child Farm (This farm consumes the SSP provided by the Parent Farm), lets call this Farm USFARM.
5. We try creating a web-app with the same url i.e. “secure.msft.com“ in the USFARM and the web-app creation fails with the error: http://secure.msft.com is already routed to the Default zone of another application. Remove that mapping or use a different URL.
6. This is because of the reason that “Alternate URL Synchronizer” timer job syncs all the entries from the Parent Farm to the Child Farm and hence can’t create the web-app.
7. Then we disabled this (“Alternate URL Synchronizer” ) timer job in the Child Farm and deleted all the AAM entries from the Child Farm.
8. Then we tried creating a web-app with the same url i.e. “secure.msft.com“ in the USFARM and it succeeded. And we were able to create the additional AAM entries.
So bottom line is the (“Alternate URL Synchronizer” ) timer job Synchs the information (AAM) from Parent Farm into the Child Farms. If you want to take a look at the EXECUTE method of this timer job (using Reflector), just open the Assembly name: Microsoft.Office.Sharepoint.Administration
Class Name: AlternateUrlSynchronizerJob [This is basically a SEALED class).
After looking @ the source code of this TIMER JOB we found that it only writes the AAM (Alternate Access Mapping) from the Parent Farm to Child Farm, so now if you try to create a web-application with a host header that is already created in Parent Farm it will not be successful and it will not allow you to create a web-application in Child Farm with that host header. [PLEASE NOTE: This scenario only happens when you are sharing the SSP (Shared Service Provider) with two farms i.e. Child Farm uses SSP of Parent Farm, and that creates this Alternate URL Synchronizer Timer Job).
So be cautious (while architecting) when you propose this approach, as you will not be able to create a web-app with same host headers. I am still to find the answer for where all these AAMs are use (my *guess* is Search might be using it, dont what else would be using it).
As disabling this Timer Job (thru Central Admin-->Operations-->Timer Job Definition-->Disable) you will be able to create the web-apps requied in both the farms but not sure if you would be in a supported state, as we are still not aware of where all the AAMs are used.