Setting MAXAGENTS_CORRELID parameter to NULL or zero
What happens if I set MAXAGENTS_CORRELID in IBMQREP_RECVQUEUES control table to either NULL or zero?
When MAXAGENTS_CORRELID is set to NULL (or zero), transactions were not applied serially.
If this parameter is set to either NULL or zero, the Q Apply program does not serialize transactions.
This parameter only controls serialization by CORRELID. When the parameter is set to NULL or zero, Q Apply runs transactions that are NOT dependent in parallel, without consideration of the source transaction job (CORRELID).
However if the MAXAGENTS_CORRELID value is 1, then transactions from the SAME job (same CORRELID) are applied serially while other transactions from other jobs run in parallel. If MAXAGENTS_CORRELID is greater than 1, (for example, if MAXAGENTS_CORRELID is 4), then
the first four transactions from the SAME job (same CORRELID) are applied in parallel.
There is no significant overhead for Q Apply to enforce the additional limiting of parallelism by CORRELID. By limiting parallelism, Q Apply delays applying a new transaction from the same job if the maximum number of agents are already applying transactions from that job. However this is intentional, the idea being that the parameter was tuned appropriately to reduce lock contention, which would otherwise cause slower performance and increased latency.