Appreciate you in taking time to reply to this discussion.
If it needs to be running on Only 1 Node, can you please help me in knowing why the Agent in the Agent Schedule should be Enable on all the Nodes ? Also, do we have any thesis on why it can run on only Node.
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.
By default, this agent runs the standard Code-.SystemCleaner activity once every 24 hours for housekeeping tasks, which include purging the following items:
Older records (instances) from log tables
Any requestors that have had no activity during at least 48 hours
Rows from the pc_events database table according to the EventsRetentionPeriod Dynamic System Setting (the default retention period is 90 days)
Any nodes that have not responded to the pulse for 30 days
Since for each agents rule, the system creates an Agent Schedule data instance for each node in a multi-node system thus in order to efficiently manage your cluster, you can dedicate certain nodes to run only selected functions, which includes batch processing ( agents ) , search, and services etc . You can ensure that a node performs only the required functions by configuring it to run only the function-related agents.It is easy to monitor as well.
So, my vote will go for having a dedicated node for this .