Pega 7.3 introduced a new feature where you can associate an agent to a Node Type. The associated agent runs only on those Node Types. Say, there are 50 nodes (30 BackgroundProcess type and 20 WebUser type), an agent associated to "WebUser" node type will only run on those 20 nodes.
"After you create an agents rule, the Agent Manager generates one agent schedule data instance for each node running on your Pega Platform system the next time it checks for new agents rules.
In a multinode system, for each agents rule, the Agent Manager generates one agent schedule instance for each node. For example, if a clustered Pega Platformsystem has five nodes, then there are five Pega-ProCom Agent Schedule data instances generated from the Pega-ProCom agents rule."
Thanks for the reply. I agree to this if the nodes are not classified. There is a variation to this behaviour when the nodes are classified. That variation is not mentioned in that help page. Review the AGENTS rule form in pega 7.3 and you'll see new option to choose the node type for each agent listed.
I did some quick testing to try and answer this. The behavior I saw was that all nodes regardless of type had one Data-Agent-Queue instance created for it, but I think there may be a bug related to this functionality. I'm checking internally and will update again once I know more!
I understand from your response that one Data-Agent-Queue is created for each node. I've a question here. In brief, the question is - Are the schedule instances created One per NodeType or One per node?
Now in 7.3, Data-Agent-Queue(s) are supposedly created per NodeType (as per my understanding), but not per node. If you see the screen shot attached in my initial post/question, I highlighted following with green and red markings:
A Data-Agent-Queue is created per NodeType and if a agent in the AGENTS rule is assigned a nodeType, then that agent is ENABLED in that schedule instance. Agents assigned with other NodeType are not enabled in that schedule instance.
say AGENT1 is running on Node1 and Node2 (both are of NodeType "BackgroundProcessing).
If behavior in my screenshot is the expected behavior, I don't see an option to disable AGENT1 above on Node1 and keep it running on Node2 (finer control). I'll be forced to enable/disable the AGENT1 on all the nodes of NodeType "BackgroundProcessing".
From an architecture standpoint, how does Pega want this feature to work? If I forget how it is behaving now, I would like to understand How it is expected to behave.
I have received some additional information, so I should be able to answer your questions.
If node classification is enabled on all nodes, Schedule instances are created per NodeType (in my testing, I did not define a NodeType for my node so a schedule was created for my untype node).
Your understanding is correct. If you have an agent set to run on a particular node type, one Schedule instance is created and you are unable to specify if only some nodes of that type run the agent. Keep in mind though that you can utilize up to five custom node types and you can have nodes be of multiple types. This gives you two options:
1) Instead of configuring the agent to run on nodes of type "BackgroundProcessing" and not wanting all of those nodes to run the agent, configure those nodes to additionally be of type "Custom1" and only have that agent run on "Custom1" nodes.
2) If you configure a node to be two node types and also configure the agent to run on those node types, you can then disable the agent from running on one of the node type's schedule. My understanding is that it should not run in this case. (That being said, I currently do not have that working and am working to determine if it's a bug or if there is some configuration I'm missing).
Even if I use Custom1 node type, I wouldn't be able to enable/disable an agent on a single node of my choice (this need may arise during debugging or for whatever reason). But may be, I can stop/start that agent on the node of my choice via SMA manually. I'll take this as a workaround.
Based on the above comments, schedule instances are not tightly coupled to the nodes like in pre 7.3 releases. Schedule instance is One-One with NodeType. Then, what does the "Node Name" read-only field on the schedule instance signify?(see my screenshot in initial post). May be it can be removed from the rule form. isn't it?
I apologize for any confusion, but the second possibility I mentioned is actually not possible. If one of a node's types has an agent scheduled to run on it, it will be enabled on that node. Should you need to disable an agent on one or some nodes of a type that has the agent scheduled to run, this will need to be done via SMA or the agent management landing page.
As far as the Node Name field, my guess would be that it is there for when node types are not specified or used, as the behavior will be the same as it used to be. But I will verify this.