How many threads are used by the Batch Job to process records, and how does each Batch Step process records within the Batch Job?

A Mule application contains a Batch Job with two Batch Steps (Batch_Step_1 and Batch_Step_2). A payload with 1000 records is received by the Batch Job.
How many threads are used by the Batch Job to process records, and how does each Batch Step process records within the Batch Job?
A. Each Batch Job uses SEVERAL THREADS for the Batch Steps
Each Batch Step instance receives ONE record at a time as the payload, and BATCH STEP INSTANCES execute IN PARALLEL to process records and Batch Steps in ANY order as fast as possible
B. Each Batch Job uses SEVERAL THREADS for the Batch Steps
Each Batch Step instance receives ONE record at a time as the payload, and RECORDS are processed IN PARALLEL within and between the two Batch Steps
C. Each Batch Job uses a SINGLE THREAD for all Batch Steps
Each Batch Step instance receives ONE record at a time as the payload, and RECORDS are processed IN ORDER, first through Batch_Step_1 and then through Batch_Step_2
D. Each Batch Job uses a SINGLE THREAD to process a configured block size of record
Each Batch Step instance receives A BLOCK OF records as the payload, and BLOCKS of records are processed IN ORDER

Download Printable PDF. VALID exam to help you PASS.

7 thoughts on “How many threads are used by the Batch Job to process records, and how does each Batch Step process records within the Batch Job?

  1. Yes D should be the only right answer.
    Its NOT B because of this statement “..RECORDS are processed IN PARALLEL within and between the two Batch Steps..”. More specifically because of this “…within….”. What I mean is records within a block will always run in order one after the other as they are run by one thread.period !

  2. I believe D is the only correct answer:

    Every single batch step (same step and different steps in the batch) is going in parallel in its own single thread for the block of records it received.

    (B) is not correct because it says “RECORDS are processed IN PARALLEL within…”, but “within” a batch step, records in a block are processed by a single thread.

    Ex. At a moment in time:
    “Batch step #S1” is processing block #B2 (records #R200~#R300) using thread #T2, block #B4 using thread #T6, and block #B5 using thread #T3,
    while “Batch Step #S2” is processing block #B1 using thread #T4, block #B3 using thread #T6.

    So the thread pool at that moment would look like: [T1(??, ??), T2(S1, B2), T3(S1, B5), T4(S2, B1), T5(??, ??), T6(S1, B3), T7(??, ??)…], and each thread T is processing the records in block B using the code defined in S one after another.

    1
    5
  3. I say B is correct. Each “record” will be process in parallel by the 16 threads. “batch step instance” will not be executed in parallel by the 16 threads.

    1
    3
  4. B is the correct answer. Message won’t be passed to next batch step by default either you will need to write accept policy and accept expression.

    So process parallelly you will need to set accept expression.

Leave a Reply

Your email address will not be published. Required fields are marked *


The reCAPTCHA verification period has expired. Please reload the page.