Support Article
Rule updated on one node is not reflected on another node
Summary
In a db2zos environment with Pega 7.1.7, when a rule is deleted from one node, the caches on another node are not properly updated, resulting in the error shown below.
Error Messages
2015-05-05 14:36:38,639 | ERROR | WebContainer : 2 | your_server | Claims_Work_ClaimAdmin.Stream | Msg: Section 'HeadStaticContent' execution error on page 'pyWorkPage' of class 'Claims-Work-ClaimAdmin'.
com.pega.pegarules.pub.generator.UnresolvedAssemblyError: Unable to select between versions
Steps to Reproduce
Delete an old version of a rule from one node and notice issues attempting to access the remaining version on another node.
Root Cause
For Pega 7.1.7 on the db2zos platform, a trigger called TRPR4_RULE_DEL was shipped with a defect. In the trigger's call to the inner procedure PRPC_UPDATESCACHE, it passed null instead of the pxObjClass. This causes incorrect entries to be placed in the pr_sys_updatescache list, which can prevent other caches from being properly updated by the system pulse.
Resolution
Locally fix the TRPR4_RULE_DEL db trigger by changing its definition
from
CREATE TRIGGER PEGA71R.TRPR4_RULE_DEL
AFTER delete ON PEGA71R.PR4_RULE
REFERENCING OLD AS OLD
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
CALL PEGA71D.PRPC_UPDATESCACHE(OLD.PZINSKEY, OLD.PXHOSTID,
NULL, 'true&pyRuleSet=' || COALESCE(OLD.PYRULESET, '')) ;
END `
to
CREATE TRIGGER PEGA71R.TRPR4_RULE_DEL
AFTER delete ON PEGA71R.PR4_RULE
REFERENCING OLD AS OLD
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
CALL PEGA71D.PRPC_UPDATESCACHE(OLD.PZINSKEY, OLD.PXHOSTID,
OLD.PXOBJCLASS, 'true&pyRuleSet=' || COALESCE(OLD.PYRULESET, '')) ;
END `
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.