Filters and Throttling in the BDC

The Business Data Connectivity (BDC) runtime includes configurable filtering and throttling functionality. Administrators can use this functionality to control both the load that BDC operations put on SharePoint and the load that the operations put on the external systems that you connect to. Filters constrain the result set by restricting the scope of the query, such as by including wildcard queries or paging sets. Throttling prevents BDC operations from using excessive system resources by terminating requests that exceed the resource thresholds set by the administrator. The following diagram illustrates the filtering and throttling process.

Filtering and throttling in the BDC runtime

Ff798447.e47caf6e-c1a2-4557-8a6f-9a2b46d64de4(en-us,PandP.10).png

Filters encompass a wide range of information that the BDC can pass to the external system in order to constrain the result set. The types of filter you can use depend on the types of filter that are supported by the external system. The BDC allows you to use two key types of filters: system filters and user filters. System filters provide context information to the external system. For example, system filters can include a UserContext value that securely provides the identity of the caller to the external system and an ActivityId value that represents the current operation context for diagnostic purposes. Conversely, user filters enable end users or application logic to refine a query. For example, user filters can include Wildcard and Comparison filters for pattern matching and a PageNumber value to support data retrieval on a page-by-page basis. For more information about filters, see Types of Filters Supported by the BDC and How to: Add Filter Parameters to Operations to Limit Instances from the External System on MSDN.

Conceptually, throttling in the BDC is similar to the query throttling for regular lists found in SharePoint 2010. The BDC runtime throttles external data requests based on various criteria, including maximum acceptable response times, maximum permissible response sizes in data rows or bytes, and the total number of concurrent connections to databases or services. Each throttling rule can be associated with one of four scopes: Web services, WCF services, databases, or global. The default threshold values are as follows:

  • 2000 rows for a database query
  • 3,000,000 bytes for a Windows Communication Foundation (WCF) service or Web service response
  • 180 seconds response time for a WCF service or a database request
  • 200 total connections across databases, Web services, and WCF services

The throttling criteria that are available to the administrator depend on the scope of the rule. The following table shows the criteria that apply to each of the four possible scopes.


Global

Database

Web Service

WCF Service

Items


Ff798447.63482f3f-109f-49d9-a072-9855345b2228(en-us,PandP.10).png



Size



Ff798447.af92a11b-b224-4bd8-b121-c9e5f833ed63(en-us,PandP.10).png

Ff798447.a4f4a656-adcf-482e-af96-a7c80bf767bc(en-us,PandP.10).png

Connections

Ff798447.683efcca-b037-42a2-9daf-535655a7674b(en-us,PandP.10).png




Timeout


Ff798447.b19651b0-f77e-4b5c-8036-fd46c41b1f05(en-us,PandP.10).png


Ff798447.ec1fcb22-d574-441b-99d2-a42ec0f326f5(en-us,PandP.10).png

For more information about BDC throttling criteria and about how to change the threshold values, see the blog post BCS PowerShell: Introduction and Throttle Management.