Question
CIBC
CA
Last activity: 21 Oct 2018 5:08 EDT
How to define server specific settings?
Hi Everyone,
Our application is deployed on a WebLogic cluster. Nodes in this cluster are spread across multiple physical servers. Each server has its own specific settings such as MQ queue manager name, MQ request queue, MQ response queue, etc.
At run-time, each node should use correct server specific values. For instance, to/from which MQ queue manager send/receive messages. Using DSS doesn't seem to help since the settings are global. Should we define these server specific settings in prconfig.xml file instead? If yes, could you please explain how?
Thanks,
Masoud Taherkhani
***Updated by moderator: Lochan to update Categories***
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Pegasystems Inc.
IN
Hi
You might want to change settings in the prconfig.xml file when you only want the settings to apply to a subset of nodes. Settings in the prconfig.xml file apply to the node on which the prconfig.xml file resides.
Coming to the point of defining the server settings, can you specify what are the settings you are trying to specify?
Screenshot can help.
CIBC
CA
For instance, this is what we have defined for MQ settings in DSS of "development" environment (1 node, 1 server, 1 MQ):
Owning Ruleset Setting Purpose Value
---------------------------------------------
Ruleset-XYZ QueueMgr QMgrD1
Ruleset-XYZ RequestQueue QMgrD1.INQ
Ruleset-XYZ ResponseQueue QMgrD1.RSP
We need to change the above implementation, so the code can be deployed to "test" environment (2 nodes, 2 servers, 2 MQ):
QueueMgr QMgrT1
RequestQueue QMgrT1.INQ
ResponseQueue QMgrT1.RSP
QueueMgr QMgrT2
RequestQueue QMgrT2.INQ
ResponseQueue QMgrT2.RS
-
Alexandre Nevski
JPMorgan Chase & Company
US
HI,
Is there any specific reason, why are planning defining two Queues for reading messages ?. Weather is it a single node or multi node you can push messages to one queue and read the messages.
CIBC
CA
Hello,
This is an existing configuration; each of the 2 servers has its own MQ Queue Manager on that box. I believe the intention must have been to avoid having a single point of failure (SPOF). Also, currently, there are other applications running on these servers, so changing the existing configuration is not feasible.
Pegasystems Inc.
US
Hi Masoud,
There are a couple of 'classifications' that can be used.
Old school is here
https://community.pega.com/sites/default/files/help_v722/procomhelpmain.htm#howto/howto2/createupdateprconfigsetting.htm?Highlight=classification
New School is here
https://community.pega.com/sites/default/files/help_v74/procomhelpmain.htm#engine/node-classification/eng-node-classification-con.htm#Node_classification
The old school way involves setting the value of the trailing element of the DSS in a prconfig setting
You need to put this in your prconfig.xml
Hi Masoud,
There are a couple of 'classifications' that can be used.
Old school is here
https://community.pega.com/sites/default/files/help_v722/procomhelpmain.htm#howto/howto2/createupdateprconfigsetting.htm?Highlight=classification
New School is here
https://community.pega.com/sites/default/files/help_v74/procomhelpmain.htm#engine/node-classification/eng-node-classification-con.htm#Node_classification
The old school way involves setting the value of the trailing element of the DSS in a prconfig setting
You need to put this in your prconfig.xml
To change a prconfig setting's value for a subset of your nodes, create a classification. Classifications are defined in a nodeclassification
setting in the prconfig.xml file, for example, <env name="initialization/nodeclassification" value="Agents"/>
.
Note: Dynamic System Settings that reference a classification in their Setting Purpose string, for example prconfig/agent/enable/Agents
, are applied only to nodes that include this classification.
The new method involves passing a type to the JVM and associating certain agent/listener/ … this became available in Pega 7.3 - read about it best in the 7.4 help link above
Hope this helps,
Jim
CIBC
CA
Thank you Jim for your response.
We are using Pega 7.2.2. I performed the following steps:
1- In prconfig.xml added this line and restarted the node:
<env name="initialization/nodeclassification" value="ServerOne" />
2- Added these three in DSS:
Owning Ruleset* Setting Purpose* Value
Pega-Engine prconfig/mq/default MQ_0
Pega-Engine prconfig/mq/serverone MQ_1
Pega-Engine prconfig/mq/servertwo MQ_2
Note: Pega saved classifications in lowercase when I created the above DSS (i.e. serverone and servertwo), but in prconfig.xml we have value="ServerOne"
3- Tried reading the value in a When rule:
3-1- false : "MQ_1" = @(Pega-RULES:Utilities).getDataSystemSetting("Pega-Engine", "prconfig/mq")
3-2- true : "MQ_1" = @(Pega-RULES:Utilities).getDataSystemSetting("Pega-Engine", "prconfig/mq/serverone")
3-3- true : "MQ_2" = @(Pega-RULES:Utilities).getDataSystemSetting("Pega-Engine", "prconfig/mq/servertwo")
Since this node is serverone, I was hoping to read the value using 3-1- above.
Any suggestions is highly appreciated.
Covance
US
Hi Masoud - I feel what you are going about this in the wrong way - if I understand your need correctly you are trying to achieve failover using this setup (i.e. prevent a single point of failure). I don't think this should be the way to get that to work.
I believe the MQ setup allows you to provide a comma separated list of provider URLs in it's setup (I can remember IBM WebSphere allowed that at least from one of my previous projects) which is what you should use to prevent a single point of failure as opposed to trying to code that logic into the calling application. So, you can just create a single MQ manager, and corresponding send and receive queues - but have it setup with an end point URL that contains all the servers where it is hosted within a given environment. That way you are putting the responsibility of load balancing it on your application server. If WebLogic doesn't allow you to setup the queues in that manner (i.e. comma separated list of URLs) I would consider using a load balancer URL as your end point URL that balances the load against the multiple instances you have up and running in a given environment.
Adaps
IN
Please find the below link might help you
Coforge Technologies (Erstwhile Incessant Technologies)
GB
-
Surath Madanayake