Discussion


Pegasystems Inc.
US
Last activity: 11 Jul 2016 11:21 EDT
Ask the Expert - Core Engine / Rules Engine
Meet Frank:
Frank is a Sr. Director of Product Management in the Core Engine portion of the Pega7 platform. Since joining Pega in 1998 as an intern, Frank has had a variety of roles at Pega working in the Pega Consulting organization leading numerous customer projects and helping launch Pega Academy. He is passionate about helping others harness the powers of the Pega 7 platform.
Message from Frank:
Hi, I’m happy to be part of the “Ask the expert” series. Over the next 2 weeks I’ll be happy to answer or help find answers to your questions related to the core engine and rules engine of the Pega 7 platform. What does this entail? Questions related to rule resolution, circumstancing, rule execution, utility functions, agents, declaratives, collections, business rule engine development and any other related areas.
Ask the Expert Rules
- Follow the Product Support Community's Community Rules of Engagement
- This is not a Live Chat - Frank Apap will reply to your questions over the course of this two-week event
- Questions should be clearly and succinctly expressed
- Questions should be of interest to many others in the audience
- Have fun!
Do You Have a Question for Frank? Leave a Comment below!
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!


Pegasystems Inc.
JP
Hi Frank,
I would like to get some ideas about the best practices for using circumstanced rule.
Circumstancing seems like a very flexible way to handle exceptional business rules.
However, since the circumstanced rule is a copy of the base rule, there could be many common logics existing in both base and circumstanced rules, and if we have to modify those common logics, the more circumstanced rules could bring more maintenance overhead.
Another concern with circumstanced rule is the complexity of its rule resolution approach, which may cause more confusion than the clarity.
Chunzhi


Pegasystems
US
Note that some rule types have a checkbox that says to call the base version of the rule, so you can have special cases in the circumstanced version of the rule and common cases handled in the base version. /Eric


