Multi-threading can be used to reduce the overall run time for a given batch request by invoking several occurrences of the same job to run concurrently. While the same version (for example, A/P Voucher Version) could be used for each instance of the job, to improve throughput, it is recommended that multiple mutually exclusive versions be configured to avoid data contention situations.
For example: Assume the objective is to trigger three instances of the A/P Voucher Generation process to run concurrently. To achieve optimal throughput, these three versions could provide full and balanced coverage of the data set:
With this approach, the three instances of the A/P Voucher Generation process could run concurrently providing full coverage for all eligible loads, trips, and bookings without incurring the overhead associated with rollback that occurs when two or more versions of a job attempt to perform the same operation and for a given transaction.