Today I was called in to investigate why Search was not working at all for end users in one of our Purple environments
SESSION DB ISSUES
First off – I couldn’t even connect to the SSP Admin site
I was getting the dreaded Server N Application screen:
Turns out the default Sessionstate value in the web.config
sessionState mode="SQLServer" timeout="60" allowCustomSqlDatabase="true" partitionResolverType="Microsoft.Office.Server.Administration.SqlSessionStateResolver, Microsoft.Office.Server, Version=220.127.116.11, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
Had been replaced by a custom value:
sessionState mode="SQLServer" timeout="20" allowCustomSqlDatabase="true" sqlConnectionString="PurpleSessionDB"
I found that reverting to the original sessionstate value completely resolves this issue
So I got onto the SSP Admin site – the Hosts file on the Index server was a mess of REMs – this is how I configured it so that WFE04 (172.28.91.3) is the dedicated crawl server:
NOTES ON CONFIGURING A DEDICATED FRONT-END WEB SERVER FOR CRAWLING
Front-end Web servers are used by Microsoft Office SharePoint Server 2007 to crawl content in SharePoint sites in your server farm
A front-end Web server is any server in your farm that is running the Windows SharePoint Services Web Application service
Content that is external to the farm is accessed directly by the index server, without the help of a front-end Web server
The index server sends requests to each front-end Web server in the farm. These requests include the start address from which to start crawling, what file types and how many items to get. The front-end Web servers get the requested content from the SharePoint sites in the farm and forward that content to the index server for indexing
Recommended to use a dedicated front-end Web server if crawling a server farm that contains more than 500 gigabytes (GB) of content
Can specify any front-end Web server in your farm that is not part of a network load balanced cluster
Must ensure that the Windows SharePoint Services Web Application service is running on the front-end Web server that you want to use for crawling content
For best performance, the recommendation is to configure the index server as the dedicated front-end Web server for crawling if the index server has the memory capacity for both roles
By using the same server as both the index server and dedicated front-end Web server this eliminates the need for the index server to send requests to a different server when crawling content. Consequently this boosts crawl performance and reduces the overall traffic on the network
WHEN NOT TO CONFIGURE A DEDICATED FRONT-END WEB SERVER FOR CRAWLING
Another application is running on the index server
• Doing so might mean that those applications (such as the Excel Calculation service) can no longer communicate with other servers in the farm
• If other applications are running on the index server - must first move those applications to another application server before configuring a dedicated front-end Web server for crawling.
The index server is not also the query server. Configuring a dedicated front-end Web server for crawling can disable the index server's ability to propagate the index to another server
TWO WAYS TO CONFIGURE A DEDICATED FRONT-END WEB SERVER FOR CRAWLING
1. Use the Configure Office SharePoint Server Search Service Settings on server page in Central Administration.
2. Update the Hosts file directly (see Purple environment notes above)
When crawling content - Office SharePoint Server 2007 reads the Hosts file to determine whether to use all front-end Web servers or a dedicated server for crawling content in your server farm
When all front-end Web servers are used for crawling content in your server farm, the Hosts file contains only the loopback address of the index server, as shown in the following example:
When you use the Configure Office SharePoint Server Search Service Settings on server page in Central Administration to select a dedicated front-end Web server for crawling, the SharePoint timer service writes one or more entries to your Hosts file, depending on the number of Web applications that exist in your server farm.
• These entries include the names of the Web applications in your farm and the IP address of the server that you selected as the dedicated front-end Web server for crawling
• In some cases, the timer service writes the incorrect IP address to your Hosts file
o Things that cause the timer server to add an incorrect IP address to the Hosts file include:
The server that you specified as your dedicated front-end Web server for crawling has multiple IP address assigned to one or more network cards.
Network load balancing is being used in your server farm
When you use the Configure Office SharePoint Server Search Service Settings on server page in Central Administration to specify a dedicated front-end Web server for crawling, you cannot change the Hosts file manually if the timer service adds the wrong IP address. This is because the timer service repeatedly overwrites the entries in the Hosts file every few minutes. If this occurs, you must remove the Host file entries made by the timer service and use the Configure Office SharePoint Server Search Service Settings on server page in Central Administration to specify that all front-end Web servers are used for crawling
CONFIGURE A DEDICATED FRONT-END WEB SERVER FOR CRAWLING BY EDITING THE HOSTS FILE DIRECTLY
Before you can configure the Hosts file, you must collect the following information:
• The base or host header name of each Web application in your farm that you will crawl.
• IP address of the server you want to use as the dedicated front-end Web server for crawling