Pegasystems Inc.
US
The choice of what approach to use to specialize logic is often based on some criteria about how the rule needs to be maintained and executed. Circumstancing is often valuable when there are a set of rules that apply based on a given criteria (e.g. "State = "MA" or "Member"="Gold"). Having this specialization logic as structured meta data makes it easy to find all of the related rules and quickly document all the rules for a given circumstance. Using circumstance templates can also be helpful in managing more complex specialization. I often find that one clear indication of a good use of circumstances is if the rules for a given circumstance are managed by a specialized team (think of a team of BAs that manage the requirements for a given state or country). There are situations, especially "one-off" specializations where the circumstancing concept may be more complex then embedding the logic as a when rule or if condition. Hope this helps.


TATA Consultancy Systems Ltd
CA
Frank,
If a rule is already circumstanced based on a property, PRPC is not allowing to change the circumstance from property to template. Do you think the future version of PRPC can handle this?


Pegasystems Inc.
US
Rami Reddy Kasu wrote:
Frank,
If a rule is already circumstanced based on a property, PRPC is not allowing to change the circumstance from property to template. Do you think the future version of PRPC can handle this?
Good timing! As of our upcoming 7.2.1 release you will be able to withdraw the the rule that is property circumstanced and introduce a new instance of the rule with template based circumstancing (in a higher ruleset version).


TATA Consultancy Systems Ltd
CA
Hi Frank,
From long time, I am having a question regarding security of PRPC Applciations exposed to internet. Then i tried several approaches to hack into PRPC which is hosted on my local environment by login into end user portal and with out login into PRPC itself.
Unfortunately i found ways to hack into PRPC with (login to end user portal) and without login into PRPC.
Now I would like to try it on some of the SSO protected internet exposed sites. Shall I use PEGA Systems internet exposed sites to play around and give the results back to PEGA Systems?
Thanks
Rami Reddy Kasu


Pegasystems Inc.
US
Rami Reddy Kasu wrote:
Hi Frank,
From long time, I am having a question regarding security of PRPC Applciations exposed to internet. Then i tried several approaches to hack into PRPC which is hosted on my local environment by login into end user portal and with out login into PRPC itself.
Unfortunately i found ways to hack into PRPC with (login to end user portal) and without login into PRPC.
Now I would like to try it on some of the SSO protected internet exposed sites. Shall I use PEGA Systems internet exposed sites to play around and give the results back to PEGA Systems?
Thanks
Rami Reddy Kasu
Given the sensitivity of security issues I recommend submitting a request to our support organization to discuss your concerns. Thanks.


Serialized Solutions Inc
CA
Hi Frank,
how does one configure a Pega node to act like a business rules engine process only (accessible via REST service)?
i.e. No case management implementation and no login required to use (except updating/adding new business rules)
So, a REST service would listen for requests to execute the different business rules.
thank you,
Rob


Pegasystems Inc.
US
Rob Jago wrote:
Hi Frank,
how does one configure a Pega node to act like a business rules engine process only (accessible via REST service)?
i.e. No case management implementation and no login required to use (except updating/adding new business rules)
So, a REST service would listen for requests to execute the different business rules.
thank you,
Rob
Generally you do not need to specifically configure a node to act as a BRE. If you want to optimize the node for BRE applications you could decide to stop any background agents that are not needed for your application (this will depend on exactly what features you are using or not using). If you want to prevent user logins (rather than just not use them) you can secure PRServlet via your webserver. Generally, in my experience allowing user login is still helpful for debugging issues or having managers login to review reports.


Serialized Solutions Inc
CA
Hi Frank,
thank you for the reply. It's good to know that nothing special is required to implement a Pega Node as a BRE. thank you..


Pegasystems
US
In response to the security question:
If we read the Pega documentation under > Engine Api > Database > Open, we see that it takes a boolean parameter called "aCheckSecurity", which anyone with write-access to activity rule forms can set to "false", and hence open any access group, rule, or work object, make changes, and save it.
From this I infer that basic Pega security relies on the portal limiting users from accessing activity rule forms or any other rules that give access to the java api library. /Eric


US
Frank,
On rare occasions we have recieved the following exception in our server logs:
java.lang.IllegalArgumentException: Assembled classes writer cannot be used for non generated assembled class.
When this happens, the only way we can correct is by clearing the pega cache directories on our application server. While this is simple enough to do, we want to understand this better so we can prevent it from happening in production.
Can you provide any insight to the cause of this error, and potential ways we can prevent the underlying issues from occuring in the future?
Thanks,
-Jon


Pegasystems Inc.
US
Jonathan Greger wrote:
Frank,
On rare occasions we have recieved the following exception in our server logs:
java.lang.IllegalArgumentException: Assembled classes writer cannot be used for non generated assembled class.
When this happens, the only way we can correct is by clearing the pega cache directories on our application server. While this is simple enough to do, we want to understand this better so we can prevent it from happening in production.
Can you provide any insight to the cause of this error, and potential ways we can prevent the underlying issues from occuring in the future?
Thanks,
-Jon
Hi, what version of the platform are you on? In general this type of question is probably best taken to our support organization so they can help deep dive into what might be causing this.


US
We are on 7.1.9


Pegasystems Inc.
US
Jonathan Greger wrote:
We are on 7.1.9
When you get the error does it also include a package name after the error message? Perhaps attaching a full stack trace may help me troubleshoot. Thanks.
Updated: 28 Jun 2016 17:09 EDT


US
Sure,
Below is a sanitized stack trace. IP addresses, application names, and other sensitive info has been removed and replaced with generic filler text.
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) 2016-06-23 14:34:24,569 [http-/ Proprietary information hidden:8080-5] [TABTHREAD0] [ ] [Application:03.01.01] (piler.DatabaseCompilationSaver) ERROR hostname.domainname.com|XXX.XXX.XX.XX USER - Problem saving Java sources to database
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) java.lang.IllegalArgumentException: Assembled classes writer cannot be used for non generated assembled class.
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.phase2.jdbc.JdbcJarWriter$VersionlessHelper.checkIfClassIsGenerated(JdbcJarWriter.java:726)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.phase2.jdbc.JdbcJarWriter$WriteConnection.doInsertClass(JdbcJarWriter.java:1041)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.phase2.jdbc.JdbcJarWriter$WriteConnection.insertClass(JdbcJarWriter.java:1010)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.DatabaseCompilationSaver.saveSources(DatabaseCompilationSaver.java:154)
Sure,
Below is a sanitized stack trace. IP addresses, application names, and other sensitive info has been removed and replaced with generic filler text.
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) 2016-06-23 14:34:24,569 [http-/ Proprietary information hidden:8080-5] [TABTHREAD0] [ ] [Application:03.01.01] (piler.DatabaseCompilationSaver) ERROR hostname.domainname.com|XXX.XXX.XX.XX USER - Problem saving Java sources to database
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) java.lang.IllegalArgumentException: Assembled classes writer cannot be used for non generated assembled class.
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.phase2.jdbc.JdbcJarWriter$VersionlessHelper.checkIfClassIsGenerated(JdbcJarWriter.java:726)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.phase2.jdbc.JdbcJarWriter$WriteConnection.doInsertClass(JdbcJarWriter.java:1041)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.phase2.jdbc.JdbcJarWriter$WriteConnection.insertClass(JdbcJarWriter.java:1010)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.DatabaseCompilationSaver.saveSources(DatabaseCompilationSaver.java:154)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.PRCompilerUtil.notifyCompilationListeners(PRCompilerUtil.java:786)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.PRCompilerEclipse._compile_privact(PRCompilerEclipse.java:602)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.PRCompilerEclipse$2.run(PRCompilerEclipse.java:510)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at java.security.AccessController.doPrivileged(Native Method)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.PRCompilerEclipse.compile(PRCompilerEclipse.java:507)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.PRCompilerEclipse.compile(PRCompilerEclipse.java:470)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.PRCompilerEclipse.compile(PRCompilerEclipse.java:404)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.compiler.PRCompilerEclipse.compile(PRCompilerEclipse.java:328)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.assembly.FUAInstance.compileClass(FUAInstance.java:2396)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.external.assembly.Assembler.compileClass(Assembler.java:954)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.cache.AssemblerFunctions.writeJavaFileAndCompile(AssemblerFunctions.java:394)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.cache.AssemblyCacheBase.writeJavaFileAndCompileAndLoad(AssemblyCacheBase.java:1610)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.cache.AssemblyCacheBase.buildAndOrLoadJavaClass(AssemblyCacheBase.java:1696)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.cache.AssemblyCacheBase.getGeneratedJava(AssemblyCacheBase.java:3091)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.cache.appcentric.RACacheAppCentricImpl.addEntryToMemoryCache(RACacheAppCentricImpl.java:1161)
14:34:24,580 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.cache.appcentric.RACacheAppCentricImpl.find(RACacheAppCentricImpl.java:1008)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.cache.AssemblyCacheWrapper.find(AssemblyCacheWrapper.java:799)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.assembly.FUAManagerImpl.getInternal(FUAManagerImpl.java:1408)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.assembly.FUAManagerImpl.get(FUAManagerImpl.java:1296)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.generation.internal.PRGenProviderImpl.get(PRGenProviderImpl.java:476)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.StreamBuilderTools.appendStreamKeepProperties(StreamBuilderTools.java:700)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.autostreams.IncludeStreamRuntime.getStream(IncludeStreamRuntime.java:332)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.autostreams.IncludeStreamRuntime.emitIncludeStreamReference(IncludeStreamRuntime.java:252)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.autostreams.AutoStreamRuntimeImpl.emitIncludeStreamReference(AutoStreamRuntimeImpl.java:358)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.sectionBodyIncludeInCell_1(ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.java:304)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.simpleLayoutCell_7(ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.java:801)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.simpleLayout_3(ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.java:826)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.pzLayoutBodyWrapper_3(ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.java:266)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.pzLayout_3(ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.java:839)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.pzSectionBody_1(ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.java:255)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.execute(ra_stream_pzrequestormanagement_c8225c94905370378f4775d3dd71b766.java:100)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.StreamBuilderTools.appendStreamKeepProperties(StreamBuilderTools.java:717)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.autostreams.IncludeStreamRuntime.getStream(IncludeStreamRuntime.java:332)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.autostreams.IncludeStreamRuntime.emitIncludeStreamReference(IncludeStreamRuntime.java:252)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.autostreams.AutoStreamRuntimeImpl.emitIncludeStreamReference(AutoStreamRuntimeImpl.java:358)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.sectionBodyIncludeInCell_2(ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.java:645)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.simpleLayoutCell_2(ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.java:666)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.simpleLayout_2(ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.java:696)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.pzLayoutBodyWrapper_2(ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.java:605)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.pzGroup_1(ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.java:937)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.pzSectionBody_1(ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.java:224)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_section.ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.execute(ra_stream_pzlpsystemmanagementinner_8113b9bcb727a5f4a6aabbe956f0c210.java:100)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.Executable.getStream(Executable.java:4038)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.autostreams.AutoStreamRuleRuntime.getSectionStream(AutoStreamRuleRuntime.java:149)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_harness.ra_stream_pzlpsystemmanagement_923522c2abf869055537af24a7d266e0.includeSectionBody_2(ra_stream_pzlpsystemmanagement_923522c2abf869055537af24a7d266e0.java:3052)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_harness.ra_stream_pzlpsystemmanagement_923522c2abf869055537af24a7d266e0.generatePegaHarnessDiv_6(ra_stream_pzlpsystemmanagement_923522c2abf869055537af24a7d266e0.java:1846)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.html_harness.ra_stream_pzlpsystemmanagement_923522c2abf869055537af24a7d266e0.execute(ra_stream_pzlpsystemmanagement_923522c2abf869055537af24a7d266e0.java:697)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.Executable.getStream(Executable.java:4038)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.Executable.getStream(Executable.java:3866)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.activity.ra_action_displayharnesswithclass_4cc9f9e9cb9b892dd9c83273e3c08a6c.step4_circum0(ra_action_displayharnesswithclass_4cc9f9e9cb9b892dd9c83273e3c08a6c.java:495)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.activity.ra_action_displayharnesswithclass_4cc9f9e9cb9b892dd9c83273e3c08a6c.perform(ra_action_displayharnesswithclass_4cc9f9e9cb9b892dd9c83273e3c08a6c.java:120)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.activity.ra_action_pxopenlandingpage_5428bf8b037f392531a7606f25485c67.step7_circum0(ra_action_pxopenlandingpage_5428bf8b037f392531a7606f25485c67.java:663)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.activity.ra_action_pxopenlandingpage_5428bf8b037f392531a7606f25485c67.perform(ra_action_pxopenlandingpage_5428bf8b037f392531a7606f25485c67.java:176)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.activity.ra_action_douiaction_e7228a040c3bf89efe31545c6149a3d4.step16_circum0(ra_action_douiaction_e7228a040c3bf89efe31545c6149a3d4.java:1744)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pegarules.generated.activity.ra_action_douiaction_e7228a040c3bf89efe31545c6149a3d4.perform(ra_action_douiaction_e7228a040c3bf89efe31545c6149a3d4.java:321)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivitiesAlt(ThreadRunner.java:646)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.runActivitiesAlt(PRThreadImpl.java:461)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.runActivities(HttpAPI.java:3358)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequestInner(EngineAPI.java:385)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.GeneratedMethodAccessor97.invoke(Unknown Source)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at java.lang.reflect.Method.invoke(Method.java:498)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1270)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1008)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:841)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequest(EngineAPI.java:331)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.invoke(HttpAPI.java:852)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:315)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl$4.run(EngineImpl.java:268)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at java.security.AccessController.doPrivileged(Native Method)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:265)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.session.internal.engineinterface.etier.ejb.EngineBean.invokeEngine(EngineBean.java:225)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown Source)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at java.lang.reflect.Method.invoke(Method.java:498)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370)
14:34:24,581 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:411)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:223)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingException(AppServerBridgeToPega.java:245)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.etier.ejb.EngineBeanBoot.invokeEngine(EngineBeanBoot.java:168)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at java.lang.reflect.Method.invoke(Method.java:498)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.tx.EjbBMTInterceptor.handleInvocation(EjbBMTInterceptor.java:104)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.tx.BMTInterceptor.processInvocation(BMTInterceptor.java:60)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.security.AuthorizationInterceptor.processInvocation(AuthorizationInterceptor.java:116)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:86)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories$2.processInvocation(EjbExceptionTransformingInterceptorFactories.java:103)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.etier.interfaces.EngineLocal$$$view18.invokeEngine(Unknown Source)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngineInner(JNDIEnvironment.java:278)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngine(JNDIEnvironment.java:223)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.web.impl.WebStandardImpl.makeEtierRequest(WebStandardImpl.java:574)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.web.impl.WebStandardImpl.doPost(WebStandardImpl.java:374)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.GeneratedMethodAccessor96.invoke(Unknown Source)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at java.lang.reflect.Method.invoke(Method.java:498)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:411)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:223)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:272)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.web.servlet.WebStandardBoot.doPost(WebStandardBoot.java:121)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at com.pega.pegarules.internal.web.servlet.WebStandardBoot.doGet(WebStandardBoot.java:92)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at java.lang.reflect.Method.invoke(Method.java:498)
14:34:24,582 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:264)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:262)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at java.security.AccessController.doPrivileged(Native Method)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:296)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:156)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:288)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:59)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:197)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at java.security.AccessController.doPrivileged(Native Method)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.web.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:134)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.web.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:99)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.web.session.JvmRouteValve.invoke(JvmRouteValve.java:92)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.web.session.LockingValve.invoke(LockingValve.java:64)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
14:34:24,583 INFO [stdout] (Dispatcher-Thread-111) at java.lang.Thread.run(Thread.java:745)
-Jon


