Advanced agent hitting lock collisions on queue items
Running 30 advanced agents (three nodes with ten on each) and using the standard ProcessQueue activity to process queue items results in agents hitting lock collisions on work objects associated with queue items and failing to process.
2015-02-09 09:16:11,031 [ections01,maxpri=10]] [ STANDARD] [ MyApp:01.04.01] ( async.agent.QueueProcessor) WARN BatchProcess - Failed to dequeue item: SYSTEM-QUEUE-EXECUTIONREQUEST-SERVICE-PROCESSACCOUNTS 142349469155900082C51A1BE8BCE3C71ABC10DC28F2ECE8 for processing
com.pega.pegarules.pub.context.PRQueueException: InstanceNotFound Queue SYSTEM-QUEUE-EXECUTIONREQUEST-SERVICE-PROCESSACCOUNTS SYSTEM-QUEUE-EXECUTIONREQUEST-SERVICE-PROCESSACCOUNTS 142349469155900082C51A1BE8BCE3C71ABC10DC28F2ECE8
Steps to Reproduce
1. Create a Rule-Service-File to process requests asynchronously.
a. In Service file rule, Processing method is given as record at a time and data is mapped to clipboard.
b. Configure Execution mode as Execute asynchronously (queue for agent).
2. Create a Service request processor to place the data in a queue class (System-Queue-ExecutionRequest-Service-ProcessAccounts).
3. Configure advanced agents (more than one on each node) to process the data present in queue class. Specify Pattern as Periodic, Interval as 1000 Seconds, and Max records as 1000.
The root cause of this problem is a defect in Pegasystems’ code or rules.
Perform the following local-change:
1. Increase the number of work objects per queue from 1 to 100.
2. Reduce the number of agents from 30 to 10.
Published May 10, 2016 - Updated October 8, 2020