Ultimate Forms for O365 limits and throttling
Infowise Ultimate Forms exists in two version. One is for our on-premises customers and one for customers using Office 365. The products provides you with a wealth of functionality to help you implement your business solutions in SharePoint. Some background features, such as Actions, Item ID or Import, allow you to create and update multiple list items and documents behind the scenes based on list updates or timer.
We allow you to define your own actions and import profiles and specify the logic of which items to update and how many updates to execute each time. The O365 version runs on the Azure infrastructure and uses power Azure App Services capabilities to execute the necessary heavy lifting of querying, evaluating and updating your items.
Unlike the on-premises version that runs on your own servers, Office 365 version runs on a shared infrastructure with essentially limited resources. To ensure smooth and problem-free operation, the app service must always have enough available resources to keep handling incoming requests.
For that reason, we need to make sure that no single customer utilizes server resources in excess of a certain pre-defined limit. For example, configuring an action that updates thousands of items every single time it executes will take up a significant portion of the available resources, causing a slowdown for other customers. Moreover, excessive use of the SharePoint API could cause the customer to become temporarily blocked by Microsoft as well.
Until now we did not impose specific limits on the resources a customer could use. The app world is still pretty new and we needed time to evaluate if and how the app should be throttled. Lately, we've been noticing quite a few long-running operations that took a significant toll on our infrastructure. Some of these could be unintentional, due to lack of understanding or simply overlooking the implications.
For this reason, effective immediately we begin to impose limits on duration of execution we allow. The first step is limiting the amount of time an action can execute. The actual limit will depend on several factors, such as the scope of your license, but in general, no action will be allowed to run for longer than 500 seconds (this limit will be adjusted as we examine the impact). If several actions are set to respond to a single event, the duration will be calculated from the moment the first action started to execute.
If an action exceeds the limit, we will trigger an execution error within the action. If your action is set to write to the Action History, you will see an error message similar to 'Exceeded maximum allowed execution time'. If the action updates multiple items, some items will not be updated. Items already updated, will not be rolled back.
Similar limits will eventually be imposed for Item ID, Alerts, Imports and other background processes. We encourage you to monitor your business logic execution and make the necessary adjustments to make sure your actions do not get throttled. For example, you can use conditions to limit the number of list items an actions executes on and that way shorten its execution time.
UPDATE 2017-11-06: We are working on a system where the throttling limit will depend on the customer's license type. In general, the higher the scope of the license and the more users it includes, the higher will be the throttling limit (while still remaining under 500 seconds). In the initial version we currently have deployed, the free license for up to 19 users receives a throttling limit of 45 seconds only and the license for up to 100 users receives a limit of 90 seconds. There is currently no additional ranges, but these will be added in the future.
Add your comment
100% No-Code Solution
It's never been easier, to create, innovate and share, all you need is your web browser!
Address business process pain points immediately. Save time and money.
Fantastic Support Team
Facing difficulties installing the application? Contact our fantastic support team.