Question
CGI
US
Last activity: 19 Sep 2017 11:41 EDT
Pega 7.3 Node classification - question on agent schedule creation
Assumptions: Cluster has three nodes. Node1, Node2 and Node3. Node1 and Node2 - classified as "Background Processing". Node3 - classified as "WebUser".
In my application, say, I created one AGENTS rule named "ReserveIt". It has two agents configured.
Agent1 - Associated to Node Type "Background Processing".
Agent2 - Associated to Node Type "WebUser".
How many agent schedule instances are created by Pega here? Is it created like in #1 or like in #2 below?
- Are those created by AGENTS rule + Node Types combination ? (Agent Schedule instances will NOT be created per Node in the cluster).
- ex: "ReserveIt.Background Processing" as one schedule instance, "ReserveIt.WebUser" as another schedule instance. i.e. as many schedule instances as there are node types selected in that AGENTS rule.
- The combination in #1 is created for all the nodes in the cluster? i.e. 3 nodes X 2 = 6 schedule instances in our example for the AGENTS rule "ReserveIt".
In attached screen shot, I see schedule instances as said in #1. Those schedule instances have a node name as well. So I was checking if those instances are created for every classified node?
If #2 is correct, then the no. of agent schedule instances created per AGENTS rule will be higher than in pre 7.3 releases. Not sure what is simplified.
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Accepted Solution
Pegasystems Inc.
US
The node name field being displayed for agent schedules running on node types has been identified as a bug and is fixed in 7.3.1. In 7.3, this can simply be ignored.
Virtusa IT Consulting
AE
I think only two agent schedule instances should be created. I am not able to follow why you are associating an agent with a node type whilst both are background processes?
CGI
US
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.
Virtusa IT Consulting
AE
"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."
https://community.pega.com/sites/default/files/help_v73/procomhelpmain.htm
CGI
US
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.
That is what I would like to understand.
CGI
US
My question is not clarified yet. Appreciate any help.
Pegasystems Inc.
US
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!
CGI
US
Sure, thanks for responding.
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.
My Question:
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.
Pegasystems Inc.
US
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).
CGI
US
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?
Pegasystems Inc.
US
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.
Accepted Solution
Pegasystems Inc.
US
The node name field being displayed for agent schedules running on node types has been identified as a bug and is fixed in 7.3.1. In 7.3, this can simply be ignored.
CGI
US
Thanks for checking and confirmation.