Friday, February 27, 2009

Troubleshooting Windows SharePoint Services 3 Search using the logs.

Windows SharePoint Services 3.0 (WSS3)uses the same basic technology the Microsoft Office SharePoint Server 2007 (MOSS) uses. MOSS has a pretty good UI for determining the status of queries, configuration, etc. However, WSS3 does not provide much interface for anything when it comes to the search engine. In particular, I wanted to find out why a particular url was not being indexed.

I figured it must be somewhere in a database or log file. So, I looked in the log files (usually located at

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS

) and did see anything there. I looked in the Windows Event log and didn't find anything there. So, the only place left was the database. You should have a Search database (the database that has the word Search in it is usually the database you are looking for).

I found the MSSCRawlUrlLog table in the Search database. I found that it has a DisplayUrl column that will tell you what it tried to index. It has a column called ErrorDesc and an ErrorID column. I initially thought that the ErrorDesc was just description from the MSSCrawlErrorList (a look up table of all possible error ids), but it isn't. It is actually some other error description. Both error messages can be useful, however I find the one from the MSSCrawlErrorList table to be the most useful. Here is the query that takes all this into consideration.

select DisplayURl, l.ErrorDesc, el.ErrorMsg, LastTouchStart, HostID, StartAddressID from MSSCrawlUrlLog l
left outer join MSSCrawlErrorList el on (l.ErrorID = el.ErrorID)

order by DisplayURL,

If you want to take know what the coHostID lumn maps to, just look at the MSSCrawlHostList table. It also has an overview of crawl status. Here is a very simple, but useful query that tells you for each host the Success, Error, and Warning counts.

select * from dbo.MSSCrawlHostList


Ankit said...

Hi dear,

Even i ve checked all the host entries as well as all the services with proper login username but still MSSCrawlHostList table shows only central admin site name. I have read lots of blogs regarding error 2424 and services but all the things are absolutely fine.
But I found your blog very clear about the things.
Do you have any other logic to check or to get my site name into that table. As the sp of that table is only for get and update no foreign key.So from where it gets the host name. Kindly let me know all the ways so that i can test them for my application.

No error generated in event and sharepoint logs.

Waiting for your reply

Brent V said...

Hi Ankit,

One thing you can try is to restart the server. When SharePoint restarts everything it tends to spit out more events to the Windows event log.

You will also want to make sure you enable verbose logging in SharePoint. You can do that by going to Central Administration > Operations > Diagnostic Logging. Choose "Category" = "All" Events, "Least critical event to report to the event log" = "Information", and "Least critical event to report to the trace log" = "Verbose".

This may help, but to get to a meaningful error message I usually have much better luck looking in the tables as described in this blog entry.

As far as your question about the table, I don't understand what your question is.

Since only Central Admin is in the MSCrawlHostList that makes me think you may actually have a configuration issue such that you are not telling SharePoint to crawl your site. Check Central Administration > Application Management > Content Databases, then click your content database. On the Manage Content Database Settings screen make sure you have specified the Search Server.

You can also create a new SharePoint site and give all users full control. Be sure to specify the Search Server for it, and see if it gets crawled. If it does, it is likely permissions on your other SharePoint site.

I hope that helps. Thank you for the kind comments. I wish you luck. I have struggled with issues like this for years. I don't know why Microsoft can't make it more like their Search Server 2008 Express. This program has an easy to use log and auditing interface. It is easy to see what the issues are. They seem to want to hide the useful information in tables and give no interface for the end user. Poor design or at least incomplete implementation if you ask me.

Good luck.


Trevor Hook said...

Still i am not able to troubleshoot my problem.


Brent V said...

Hi Trevor,

Can you be a little more precise on what is not working?



Stan's Thoughts on Politics said...

On WSS 3, on a custom list, can anybody tell me how to change the time increments from 5 to 1? Thanks.