NetSuite Concurrency

By default, NetSuite restricts integrations using basic credentials, ie username and password,  to making only one NetSuite web services call at a time. CloudExtend supports basic credentials as well as token based authentication (TBA).

CloudExtend’s Current Approach

NetSuite enforces strict per account concurrency limits. Presently (May 2019) CloudExtend apps are designed to use only one queue (the first available) at a time, irrespective of the login mode (basic credentials or TBA). We want to be a team player with all of your other apps and not be overly aggressive in taking over queues. By ensuring that our apps occupy a single queue  we minimize any impact on other real time business critical applications that customers may have running on their accounts. 

For example, if your account’s allowed concurrency is 10 and your current integrations are using all 10 queues, then CloudExtend app users logging in will run into concurrency issues and CloudExtend will go into retry mode (as outlined below). 

A future build of CloudExtend will allow admins to specify a maximum number of queues for CloudExtend when using TBA. Customers with sufficient NetSuite queues will have full control over CloudExtend performance.

Retry Approach

In the event all of your NetSuite queues are occupied CloudExtend Apps have a built in retry mechanism. Whenever the app notices that one of it’s requests are rejected due to concurrency restrictions, it continues to retry for 3 times and then throws an error when it fails to make a call after all retries are done. In such cases, users will see an appropriate failure notification in the app and they will be required to retry the operation they were performing before. 

NetSuite does provide the ability to purchase additional queues and we recommend this if you consistently encounter concurrency issues.

Understanding your account concurrency levels:

Follow this cheat sheet from NetSuite to understand your concurrency limits and usage.

Find out the concurrency limits for your NetSuite account

Within NetSuite, NetSuite admins can go to Setup > Integration > Web Services Preferences and see their account’s Concurrency Governance called “ACCOUNT CONCURRENCY LIMIT”. The number listed here is the maximum number of concurrent requests that is allowed for the account.

Understanding your Integration application performance and usage:
NetSuite suggests installing Application Performance Management (APM) SuiteApp(You need to be logged in into your NetSuite to access this page) to understand and monitor your account Web Services and RESTlet concurrencies. 

Once installed the following video should help you to understand the when and why you are running into concurrency issues and see which applications are causing concurrency issues

Best Practices for maximum performance

Upserts

  • If known, use internalID only in [[nnnn]] format for picklists 
  • Resolve values using Picklist prior to upserting (this inserts the NetSuite internalID for you behind the scenes)
  • Use Vlookups to other worksheets to retrieve internalID’s
  • Limit the number of columns to just those needed
  • Don't include line level fields if you don't need them 

Downloads

  • Use a data filter or pre-built NetSuite saved search to return only the records you need
  • Limit the number of columns to just those needed
  • Templates without sub-list columns can often lead to much faster downloads
  • If you don’t need to upsert data after downloading use a pre-built NetSuite saved search and select ‘Download As Raw Data
Did this answer your question?