Failed to index instance errors on Rule-Message
SummaryIn Production environment, periodically see more than a thousand BadClassDefinitionException, always related to indexing instances of Rule-Message
Error MessagesThe name of the Rule-Message varies, but the rest of the error is the same each time. This is one example:
16:15:00,207 INFO [stdout] (Dispatcher-Thread-141) 2016-05-14 16:15:00,205 [-threads-1566113573)] [ STANDARD] [ ] [ PegaRULES:07.10] ( internal.es.AbstractIndexer) WARN - Failed to index instance with key [RULE-MESSAGE A SHORT DESCRIPTION IS REQUIRED #20100430T143228.754 GMT]
16:15:00,207 INFO [stdout] (Dispatcher-Thread-141) com.pega.pegarules.pub.database.BadClassDefinitionException: Attempting to access a rule with a bad defined-on class: <blank>. problem encountered when opening instance RULE-MESSAGE A SHORT DESCRIPTION IS REQUIRED #20100430T143228.754 GMT by handle
Steps to ReproduceWhenever reindexer runs.
Root CauseA defect or configuration issue in the operating environment. The pzupgraderulemessages activity was introduced in 7.1.7 to recalculate the pzinskeys of Rule-Messages instances. During the upgrade besides migrating these rules to the new table pr4_rule_message table the pyclassname was added to the pzInsKey. From the error messages we can see that for these 1039 rules the format of the pzInsKey was not done. Since it is impossible to log into Pega7 with a 6.x context due to the redesign of the UI generation that occurred for 7.1 the pzUpgradeRuleMessage activity only added updated application specific and Pega7 Rule Messages. This means that the existing Pega 6.x rule messages will fail to re-index because they are not in the correct format.
ResolutionPerform the following local-change:
Modify the pzUpgradeRuleMessages activity to also update the pre 7.x Pega Rule Messages and then execute it.
The cleanup script that is found in the scripts directory of the media could also have been used to cleanup the 6.x rules.
Published December 2, 2016 - Updated December 4, 2016