Search Connector Framework Troubleshooting

Learn troubleshooting information for issues you may encounter when working with the Microsoft SharePoint Server 2010 search connector framework.

Applies to: SharePoint Server 2010

We’ll update this topic as we get new troubleshooting information.

Troubleshooting Search Connector Framework Issues

The following table identifies symptoms and issues you may encounter with the SharePoint Server search connector framework, and provides solutions to them.

Table 1. Search connector symptoms, issues, and solutions

Symptom

Issue

Solution

You encounter the following error in the crawl log: Access Denied by Business Data connectivity.

This can be caused by incorrect permissions set on the model and external content type.

If the model specifies PassThrough as the authentication mode, the default content access account must have Execute permissions on the model file and all external content types that should be crawled. If a crawl rule is being used for the content source, the user specified in the crawl rule should have Execute permissions on the Business Data Connectivity (BDC) service model file and on all external content types.

If the model specifies RevertToSelf as the authentication mode, then the Search service application pool account is used to connect to the Business Data Connectivity (BDC) service, and this account should have Execute permissions on the BDC model file and all external content types.

The crawl log shows that the crawl completed successfully with two successes and no errors.

The Business Data Connectivity (BDC) service model file does not contain the RootFinder property which is used by SharePoint Server search to enumerate the content.

Add the RootFinder property to the finder methodInstance as shown in the following example.

<MethodInstance Name="GetRootFolders_Instance" Type="Finder" ReturnParameterName="Return" ReturnTypeDescriptorName="Return" ReturnTypeDescriptorLevel="0">
    <Properties>
        <Property Name="RootFinder" Type="System.String">Empty</Property>
    </Properties>
</MethodInstance>

The BDC model is imported but does not appear in the list of external data sources when you create a new external data source.

The BDC model is missing the ShowInSearchUI property

Add the ShowInSearchUI property at the LobSystemInstance level as shown in the following example.

<LobSystemInstances>
    <LobSystemInstance Name="TestSystem">
        <Properties>
            <Property Name="ShowInSearchUI" Type="System.String">x</Property>
        </Properties>
    </LobSystemInstance>
</LobSystemInstances>

When you make a change to BDC models using Microsoft SharePoint Designer 2010, the changes do not seem to take effect.

The old external content types are not deleted.

If a BDC model is deleted when the crawl is in process or a virtual list is being accessed, the external content types may not be deleted. Stop the crawl for the external content types that need to be modified, and then delete the model.

Note

If you change the BDC model, you must delete and then re-create the content source for the external system.

You see an error in the crawl log indicating that the database response was throttled, or a similar error.

By default, SharePoint Server search does not crawl more than 25,000 items from the external system.

BDC throttles the number of items that can be returned from the external system. You can disable throttling for external systems that have more items than the default limit by using the following Windows PowerShell cmdlets:

$proxy=Get-SPServiceApplicationProxy | 
where {$_.TypeName -match "Business Data Connectivity Service Application Proxy"} #"Business Data Connectivity Proxy"}  
$throttleItems=Get-SPBusinessDataCatalogThrottleConfig -Scope DataBase -ThrottleType Items -ServiceApplicationProxy $proxy
Set-SPBusinessDataCatalogThrottleConfig –Enforced:$false -Identity $throttleItems
$throttleItems=Get-SPBusinessDataCatalogThrottleConfig -Scope DataBase -ThrottleType Items -ServiceApplicationProxy $proxy
$throttleItems
$throttleconnections=Get-SPBusinessDataCatalogThrottleConfig -Scope Global -ThrottleType Connections -ServiceApplicationProxy $proxy
Set-SPBusinessDataCatalogThrottleConfig –Enforced:$false -Identity $throttleconnections
$throttleconnections=Get-SPBusinessDataCatalogThrottleConfig -Scope Global -ThrottleType Connections -ServiceApplicationProxy $proxy
$throttleconnections
iisreset

The search result link does not point to the new profile page.

A full crawl is required to pick up profile page changes, such as a new profile page or changes to the URL.

Start a full crawl for all external content types for which the profile page was changed.

Crawl succeeds with the crawl log indicating that all the items were crawled, but a search based on the item's metadata returns no results.

The UseClientCachingForSearch property is set on the IdEnumerator method instance or the UseClientCachingForSearch property is set on a Finder method instance that returns only identifiers.

When you use the UseClientCachingForSearch property, SharePoint Server search caches the metadata returned by the Finder method and does not call the SpecificFinder method. For each item, only this cache is indexed. For an IdEnumerator stereotype or a Finder that only returns identifiers, remove the UseClientCachingForSearch property.