Skip to main content

Batch Apex Limitations

 



Below are some important considerations to bear in mind when utilizing batch Apex:


Concurrent Job Limitation:

The maximum number of batch jobs that can be queued or active simultaneously is 5.


Flex Queue Capacity:

The Apex flex queue can accommodate up to 100 batch jobs in a holding state.


Test Execution Limit:

During a running test, a maximum of 5 batch jobs can be submitted.


Method Execution Threshold:

Within a 24-hour period, the total number of batch Apex method executions is capped at 250,000.


However, if the product of the number of user licenses in your organization and 200 exceeds 250,000, then that becomes the limit.


This includes the start, execute, and finish methods of batch Apex, along with other asynchronous Apex features such as Queueable Apex, scheduled Apex, and future methods.


To check the available asynchronous Apex executions, you can make a request to the REST API limits resource.


License Types Considered:

The method execution limit encompasses full Salesforce and Salesforce Platform user licenses, App Subscription user licenses, Chatter Only users, Identity users, and Company Communities users.


QueryLocator Limitation:

The maximum number of records that the Database.QueryLocator object can handle is 50 million.


If the number of returned records exceeds 50 million, the batch job will fail.


Scope Parameter Constraint:

If the start method returns a QueryLocator, the scope parameter of Database.executeBatch can have a maximum value of 2,000.

If set to a higher value, Salesforce will divide the records into smaller batches.


When the start method returns an iterable, there is no upper limit on the scope parameter, although using a high number may have other limitations.


An optimal scope size is typically a multiple of 2,000.


Default Scope Size:

If the scope parameter is not explicitly specified, Salesforce will divide the records into batches of 200.

Apex governor limits are reset for each execution of the execute method.


Callouts:

Each of the start, execute, and finish methods can implement a maximum of 100 callouts.


Start Method Limitation:

Only one batch Apex job's start method can run at a time in an organization.


Jobs that have not started yet remain in the queue until they are initiated.


However, the execute methods of multiple batch Apex jobs can run in parallel.


FOR UPDATE Constraint:

The use of the FOR UPDATE clause in SOQL queries to lock records during update is not applicable to Batch Apex.


Cursor Availability:

Cursors and related query results remain accessible for 2 days, including results in nested queries.

Comments

Popular Posts

Top 100 Most common used Apex Method in Salesforce

  Here are 100 more Apex methods in Salesforce: 1.       insert: Inserts records into the database. 2.       update: Updates records in the database. 3.       delete: Deletes records from the database. 4.       upsert: Updates or inserts records into the database. 5.       query: Retrieves records from the database using SOQL. 6.       getContent: Retrieves the content of a document or attachment. 7.       getContentAsPDF: Generates a PDF file from a Visualforce page or HTML content. 8.       addError: Adds a custom error message to a record and prevents saving. 9.       start: Initiates processing in batch Apex. 10.    execute: Processes a batch of records in batch Apex. 11.    finish: Finalizes processing in batch Apex....

How to create ICS/Calendar File | Helps you to download the calendar invites

  Want to know how to create ICS(Internet Calendar Scheduling) file for Business purpose....👀    ICS (Internet Calendar Scheduling) file is a calendar file saved in a universal calendar format used by several email and calendar programs, including Microsoft Outlook, Google Calendar, Notes and Apple Calendar. It enables users to publish and share calendar information on the web and over email. Lets see the code. The code is written in lwc(Lightning web component). HTML:   <template> <div class="login-container"> <h1 style="size: 14px;"><b>Create ICS File</b></h1> <div class="form-group"> <lightning-input type="datetime" name="input1" value={EventEndValue} onchange={startDate} label="Enter Start date/time value" ></lightning-input> </div> <div class="form-group"> <lightning-input type="...

Sharing records by Apex in Salesforce

  Greetings, everyone! In today's session, we'll delve into the topic of sharing records within an Apex class. As we're aware, there exist various methods through which we can accomplish the sharing of records. We engage in record sharing primarily when the object's Organization Wide Default (OWD) settings are set to private. Sharing settings come into play when certain predefined criteria are met, allowing us to extend access to records to designated groups or roles. In cases where intricate logic is involved, manual sharing is employed. While this approach proves beneficial for specific records, instances where a multitude of records require automated handling, Apex sharing becomes the preferred solution. Salesforce offers a 'Share' object for each type of object, with distinct naming conventions: For standard objects, it's 'StandardobjectName+Share', such as 'AccountShare' for the 'Account' object. Custom objects follow the pattern...

Login Salesforce Without Credentials(Without UserName and Password)

  Want to login into Salesforce without credentials. Please follow the below STEPS: STEPS:-  1)  Goto to setup  --> Open Developer Console. 2) Goto debug --> Open Execute Anonymous Window --> It will open the pop. 3) Please write the below code in Anonymous window.       String sessionId = UserInfo.getOrganizationId() + '' + UserInfo.getSessionId().SubString(15);      System.debug('$$$$ Session Id ' + sessionId); 4) Click on Execute and filter the debug. You can see one session Id with Organization Id. Now, we have to copy the debug session Id and create one login URL. Steps to create Login URL: 1) Copy the Salesforce URL. Please refer the screenshot shown below. 2) Now concatenate the session Id with the salesforce URL and your Session Id Will look like below. https://d5g000004zfq2eai-dev-ed.lightning.force.com/secur/frontdoor.jsp?sid=00D5g000004zfQ2EAI!AQgAQKzTcnQTifXpRnQ7DgECtk_rv.w9BT5FoPEAmoy_UrgG4HJ6B9YFpQ2LVlmnJhBrYPSf8cI...

SF Fact #03 | Undelete Failed, Entity is not in recycle bin

  Similar to ENTITY_IS_DELETED error, if we attempt to undelete a record from recycle bin by mistake which has already been hard deleted, the following error is encountered: UNDELETE_FAILED. When a record is deleted, it moves to the Recycle Bin. This is known as "soft deletion," allowing the record to be easily restored through the user interface. However, under certain conditions, a deleted record will no longer appear in the Recycle Bin: Master-Detail Relationship (Child Deleted First): If a record is a child or detail in a master-detail relationship and it is deleted before its parent record, then after the parent is deleted, the child record transitions to a "hard deleted" status. In this state, the child record cannot be recovered through the Recycle Bin and must be recreated if needed. Master-Detail Relationship (Parent Deleted): If a record is a child or detail in a master-detail relationship and the parent record is deleted, the child record is also soft del...