Pegasystems Inc.
US
Do you happen to be running with Java Security enabled?


Pegasystems Inc.
US
You can open a ticket with GCS to investigate further. We have a similar issue with HFix-24731 for Websphere. Most likely you need a port to jboss.


ConEdison
US
Hi Frank,
Circumstanced rules have a limitation while developing in branches. The base rule must be saved into branch and then the circumstanced rule. This causes issues for code base in large parallel development projects. There may be another team who has to really change the base rule, but they will have to take care of merge conflicts, manual verification...etc with base rule versions in other branches even though those were just saved because of the limitation. What are your thoughts on this ?


Pegasystems Inc.
US
Ravi Ramineni wrote:
Hi Frank,
Circumstanced rules have a limitation while developing in branches. The base rule must be saved into branch and then the circumstanced rule. This causes issues for code base in large parallel development projects. There may be another team who has to really change the base rule, but they will have to take care of merge conflicts, manual verification...etc with base rule versions in other branches even though those were just saved because of the limitation. What are your thoughts on this ?
Hi Ravi,
I was able to create a circumstanced rule in a branch without having to copy the base rule into the branch. Can you verify the behavior? Perhaps show a screenshot of what happens when you try to circumstance the rule without the base rule in the branch.
Also, it may be helpful to know what version of the platform you are on.
Thanks.


