0

I've already tried powershell to reset the throttle value as well as disabled it completely: This disables a throttling rule. Set-SPBusinessDataCatalogThrottleConfig -Identity $dbRule -Enforced:$false

But still get error when I try to query a record in External List using REST API:

OData Service Connector has throttled the response. The response from OData Service contains more than '3000000' bytes. The maximum amount of data that can be read through OData Service Connector is '3000000'. The limit can be changed via the 'Set-SPBusinessDataCatalogThrottleConfig' cmdlet.

In the BDCM file for the concerned method, the default was set to 100, there are about 1300 records to query. So I first changed the value to 250, and I could query the first 250 records out of the 1300 using REST API to External list. Then I changed the this default value to 1500 as below, and I started getting this error.

<DefaultValues>
<DefaultValue      MethodInstanceName="ReadAllProjects"Type="System.Int32">1500</DefaultValue>
</DefaultValues>
1

Looks like you cannot use Scope Database, and ThrottleType Items. You need to use Scope OData, and ThrottleType Size.

Scope : OData ThrottleType : Size Enforced : False Default : 150000000 Max : 150000000

Please see below:

$odataRule = Get-SPBusinessDataCatalogThrottleConfig -Scope OData -ThrottleType Size -ServiceApplicationProxy $bdcProxy

Set-SPBusinessDataCatalogThrottleConfig -Identity $odataRule -Maximum 150000000 -Default 150000000 

$odataRule = Get-SPBusinessDataCatalogThrottleConfig -Scope OData -ThrottleType Size -ServiceApplicationProxy $bdcProxy
$odataRule
  • I guess this would resolve your answer. Please check and let us know the result after using scope as OData – John Zachariah Jan 31 '17 at 9:45
  • yes, I tested it. And it resolved. Its unfortunate this has not been documented anywhere, good for someone to blog about it. – user5579208 Jan 31 '17 at 15:05
  • Please upvote and mark as answer so that user helped get the credit for the same. – John Zachariah Feb 1 '17 at 4:57
0

Did you try increasing the limit? using this cmdlet

Set-SPBusinessDataCatalogThrottleConfig -Identity $dbRule -Maximum 1000000 -Default 3000

This Maximum value and Default can be modified accordingly

It is also noteworthy to mention below

"Remember that if you run one of these commands and immediately type $dbRule, you won’t see the changes reflected; you should re-fetch the rule using Get-SPBusinessDataCatalogThrottleConfig again. Your changes are immediately committed by Set-SPBusinessDataCatalogThrottleConfig, but it may take a few minutes for them to be reflected in external lists and other runtime scenarios."

Reference: BCS Throttle Management

  • yes, I have increased the limit too and also disabled it but it does not work. – user5579208 Jan 30 '17 at 12:13
  • Scope : Database ThrottleType : Items Enforced : False Default : 3000 Max : 1000000 – user5579208 Jan 30 '17 at 12:13
  • Please use Scope : OData and try – John Zachariah Jan 31 '17 at 9:45
0

If you are querying the external list through REST api, first ensure your external list has been created without any error and able to see all 1300 rows in it. If there is any error on it, then REST API against external list won't work. And also please do check, any of your SQL Proc or View doesn't use the TOP keyword in sql statement. Another look around is, ensure there is "Filter Parameter" configuration that restrict to use "TOP" operator and "Default Value" as shown in the image. Its taken from the SPD, as you are using the oData, check it in VSS designer or XML enter image description here

  • yes, the view is returning properly all the records. And the Default value which you showed in SPD, i'm chaning it in the bdcm xml file. As mentioned first it was 100, i wasn't able to query 101 record using REST API, but when i changed to 105, I was able to query 105th record, but not the 106th. And then I changed to 250, I was then able to query 250th record but not 251st. Finally I changed to value to 1500, and now i get the throttle error for all records, 1st to 1300th. I think the 300000 bytes limit still getting applied, how to get rid of it ?? – user5579208 Jan 30 '17 at 12:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.