Batch Apex running mode (parallel and series) and how to maintain state in it
- Jan
- 09
- Posted by Lin
- Posted in APEX, Salesforce
In my early post, I’d shared about how to write a Schedulable Batch Apex in Salesforce, and I’ll show you how transactions run in batch Apex and how to maintain their state across these transactions in this post.
Actually, they run in series , the following sample code and DebugLogs will explain this.
Reference : https://developer.salesforce.com/docs/atlas.en-us.204.0.apexcode.meta/apexcode/apex_batch_interface.htm
Enjoy it!
Batch Apex running mode (parallel / series)
As we know, each execution of a batch Apex job is considered a discrete transaction, so if a batch contains 1,000 records, it is considered 5 transactions of 200 records each. Batch Apex job runs in parallel if more than one job is running, but which mode these transactions in one batch Apex job run in, parallel or series?Actually, they run in series , the following sample code and DebugLogs will explain this.
SampleBatch.cls
Debuglogs of 5 batch Apex transactions
Maintaining state
The member variables (includes static member variables) in batch Apex don’t retain their values and are reset between transactions, if you want to maintain state across these transactions, such as for counting or summarizing records, you can specify Database.Stateful in the class definition, and only instance member variables (not static member variables) retain their values, as the sample code below :SampleBatchWithState.cls
Debuglogs of 5 batch Apex transactions
Reference : https://developer.salesforce.com/docs/atlas.en-us.204.0.apexcode.meta/apexcode/apex_batch_interface.htm
Enjoy it!
Post Tagged with Batch Apex, Database.Stateful, Maintain, Parallel, Salesforce, Series, Stateful, Transaction
Recent Posts
- Salesforce DevTools Release Notes (version 3.10.0) – mass edit custom fields on lightning
- Salesforce DevTools Release Notes (version 3.9.0) – Object Fields, SOQL Query Editor
- Salesforce DevTools Release Notes (version 3.8.0)
- Salesforce DevTools JUST HIT 10,000 USERS! THANK YOU!
- Using Promise for Apex Server-Side request in Lightning Component
Top Posts
- Salesforce DevTools – Powerful Salesforce developer tools, loved by over 50K developers - 219.6K views
- Date format and DateTime format - 204K views
- Salesforce Mass Editor (Chrome Extension) – Mass create, mass update, mass clone, mass delete on any list view. Support for both Classic and Lightning! - 158.4K views
- Setup an awesome Salesforce developer environment with Sublime Text 3 - 122.3K views
- Writing a Schedulable Batch Apex in Salesforce - 118.8K views
Categories
- APEX
- Apps
- Custom Label
- Custom Metadata
- Custom Setting
- Design & UI
- Event
- Heroku
- iOS & Object-c
- Lightnint Component
- Linux & Mac OS
- Metadata API
- Node.js
- Open Source
- Other
- PHP Framework
- Release Notes
- REST API
- Salesforce
- Salesforce DevTools
- Salesforce DX
- SOQL
- Tooling API
- Unit Tests
- Validation Rule
- Visualforce
- WordPress
You must be logged in to post a comment.