United Health Group
US
Hi Frank
How do you switch your ruleset stack midstream in PRPC 7.1.9?
WHen I say midstream I mean for example within the activity that a REST Service would call.
I've tried switching access groups like called setActiveAccessGroup but it still does not seem to switch my ruleset stack.
Keep in mind also my requestor I believe would be an APP requestor


Pegasystems Inc.
US
Terrance Krolak wrote:
Hi Frank
How do you switch your ruleset stack midstream in PRPC 7.1.9?
WHen I say midstream I mean for example within the activity that a REST Service would call.
I've tried switching access groups like called setActiveAccessGroup but it still does not seem to switch my ruleset stack.
Keep in mind also my requestor I believe would be an APP requestor
setActiveAccessGroup is the preferred mechanism IF the access group is an access group listed as an additional access group in the user's profile. You didn't mention if your service requestor (APP) is authenticated or unauthenticated. If it was authenticated than any access group passed to setActiveAccessGroup would need to be listed in that operators record. If unauthenticated then setActiveAccessGroup will not work. There are lower level APIs that may fit your use case. Can you elaborate on what you are trying to achieve (from a high level) and if the service is authenticated or unauthenticated?


United Health Group
US
This is for our DevOps project where we are trying to build a continuous integration feature in for deployment but we want to run unit tests first for the target application to determine if we should deploy or not based on the results of the unit tests.
Its not authenticated. I'm trying call a REST service and the REST service will then execute Pega unit tests for a particular target application (and ruleset stack). So the REST service is associated with a service package pointing to some more generic access group containing the ruleset the service is in and when the service calls an activity I then need the activity to execute the unit tests for the target application. I was going to pass the name of the target applications access group into the REST service and have the activity that it calls switch to it (-ie- switch ruleset stacks) so it then is able to run the units tests that are in that new ruleset stack.


