Search not crawling items in SharePoint 2013

I was recently troubleshooting the issue that Search wasn’t crawling the SharePoint Web Applications. The following information was seen on the Search Administration.

– Recent crawl rate = 0.00 items per second

– Searchable items = 0

– Recent query rate = 0.00

– Full crawl took forever

and the following messages appeared in the ULS Viewer

CManagedSqlSession::ExecuteNonQuery m_ManagedSqlSession->ExecuteNonQuery fails with Error 0x80070057 Description ‘The value’s length for key ‘application name’ exceeds it’s limit of ‘128’.’ Message ‘The parameter is incorrect.’  [gathersql.cxx:2241]  search\native\gather\server\gathersql.cxx

CGatherer::LoadTransactionsFromCrawlInternal pSession->ExecuteNonQuery for SET XACT_ABORT ON failed with Error 0x80070057  [gatherobj.cxx:5003]  search\native\gather\server\gatherobj.cxx

CGatherer::LoadTransactionsFromCrawl failed CrawlID 1, Error 0x80070057         [gatherobj.cxx:4958]  search\native\gather\server\gatherobj.cxx

CGathererLoadTransactionsThread::Thread Failed in LoadTransactionsFromCrawl CrawlID 1, DBID = D75BC825-9366-40EE-958D-BEC9D460F5F4, dError 0x80070057  [gathersql.cxx:399]  search\native\gather\server\gathersql.cxx

CManagedSqlSession::ExecuteNonQuery m_ManagedSqlSession->ExecuteNonQuery fails with Error 0x80070057 Description ‘The value’s length for key ‘application name’ exceeds it’s limit of ‘128’.’ Message ‘The parameter is incorrect.’  [gathersql.cxx:2241]  search\native\gather\server\gathersql.cxx

I set the logging to verbose to see if I could find some more useful alerts but could not find anything as good as the message ‘The value’s length for key ‘application name’ exceeds it’s limit of ‘128’

Resolution

The SharePoint 2013 search consists of the following databases:

<ApplicationName>_AnalyticsReportingStoreDB_<GUID>

<ApplicationName>_CrawlStoreDB_<GUID>

<ApplicationName>_DB_<GUID>

<ApplicationName>_LinksStoreDB_<GUID>

My Search Service Application name was ‘****2013 Search Service Application’ which made the database  ‘****2013_Search_Service_Application_AnalyticsReportingStoreDB_e1c8dbcdd80f490b84db7e1d46072890’

I viewed the SQL Instance activity monitor and the process had the following name:

‘****2013_Search_Service_Application_AnalyticsReportingStoreDB_621618f28315443993dddc6db73b93aa.dbo.proc_AR_GetAllTenantSettings;1’ and this string is 129 characters long.

The Search was successfully crawling after I recreated the Search Service Application with the name “****2013 Search”

– Recent crawl rate = *.** items per second

– Searchable items = 1,071

– Recent query rate = 0.00

– Full crawl took 6 minutes

Recommendation

There are three ways to successfully create the Search Service Application without getting the above error.

– Use PowerShell to create the Search Service Application with custom DB names

– Create the Search Service Application name with a short name

– Changing the database names after creation (http://technet.microsoft.com/en-us/library/jj219654.aspx)

How to use ULSViewer for SharePoint 2010

ULSviewer.exe is the perfect tool to monitor ULS logs. By applying filters on the ULS logs you can view the error that has occurred.

ULSViewer.exe can be downloaded at http://archive.msdn.microsoft.com/ULSViewer

In this blog I show a way to identifiy correlation ID’s

Open ULSViewer

image

Click on ‘File -> Open From –> ULS

image

Select the location where you store ULS Logs

image

Press on the filter button

image

Enter the following information: ‘Correlation equals <Correlation ID>

image

You will then find the related information. You have to recreate the error so that it will be logged when you are filtering the realtime data.

image

This way you can identify the error and perhaps find the solution

If you post a question on technet it is recommended to add the results from the ULS logs so people can answer the question faster and better.