Some performance improvements were introduced in IBM Cúram v6.0.4 that have restricted how CER rule attributes can search for other rule objects at runtime. As a result, certain searches that were previously valid are no longer allowed, and the rules in question must be updated to conform to the new method.
The problem is indicated by the following types of errors appearing in the logs:
curam.creole.calculator.CalculationException: infrastructure:RUN_ID_RUNTIME: A runtime exception occurred: Searching of evidence by attribute '<RULE_ATTRIBUTE_NAME>' is not supported
The problem is caused by new restrictions on how searches can be performed in IBM Cúram CER rule objects.
IBM Cúram v6.0.4 and above
Diagnosing the problem
Run the supplied tool by importing the jar into the eclipse development environment used for IBM Cúram, and run the program IdentifyUnsupportedSearchesInRuleSets. This will output a list of affected Rule Sets and the specific locations in each where invalid searches are performed.
Resolving the problem
To resolve the problem, the invalid searches in each location identified by the provided tool must be refactored to use supported search methods. The exact changes required will depend on how the search is currently performed, and the business logic behind the particular search, however, as a general rule:
- searches on rule objects populated from Evidence must only match using the "caseID" attribute
- searches on rule objects populated from Entities must only match on attributes which are present on the underlying entity (i.e., no searches on attributes which are calculated by CER)
The results of these searches can then be filtered down within the rules in order to return the same overall result set that the previous search did, so the net effect of the change on any other rule objects that use these rule attributes will be zero.