Pegasystems Inc.
US
Terrance Krolak wrote:
This is for our DevOps project where we are trying to build a continuous integration feature in for deployment but we want to run unit tests first for the target application to determine if we should deploy or not based on the results of the unit tests.
Its not authenticated. I'm trying call a REST service and the REST service will then execute Pega unit tests for a particular target application (and ruleset stack). So the REST service is associated with a service package pointing to some more generic access group containing the ruleset the service is in and when the service calls an activity I then need the activity to execute the unit tests for the target application. I was going to pass the name of the target applications access group into the REST service and have the activity that it calls switch to it (-ie- switch ruleset stacks) so it then is able to run the units tests that are in that new ruleset stack.
In this case I believe you may need to use the tools.getThread().getAuthorization().setRuleSetList APIs. They are documented in the engine API javadocs under PRAuthorization class. I'm going to continue to check if there are other options as well.


United Health Group
US
It would seem to imply that using this I would need to gather the list of rulesets instead of just be able to specify an application or access group?


CAPGEMINI
IN
What are The Significant, potential features in Pega7x versions over Pega6x versions that are useful for
1) DEVELOPERs and
2) END Users.
Thanks,


Pegasystems Inc.
US
Short answer: A LOT!
Seriously, since Pega6, Pega7 has introduced 100s if not 1000s of features that impact developer productivity, platform performance and stability, end user experience and more. Off of the top of my head some of the areas I'd be most excited about:
Short answer: A LOT!
Seriously, since Pega6, Pega7 has introduced 100s if not 1000s of features that impact developer productivity, platform performance and stability, end user experience and more. Off of the top of my head some of the areas I'd be most excited about:
- Live Data access - THrough the use of the data page construct retrieving and access data (both internal and external) is much simpler and more efficient than it ever was. The auto populate properties capability can almost feel like your data magically appears when you need it.
- "Huuuge" improvements in UI modeling (Live UI) - Working in the core engine I can't really do justice to all of the large improvements in this area. It's now much easier to build beautiful interfaces without HTML or JS. Also our generated code has become more efficient.
- Tons of improvements to building mobile applications from within the model
- Pega 7 Express - an amazing experience for quickly getting application development moving quickly and helping business users get started building an application.
- Multiple Built On Applications - Allows for more robust application modeling which in return reduces complexity in maintenance.
- So many more.... Check out some of these what's new documents for more detail on new capabilities:
https://collaborate.pega.com/discussion/installation-failure-pega-718-using-linux
https://collaborate.pega.com/discussion/update-approaches-pega-714-pega-72
https://collaborate.pega.com/discussion/update-approaches-pega-714-pega-721


