Monday, November 16, 2020

Business Central Online - Operational Limits

Make sure to take in consideration & discuss with client requirements/expectation on below parameter:

  • No. of User & Concurrent Client Connection
  • Data Handling 
  • Database Connection
  • Asynchronous Task
  • Report Data
  • Query Data
  • OData & SOPA Data

Above will help to ensure the availability and quality of Business Central services, there are limits on certain operations. Below descried limits are per-tenant limits.


The telemetry provides insight into operations for which limits were exceeded. For more information, see Monitoring and Analyzing Telemetry. 


Client Connection Limits 

Setting 

Description 

Limit 

Max concurrent calls 

The maximum number of concurrent client calls that can be active.

1000 

Max concurrent connections 

The maximum number of concurrent client connections that the service accepts. 

500 

Max number of orphaned connections 

Th maximum number of orphaned connections to be kept alive at the same time for the time that is specified by ReconnectPeriod. 

 

A connection is orphaned when the client is involuntarily disconnected from service. 

 

You can also use MaxValue as a value to indicate no limit.

20 

Reconnect period 

The time during which a client can reconnect to the service after being disconnected. 

10 minutes 

 

Data Handling Limits 

Setting 

Description 

Limit 

Max items in object graph 

The maximum number of objects to serialize or deserialize. 

10,000 

Max file size 

The maximum size of files that can be uploaded to or downloaded from the service.

350 MB 

Maximum stream read size 

The maximum number of bytes that can be read from a stream (InStream object) in a single AL read operation. Examples include READ or InStream.READTEXT method calls. This setting pertains to UTF-8 and UTF-16 text encoding; not MS-DOS encoding.

1,000,000 bytes 

 

Database Connection Limits 

Setting 

Description 

Value 

Search timeout 

The time (in seconds) that a search operation on lists in the client continues before it's stopped. When the limit is reached, the following message displays in the client: Searching for rows is taking too long. Try to search or filter using different criteria. 

10 seconds 

SQL command timeout 

The contextual time-out for a SQL command. 

30 minutes 

SQL connection idle timeout 

The time that a SQL connection can remain idle before being closed. 

minutes 

SQL connection timeout 

The time to wait for the service to connect to the database. When the time is exceeded, the attempt is canceled and an error occurs. This setting also applies to begin, rollback, and commit of transactions.

1.5 hours 

Long running SQL query threshold 

The amount of time that an SQL query can run before a warning telemetry event occurs. If this threshold is exceeded, the following event is logged: Action completed successfully, but it took longer than the given threshold.

1000 ms 

 

Asynchronous Task Limits 

Setting 

Description 

Limit 

Maximum concurrent running scheduled tasks 

The maximum number of tasks that can run simultaneously for an environment. 

 

If there are many jobs running at the same time, you might experience that the response time for clients gets slower. If the value is too low, it might take longer for scheduled tasks to process.

3 

Page background task default timeout 

The default amount of time that page background tasks can run before being canceled. Page background tasks can be also given a timeout value when enqueued at runtime. This limit is used when no timeout is provided when the page background task is enqueued.

minutes 

Page background task max timeout 

The maximum amount of time that page background tasks can run before being canceled. Page background tasks can be also given a timeout value when enqueued at runtime. If a page background task is enqueued with a timeout greater than this limit, this limit is ignored.

10 minutes 

ChildSessionsMaxConcurrency 

The maximum number of child sessions that can run concurrently per parent session. When the value is exceeded, additional child sessions will be queued and run when a slot becomes available as other child sessions are finished.

5 

ChildSessionsMaxQueueLength 

The maximum number of child sessions that can be queued per parent session. If the value is exceeded, an error occurs.

100 


Report Limits 

Setting 

Description 

Limit 

Default max documents 

The maximum number of documents that can be merged in report by default Users can override this setting on a report-basis from the report request page. If exceeded, the report will be canceled. 

 

Developers can override this setting by using MaximumDocumentCount property of a report. Client users can do the same when running a report from the report request page.

200 

Max documents 

The maximum number of documents that can be merged in report. If exceeded, the report will be canceled.

