The configuration of a SharePoint farm could be broken into two parts:
- Initial deployment, e.g. adding a server to the farm and provisioning an indexer.
- Synchronization, i.e. continuous automatic activities to change and self heal the configuration of the Search feature accross the SharePoint farm based on farm level configuration changes and SSP configuration changes. Some of the changes are a replay of an administrative action in the Central Administration site.
 
The synchronization mechanism enhances the robustness of the system because it allows the farm to successfully manage servers with a certain amount of redundancy (e.g. a failure on one server will usually not interfere with the synchronization on another server).
 
SharePoint infrastructure
The WSS timer Service infrastructure executes jobs across the farm in the context of the farm administrator. Synchronization in MOSS Search and in WSS Search is coded into a set of jobs that periodically adapt the configuration of the Search service according to the configuration of other system components.
 
Replaying administrative actions
The synchronization process can also replay highly privileged administrative actions such as changing the Search NT service account. If the farm administrator is not a local administrator on the Search server, then the timer service asks the SharePoint Administration service ("SPAdmin") to perform this task on its behalf (SPAdmin runs as LocalSystem) via a .NET remoting channel.
 
WSS Search
When an administrator deploys (selects "Start" in the Central Administration Services on Server page server.aspx) the WSS Search service on a server, a "SharePoint Services Search Refresh" (more info below) job is created and immediately deployed on ALL the servers in the farm. This job runs every 5 minutes (by default). It automatically changes and self heals the configuration of the WSS Search service.
 
WSS: SPSearchServiceInstance
The "SharePoint Services Search Refresh" job calls into the Synchronize method of this instance on Online Search servers. For example, when a web application is created or a content database is added to an existing web application, it adds a start address to the Search content source and instructs the Search engine to index the new content on a regular basis. When a content database is removed, the start address is automatically removed.
 
WSS: SPSearchDataAccessServiceInstance
The "SharePoint Services Search Refresh" job calls into the Provision method of this instance on ALL servers. It configures the local server to allow communications with the Search SQL database. Specifically, it seeds the SQL connection information in the registry under the Search Applications hive (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Applications). This info is then utilized by the Search engine and by the Query provider.
 
MOSS
The synchronization work in MOSS Search is managed by a generic MOSS Shared Services infrastructure via Application Server and Shared Services jobs that execute every minute:
- The system uses the ISharedComponent interface to manage the lifecycle of Shared Applications like SearchSharedApplication. If the status is Provisioning then the Install() method is called and the status changes to Online. If the status is Online then the Synchronize() method is called.
- The system uses the ISharedServiceInstance interface to manage the lifecycle of Shared service instances like SearchServiceInstance and SearchDataAccessServiceInstance. If the status is Online then the Synchronize() method is called.
 
SearchServiceInstance
Adapts the local server to farm level configuration changes and to SSPs configuration changes. For example:
- Creates an indexing gatherer application for an SSP that has been assigned to an indexer.
- Removes a gatherer application from the old indexer when the SSP is not associated anymore with it.
- Creates a query gatherer application for an SSP on all Query servers.
- Removes a gatherer application from all Query servers when the SSP has been unprovisioned or left unassigned to an indexer.
- Creates a start address in the default content source.
- Deletes a start address from the default content source (only when the content source is idle, i.e. the gatherer is not indexing its start addresses).
 
SearchDataAccessServiceInstance
- Configures the local server to allow communications with the SSP and Search SQL databases. On a child farm, it allows the query provider to communicate with the databases of the central farm's SSP. Specifically, it seeds the SQL connection information in the registry under the Search Applications hive (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Applications). This info is then utilized by the Search engine and by the Query provider.
- Remove obsolete gatherer applications, i.e. applications that do not belong to a live SSP.
- Persists the IP address of the local server to help the functionality of the Dedicated WFE indexing feature.
 
SearchSharedApplication
 Persists application settings and instructions for the synchronizing code:
installGathererApplication - Create a new gatherer application on the indexer or import an existing one from the SSP database.
indexer - index server.
indexLocation - index location on index server.
newIndexLocation
- An optional setting when the index is moved on the same indexer.
needsReset
- Reset the index.
needsResume - Resume indexing (after backup/restore).
needsRestore - SSP Sql only restore.
 
Synchronization jobs
Application Server Timer Job
- Type: Microsoft.Office.Server.Administration.ApplicationServerJob
- Schedule: Once a minute.
- This job does not require the SharePoint Administration ("SPAdmin") service.
- It is designed to manage Shared service instances that do not perform highly privileged operations (e.g. configuring an NT service).
- The Search service instance (SearchServiceInstance) is managed by this job on Basic deployments.
 
Application Server Administration Service Timer Job
- Type: Microsoft.Office.Server.Administration.ApplicationServerAdministrationServiceJob
- Schedule: Once a minute.
- This job requires that the SharePoint Administration ("SPAdmin") service is running. Otherwise, it does not manage Shared service instances and an error is recorded in the event log.
- It is designed to manage Shared service instances that may perform highly privileged operations (e.g. configuring an NT service).
- The Search service instance (SearchServiceInstance) is managed by this job on non-Basic deployments.
 
Shared Services Provider Synchronizing Job
- Type:Microsoft.Office.Server.Administration.SharedResourceProviderJob
- Schedule: Once a minute.
- Automatically configures an SSP.
- If the status of the SSP is Provisioning, then call the Provision method of the SSP and change its status to Online.
- If the status is Online, then call the Synchronize method.
 
Shared Services Timer Job
- Type: Microsoft.Office.Server.Administration.JobScheduler
- Schedule: Once a minute.
- Schedules SSP jobs.
- A shared application can register a job to run with this scheduler. The job will run in the security context of the SSP web service account.
 
Indexing Schedule Manager on <index server name>
- Type: Microsoft.Office.Server.Search.Administration.IndexingScheduleJobDefinition
- Schedule: Once a minute.
- A MOSS Search SharePoint timer job that kicks off scheduled crawls.
- It utilizes the mstask.dll Windows Task Scheduler client DLL to find the next execution time.
 
Child farm content source discovery
- Type: Microsoft.Office.Server.Search.Administration.ChildFarmContentSourcesJobDefinition
- Schedule: Once every 15 minutes.
- A MOSS Search SharePoint timer job that runs on child farms, discovers web applications and registers them in the SSP database. Later on, the synchronizer on the central farm configures the default content source with a start address per registered child web application.

SharePoint Services Search Refresh
- Type: Microsoft.SharePoint.Search.Administration.SPSearchJobDefinition
- Schedule: Once every 5 minutes.
- It automatically changes and self heals the configuration of the WSS Search service.
 
Config Refresh
- Type: Microsoft.SharePoint.Administration.SPTimerJobConfig
- Schedule: Once a minute.
- A SharePoint job that runs on all servers. It refreshes the server cache, i.e. updates it with changes from the SharePoint Configuration database.
- The server cache resides here: "%ALLUSERSPROFILE%\Application Data\Microsoft\SharePoint\Config"