Capgemini
DE
Hi Frank,
from an academic standpoint, we shouldn't be using any activities at all. Yet in the field and as You most certainly know, activities can't be avoided at some point. Unfortunately, we're being penalized a lot by guardrails for using them even where they are necessary (e.g. integration).
Having this in mind, what is the roadmap for activities (and its alternatives)? Is it a strategic goal to get rid of them after all?
Thanks + regards
Wojtek


Pegasystems Inc.
US
Wojtek Nowak wrote:
Hi Frank,
from an academic standpoint, we shouldn't be using any activities at all. Yet in the field and as You most certainly know, activities can't be avoided at some point. Unfortunately, we're being penalized a lot by guardrails for using them even where they are necessary (e.g. integration).
Having this in mind, what is the roadmap for activities (and its alternatives)? Is it a strategic goal to get rid of them after all?
Thanks + regards
Wojtek
Our roadmap is to continue to work to reduce the need for activities by providing additional capabilities in the model in rules like data pages and transforms. You mentioned integration as a case where activities are still required. In many cases integration can be achieved with data pages, do you have a use case (or 2) where integration still requires activities?
Updated: 30 Jun 2016 12:42 EDT


Capgemini
DE
Thank You, Frank! I am using 7.1.9, hence I don't know whether later versions are improving on this.
As far as integration goes, yes, You can use a Data Page on Connector side of things. On the Service side (REST, SOAP, Java) and AFAIK, there's really no other way than activities. Is there?


