Troubleshooting: PRPC 6.2 SP2 runs wrong rule or fails to see a new function after application enhancement (HFix-6560, HFix-6647)
This article supersedes the following articles:
Article 43826, HFix-5977 delivers Conclusion Cache optimizations and related core engine updates
Article 43761, Troubleshooting: HFix-5059 corrects Rules Assembly Cache issues
Article 43851, Troubleshooting: PRPC fails to run updated rule (NoSuchMethodError)
Rules Assembly Cache issues can cause a variety of symptoms and incorrect results in your PRPC 6.2 SP2 application if you have not installed HFix-6560 and HFix-6647. Understand what these hotfixes deliver, particularly the Additional related hotfixes that each primary fix includes.
HFix-6560, HFix-6647, and additional related hotfixes
HFix-6560 (NoSuchMethodError, PRPC fails to run updated rule) provides a class that was omitted in the file HFix-5977.zip. You must install Hfix-6560 if you installed HFix-5977.
The class is prprivate - com/pega/pegarules/generation/internal/cache/RACommonLog.java
.
HFix-6647 (FUAEntry.java, PRPC fails to run updated rule) supersedes HFix-5977 and includes the changes delivered in HFix-5977 in addition to new changes.
With HFix-6647, you might want to improve startup performance and first-use experience by creating the database indexes described in the Suggested Approach section of this article.
The DL files that you receive for HFix-6560 and HFix-6647 list the primary Hotfixes you selected and the Additional related hotfixes that are included in the primary hotfixes.
Hotfixes you selected
1. HFIX - 6647
2. HFIX - 6560
Additional related hotfixes
1. HFIX - 6647 - 4796
2. HFIX - 6647 - 5059
3. HFIX - 6647 - 4849
4. HFIX - 6647 - 6051
5. HFIX - 6647 - 5535
6. HFIX - 6647 - 4864
7. HFIX - 6647 - 5977
8. HFIX - 6647 - 6083
9. HFIX - 6560 - No Dependency
Issues Corrected
This table lists and describes the primary Hotfixes you selected (HFix-6647 and HFix-6560) and the Additional related hotfixes that they include.
HFix ID | Summary | Issues Corrected |
---|---|---|
HFix-6647 | FUAEntry.java, PRPC fails to run updated rule | An updated rule that is checked in or imported is not processed. The older version of the rule is not invalidated and, therefore, is processed unless you remove the old rule from the Rules Assembly Cache or restart the server. The issue can also occur when updated rules are imported into the environment. The hotfix corrects the invalidation issue in cases where instances of common rules are loaded by First-Use Assembly (FUA) reload on startup. |
HFix-6560 | NoSuchMethodError, PRPC fails to run updated rule | You get NoSuchMethodError when you manually remove a rule from Rules Assembly Cache or check in an updated (new, imported) rule. The error occurs if you installed HFix-5977 and you use RACommonLog.class in prlogging.xml because HFix-5977 does not provide a compatible RACommonLog.class. Rules Assembly consolidated logging is sometimes requested for debugging issues with Rules Assembly Cache. HFix-6560 provides the RACommonLog capability that goes with HFix-5977. |
HFix-4796 | Mobile Device support now available | Introduces PRPC support for mobile devices. See Pega Mobile 2.1.1 Release Notes. |
HFix-5059 | Rules Assembly Cache issues | Rules Assembly Cache race condition causes application deadlock and pulse NPE. NPE detected in addEntryToMemoryCache under heavy assembly loads. Rule-Declare-Expressions were not invalidated in the database. Incorrect invalidation can result in the wrong rule being executed. |
HFix-4849 | [Is a Diagnostic HFix that cannot be delivered standalone; it must be an Additional related hotfix packaged with a primary hotfix.] | System Pulse throws NPE during invalidation after import. |
HFix-6051 | [Should only be installed as an Additional related hotfix of HFix-6647.] | Old rule is being executed instead of the new one because of in-memory and database invalidation problems. |
HFix-5535 | Security enhancements for Access Group Settings | Provides the enhancements delivered in PRPC 6.3 Security for implicit privileges: Integration and Security features in PRPC 6.3 Augmenting Privileges with Access Group Settings Tunable Rule Security Mode on Access Group Settings |
HFix-4864 | Performance degraded by the <pega:lookup> tag | Improves the functionality for the <pega: lookup> tag and its related Rule-Utility-Function, @lookup, to correct performance issues. Poor performance was caused by the tag and the RUF pulling data from the BLOB even when the looked-up property is exposed in the database. |
HFix-5977 | [Superseded by and is an Additional related hotfix of HFix-6647.] | Delivers Conclusion Cache optimizations and related core engine updates |
HFix-6083 | [Superseded by and is an Additional related hotfix of HFix-6647.] | Corrects the Session Management problem whereby the Requestor Count constantly increases for Batch Requestors |
Suggested Approach
To resolve the issues described in this article, follow these steps to install the hotfixes that provide the complete solution for PRPC 6.2 SP2:
- Create a Support Request (SR) for HFix-6560 and HFix-6647 and install these hotfixes using Update Manager.
After installing HFix-5535 (as an Additional related hotfix of HFix-6647) and running PRPC, you might see this error, which is easily resolved:
A processing error has occurred
Error Message “ “ PRRuntimeError PRRuntimeError
Stack Trace- Whether you see the error or not, you must take the following actions:
- Stop the application server.
- Delete the file PegaRULES_Extract_Marker.txt.
- Truncate three tables: pr_sys_cache_entry, pr_sys_cache_impl, and pr-sys_cache_dep.
- Restart the application server to recycle the JVM.
- Make sure there are no errors in the Pega log files.
- After installing HFix-6647, consider creating the following database indexes to enhance PRPC startup performance and first-use experience:
create index pr4_log_rule_usg_dtl_idx1 on pr4_log_rule_usage_details (pxparentruleusagekey, pxassemblycachekey);
create index pr_sys_cache_entry_idx1 on pr_sys_cache_entry( pzentrykey, pzcacheconfigid);
create index pr4_log_rule_usage_tidx1 on pr4_log_rule_usage(pxsystemnode, pylabel, pxlastuse, pzinskey, pxclassname) ;
Additional Information
Working with the Rules Assembly Cache
What is the Update Manager utility?
How to use the Static Assembler utility to pre-assemble the rules in an application