We have very large volume of case transaction and hence many SLA gets created per case. I understand SLA gets queued and agent picks up to process. Now, since we have high volume of SLA queues I wonder if these are processed only sequentially or in parallel. Are there any mechanism to process these faster? Also, we have multiple application server nodes. In that case two agents process these in parallel?
***Edited by Moderator Marissa to update platform capability tags***
The query which determines which SLA entries require actions will be issued from the agent. So parallel processing of the backlog would depend on how many application server nodes the ServiceLevelEvents is processing on.
On each node the ServiceLevelEvents agent will likely collect a number of jobs/tasks that need to be performed, so these will be distributed to available BATCH requestors.
In an OOTB installation you'll have 5 of these. But this value can be changed through a <env name="agent/threadpoolsize" value="7" /> setting, for example.
If you have a heavy backlog in your PR_SYS_QUEUE_SLA table, you might be best trying to analyse how that query forms against the given table, and see whether you'd get any benefit for adding performance indexes on the table.
I believe the main consumers of the data in this table will be: -
1. ServiceLevelEvents activity... if a SLA is breached
2. Pega Engine: To remove entries from the table if the SLA is not breached and has been met.
Even if the app node is just one, are you saying Pega can still process the SLA scheduled task by parallel, by default of 5?
Laurence: Yes, the SPPR_SYS_RESERVEQUEUEITEM_B stored procedure will be called to retrieve the entries which are due to be processed. These will be distributed to the BATCH requestors, so these may* be running in parallel.
*may: These will be distributed to the available batch requestors. If you have 5 and 4 are already busy processing a lengthy activity, then it could be the cases that these are processed in sequence due to the circumstances.
In case the app node is multiple
If we have two nodes, how exactly does thing work? 5 Batch requestors times 2 process it by parallel?
Laurence: It will collect a set of records then attempt to reserve them individually, so a record will only be processed by one node.