500 

Default max execution timeout 

The maximum execution time that it can take to generate a report by default. Users can override this setting on a report-basis from the report request page. If exceeded, the report will be canceled. 

 

Developers can override this setting by using the ExecutionTimeout property of a report. Client users can do the same when running a report from the report request page. 

hours 

Max execution timeout 

The maximum execution time that it can take to generate a report. If exceeded, the report will be canceled. 

12 hours 

Default max rows 

The maximum number of rows that can be processed in a report by default. Users can override this setting on a report-basis from the report request page. If exceeded, the report will be canceled. 

 

Developers can override this setting by using the MaximumDataSetSize property of a report. Client users can do the same when running a report from the report request page. 

500,000 

Max rows 

The maximum number of rows that can be processed in a report. If exceeded, the report will be canceled by the server.

1,000,000 

 

Query Limits 

Setting 

Description 

Limit 

Max execution timeout 

The maximum execution time that it can take to generate a query. If exceeded, the query will be canceled. 

30 minutes 

Max rows 

The maximum number of rows that can be processed in a query. If exceeded, the query will be canceled.

1,000,000 

 

OData Request Limits 

Setting 

Description 

Limit 

Max concurrent requests 

The maximum number of OData V4 requests the server instance can actively process at the same time. Requests that exceed the limit will wait in the queue until a time slot becomes available. 

5 

Max connections 

The maximum number of simultaneous OData requests on the server instance, including concurrent and queued requests. When the limit is exceeded, a 429 (Too Many Requests) error occurs. 

100 

Max page size 

The maximum number of entities returned per page of OData results. 

20,000 entities per page 

Max request queue size 

The maximum number of pending OData V4 requests waiting to be processed. When the limit is exceeded, a 429 (Too Many Requests) error occurs. 

95 

Rate 

The number of OData requests per minute that are allowed. An HTTP response code 429 - Too Many Requests is returned if limits are exceeded. 

Sandbox: 
300 requests/minute 
 
Production 
- 600 requests/minute 

Operation timeout 

The maximum amount of time that the service gives a single OData request. When the limit is exceeded, an HTTP response code 408 - Request Timeout is returned. 

 

After 8 minutes, the session is canceled. 

minutes 


SOAP Request Limits  

Setting 

Description 

Limit 

Max concurrent requests 

The maximum number of SOAP requests the server instance can actively process at the same time. Requests that exceed the limit will wait in the queue until a time slot becomes available. 

5 

Max connections 

The maximum number of simultaneous SOAP requests on the server instance, including concurrent and queued requests. When the limit is exceeded, a 429 (Too Many Requests) error occurs. 

100 

Max message size 

The maximum permitted size of a SOAP web service requests 

65,536 KB 

Max request queue size 

The maximum number of pending SOAP requests waiting to be processed. When the limit is exceeded, a 429 (Too Many Requests) error occurs. 

95 

Rate 

Specifies how many SOAP requests per minute are allowed. An HTTP response code 429 - Too Many Requests is returned if limits are exceeded. 

Sandbox: 
300 requests/minute 
 
Production: 
600 requests/minute 

Operation timeout 

The maximum amount of time that the service gives to a single SOAP request. When the limit is exceeded, HTTP response code 408 - Request Timeout is returned. 

 

 

Source of this article: Microsoft Docs

Thursday, November 12, 2020

Fraud trends part 1: account takeover in a digitalized world

This year has been unexpected to say the least. As 2019 ended and business forecasts were written, no one would have ever guessed what was to come in 2020. As consumer behaviors have shifted in uncertain times, merchants worldwide have quickly adapted and implemented new technologies, tools, and strategies to maintain business continuity and increaseRead more

The post Fraud trends part 1: account takeover in a digitalized world appeared first on Microsoft Dynamics 365 Blog.

Tuesday, November 10, 2020

Why you should select an integrated platform for MarTech needs

When building a marketing technology (MarTech) stack, both the best-in-breed and single vendor approaches have their benefits and drawbacks. Today's business realities has marketing operations teams and business leaders re-examining the best way to get necessary tasks accomplished: "one-for-each" or "one-for-all". A changing landscape Digital transformation is driving marketing leaders to make decisions between twoRead more