Pegasystems Inc.
US
Wojtek Nowak wrote:
Thank You, Frank! I am using 7.1.9, hence I don't know whether later versions are improving on this.
As far as integration goes, yes, You can use a Data Page on Connector side of things. On the Service side (REST, SOAP, Java) and AFAIK, there's really no other way than activities. Is there?
Yes that is an area that still requires some activities to be written. We continue to try to find ways to eliminate the need for the activities.


Pegasystems Inc.
IN
Hi Frank, Good morning!
>>> do you have a use case (or 2) where integration still requires activities?
-
we've to provide/configure activity rules in Integrator and Assignment service flow shapes.
- integrator and assignment service flow shape provides OOTB error handling via ConnectionProblem flow rule.
Please share your thoughts/comments, Thank you!
psahukaru


Pegasystems Inc.
US
Yes, these are areas that still use activities when you wish to extend the behavior.


GovCIO
US
Hi Frank,
As we started using Pega 7 in our env, we would like to know the new list of API's introduced as a part of core engine. Do you have a list of API's and the documentation for it? Or, if you can give me the link where I can find the consolidated list for all the new API's in Pega 7.
Thank you and have a nice weekend.
Ravi Kumar.


GovCIO
US
Hi Frank,
As we started using Pega 7 in our env, we would like to know the new list of API's introduced as a part of core engine. Do you have a list of API's and the documentation for it? Or, if you can give me the link where I can find the consolidated list for all the new API's in Pega 7.
Thank you and have a nice weekend.
Ravi Kumar.


Pegasystems Inc.
US
Ravi Kumar Pisupati wrote:
Hi Frank,
As we started using Pega 7 in our env, we would like to know the new list of API's introduced as a part of core engine. Do you have a list of API's and the documentation for it? Or, if you can give me the link where I can find the consolidated list for all the new API's in Pega 7.
Thank you and have a nice weekend.
Ravi Kumar.
Hi, when you say core engine APIs are you referring to the public Java API? We also have the process engine API (rules) and JS APIs. The Public Java API can be found from your prhelp deployment (usually prhelp/javadocs/index.html ). It does not contain a "delta" unfortunately. Most of this API does not changes from version to version. I will look further to see if we have an easy way to provide you with a list of APIs that were added.


GovCIO
US
Thanks for the quick reply, Frank. Will wait for your reply and at the same time I will keep checking the help system.
Thanks,
Ravi Kumar.


CAPGEMINI
IN
Hi Frank,
In Datapages, when the value for "Structure" fields is selected as "List" -- we are seeing one option : 'Access pages with user defined keys' and when Checking that option , it is displaying the section - "PAGE LIST KEYS" and "Allow multiple pages per key"
So i have 2 Questions here :
1) What is the use/when do we actually use "Allow multiple pages per key"
2) What is the significant difference betweeen 'Parameterized' Data pages vs 'Access pages with user defined keys'
Thanks,
Raj


