Running agents on a multi-node system
Summary
For each agents rule, the system creates an Agent Schedule data instance for each node in a multi-node system. All agents will run in a multi-node setup.
However, for some customer Legacy-mode agents, contention can occur. To prevent contention and wasting resources, Legacy-mode agents should be disabled on all but one node of a multi-node system.
This article applies to V5.4 agents in Legacy mode, and to all agents in releases prior to Version 5.4. This issue does not occur with Standard-mode agents, as the Auto Queue Manager functionality prevent contention and wasting resources. The shipped PegaRULES system agents should also run on all nodes.
Suggested Approach
For each Agents rule, the system creates Agent Schedules for each node in a multi-node system. However, for some Legacy-mode agents, contention can occur. As an example, suppose you have a system with four nodes, and an agent has ten tasks that are queued for processing. The agent on Node A picks the first task from the queue, locks the associated work object, and begins processing that task.
The agent on Node B goes to the queue and also picks the first task (which is still there, as it hasn’t been completed). When it tries to get a lock on the work object, it is blocked (since Node A has that lock); the agent on Node B then either goes back to sleep, not having accomplished anything, or chooses the next task in the queue and begins processing that.
Now Node C goes to the queue. It tries the first item, and finds that locked, and then tries the second, and finds that locked. It finally picks up the third item (having wasted system resources trying to process the first two tasks) and processes that. And Node D has to go through the first three tasks before getting to one that isn’t locked.
To prevent this contention, it is recommended that one node be chosen to do the agent processing. The agents on the other nodes should then be disabled, by opening the Agent Schedule form for each node, and unchecking the Enabled box for each agent.
Note that if additional servers are added into this system, their agents must also be disabled, once the Agent Schedules are created for that node by the system.
NOTE: In Version 5.1 and later, functionality in the Pega-ProCom SLA and BulkProcessing agents allows them to operate on multiple nodes without contention. Thus, these agents can be enabled on every node.