The post Why you should select an integrated platform for MarTech needs appeared first on Microsoft Dynamics 365 Blog.

Monday, November 9, 2020

Personalize responses to employee feedback to transform return to work

As companies navigate an environment of rapid change, raised safety standards, and a new digital world, transformative approaches are needed to successfully maintain a healthy, thriving business. That's why Microsoft Dynamics 365 Customer Voice has bridged the gap between collecting feedback and building informed responses. Employee safety is paramount to sustaining business in our currentRead more

The post Personalize responses to employee feedback to transform return to work appeared first on Microsoft Dynamics 365 Blog.

Thursday, November 5, 2020

How consumer goods organizations are adapting by going D2C

From supply chain capacity constraints to distribution channel disruptions, consumer goods organizations have had to innovate to overcome obstacles and find new ways to meet customer demands. Changes in motion Even before the pandemic struck, significant changes were underway, reshaping retail and the consumer goods industry. Over the last decade, a rise in digital connectivityRead more

The post How consumer goods organizations are adapting by going D2C appeared first on Microsoft Dynamics 365 Blog.

Configuration: AL Language Extension


Business Central AL Language extension has a number of settings that can be specified for a specific user or for a workspace. 

To activate the settings, press Ctrl+Shift+P, and then choose Preferences: Open Settings (UI) for workspace settings, or choose Preferences: Open User Settings for user settings. 

Under Extensions, and AL Language extension configuration you will find the settings that are available for the AL Language extension. For tips on how to optimize Visual Studio Code, see Optimizing Visual Studio Code for AL Development.

APPLIES TO: Business Central 2019 release wave 2 and later

Example: 

{
    "al.defaultLaunchConfigurationName""localhost",
    "al.codeAnalyzers": [
        "${CodeCop}",
        "${UICop}",
        "${AppSourceCop}"
    ]
 }

Below are details of setting which you can apply and use in your app development:

SettingValue & Details
Assembly Probing PathsSets the list of directory paths where the compiler searches for referenced .NET assemblies. For example: "al.assemblyProbingPaths": ["./.netpackages", "C:/Program Files/Assemblies"]
BrowserSpecifies the browser in which to open the Business Central client when launching the application from Visual Studio Code.
Code AnalyzersSets the list of paths to code analyzers to use for performing code analysis. For example : "al.codeAnalyzers": ["${AppSourceCop}", "${CodeCop}"].
Compilation OptionsSpecifies the compilation options; generateReportLayout, which controls whether report layout files are generated during build and parallel, which controls whether to use concurrent builds. Both options are default set to true.
Editor Services Log LevelSets the logging verbosity level for the AL Language Editor Services host executable. Possible values are Verbose, Normal, Warning, and Error.
Editor Services PathSpecifies the path to the Editor Services host executable.
Enable Code ActionsSpecifies whether code actions should be enabled for all source files in the current project. Default is false.
Enable Code AnalysisSpecifies whether code analysis should be performed for all source files in the current project. Default is false. If this is set to true, you must specify the Code Analyzers setting with the list of code analyzers to use.
IncognitoSpecifies whether to open the browser in Incognito/InPrivate mode when launching the application from Visual Studio Code. This option will take effect only if the Browser option is set to a non-default value.
Package Cache PathSets the directory path where reference symbol packages are located.
Rule Set PathSpecifies whether a project, when it is built using Ctrl+Shift+B, Ctrl+F5, or F5, will reuse the last known tracked compilation which will enhance the compilation time significantly. For more information about project to project references, see Working with multiple projects and project references.

Note: Setting this to true will not do an end-to-end build, as it is depending on an already-compiled state. To get a clean, full build, this flag must be set to false. Default is false.
Snapshot Output PathSets the directory path where snapshot files are saved. Default is ./.snapshots.
Snapshot Debugging PathSets the directory path where the snapshot debugger sources are located. Default is ./.snapshot.

Blogpost Source: Microsoft Docs