Pegasystems Inc.
US
Allow multiple keys per page allows you to return a pagelist for a key instead of a single page. So in a situation where you "key" is not unique accessing the data page by the key returns you a pagelist and not a page.
The difference between parameterized pages and access pages with user defined keys is a subtle but important one. Take "customer address page" as one example. Using parameterized pages you may have the acct # as the parameter, this means when you access the page for Acct=A1234 a separate page is created and the load activity is run for A1234. When you access it for B5678 the same thing occurs again (load activity / connector is run). With user defined keys the entire set of data is loaded at once and the key provides fast lookups of that data. An example of that might be a list of valid "Product Codes". You would bring the entire list into memory with one call to the load activity, then you could lookup a product codes description based on the user defined key (ProductID).
Hope that helps!
Updated: 4 Jul 2016 2:52 EDT


Hi Frank,
Do we have any document to understand how Lock Cache works?
In few cases, we are facing the issue with lock cache.. Eg: Lock should be acquired when Work object was opened to perform the assignment (default locking in use). But while opening the assignment, it says lock was already owned, but i couldn't see any entry in the pr_sys_locks table.
LockManagerImpl and Lockcache loggers are enabled and tried to debug, it says lock hit/found by LockCache impl class. As the lock was not present in pr_sys_locks, after running through few assignments and when i am resolving the case it throws
commit error saying lock was not held.
PRPC Version: 7.2
Updated: 5 Jul 2016 5:11 EDT


The root cause for the lock issue was, we have multiple nodes that are running in different time zones and due to the difference in time zones, the lock was treated as a soft lock whenever the work object was processed/access by another node with different time zone.
As the expiredatetime in pr_sys_locks was not maintained in GMT, this might be the expected behavior .. maintaining the same time zone in all servers will resolve the issue


Pegasystems Inc.
JP
Have you observed any issues other than unexpected soft lock ?
Does PRPC functions normally at all if the AP server runs on a different time zone than that of the DB server?


Pegasystems Inc.
IN
The issue is having different time zones w.r.t to App Server, so far we haven't observed other issues


Pegasystems Inc.
US
Yes, as mentioned in the installation guide the appservers and DB should have the same timezone.
See page 14 of https://docs-previous.pega.com/pega-721-platform-installation-guide-oracle-weblogic-server-and-oracle


AIG
US
Hello Frank,
We have used performance monitoring tools like Dynatrace, yslow, and have the below recommendations. How can we address the below? Do you have plans to address the below issues in your next version of Pega? Are there any local workarounds for time being?
Combine JavaScript and CSS into individual files instead of multiple
By having fewer files to retrieve, the browser and web server communicate less. This means fewer round trips between the two.
Minify JavaScript and CSS where available
Minifying the JavaScript and CSS would reduce the size of the content being retrieved.
Reduce content size with gzip
Just like minifying, this reduces the size of the content being retrieved from the web browser, allowing the page to load faster.


Pegasystems Inc.
US
We are always looking to improve the performance of the platform especially the way HTML/CSS is constructed and transferred. We are actively looking at ways to greatly reduce the amount of content that goes "across the wire" which should help with at least the first two areas listed above. I'm not aware of any local ways you can easily enact these recommendations.


First Tech Federal Credit Union
US
Hi
I am getting the below Error while creating the Work object trough agent or manually running the standalone activity
"Cannot obtain a lock on instance XXX, as Requestor null already has the lock ".
Can you please provide any inputs to overcome the above issue


Pegasystems Inc.
US
This sounds like a requestor already has a lock on the object, the requestor null part is a bit confusing. Can you elaborate further on what else is going on in the system?
You can also use the All Locks report to see if a lock is held:
Process & Tools | Tools | Work Admin | All Locks


Pegasystems Inc.
US
Thank you to everyone on a successful Ask the Expert session with Frank Apap!
If you have additional questions, please continue to Write a Post in our main Community area!