Troubleshooting long External List in SharePoint 2010

During these days I’ve been working with SharePoint 2010, basically I was building a site based on an existing data base. To retrieve this information from the database I’ve using External Lists linked to External Content Types, and this External Content Types retrieve data from Views in a SQL Server 2008 R2 database.

In one of the pages that I was building I started receiving the following error message:

Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator. Correlation ID:b944db82-81bd-40a0-8a1a-ba24c57c1eac

As you can see the message is not self descriptive and did not help to find the problem. After trying several things without satisfactory results I took my iPhone and point the browser to the mobile version of my site inside SharePoint, and surprisingly a very detailed error message appeared. As you can see below, External List can read through Database Connector 2000 rows (Default configuration). If your query returns more than 2000 rows you will receive this error message. But the mobile version also tell us how to solve this. We need to execute a PowerShell cmdlet and change the configuration.

image

To change the configuration first we need to open the SharePoint 2010 Management Shell found under Start-> Microsoft SharePoint 2010 Products.

image

This will open a console window were we should type the following:

Get-SPServiceApplicationProxy

You will see a list of Proxy Services, but we are going to use the first in the list, “Business Data Connectivity Service

image

Copy Business Data Connectivity Service GUID and execute the following command in the console to see the current Throttle configuration:

Get-SPBusinessDataCatalogThrottleConfig -Scope Database -ThrottleType Items -ServiceApplicationProxy 0410fefe-e1fa-46d6-99a5-2357e44f7b67

image

Now to change the Throttle configuration we will need to store the result of the previous command to use in the following command.

To change the Throttling configuration please execute the following commands:

$Db = Get-SPBusinessDataCatalogThrottleConfig -Scope Database -ThrottleType Items -ServiceApplicationProxy 0410fefe-e1fa-46d6-99a5-2357e44f7b67
Set-SPBusinessDataCatalogThrottleConfig -Identity $Db -maximum 8000 -default 6000

image

After running the commands our Throttle values are 6000 and 8000.

Hope this helps.