PEGA0050 alert: Lightweight list has been copied n times
The PEGA0050 alert is triggered when the system determines that a rule or activity copies a clipboard page list to another list in a way that is inefficient and, in the Pega 7 Platform, no longer necessary.
This alert identifies areas in your application where you can eliminate inefficient and unnecessary list copying. In most cases, you can use lightweight lists directly rather than by copying lists to another clipboard page. Using the lightweight list directly avoids the performance cost of the copy operation and allows the system to use a more efficient lightweight list. For more information about the advantages and limitations of lightweight lists, see About lightweight lists.
This alert records how many copy operations are performed, which can indicate the potential for reducing unnecessary processing, and the step that performed the copy operation. Use this alert to identify areas that can benefit from using enhanced lightweight lists. You can typically make minor modifications that can eliminate processing overhead while maintaining the performance benefits provided by lightweight lists.
Example message text
The log displays the step that copied the lightweight list copy and the number of operations.
Lightweight list has been copied 30 times.
Default prconfig.xml settings
The following settings in the prconfig.xml file implement this alert:
<env name="alerts/virtuallists/copy>– This setting enables lightweight list Copy alerts. The default value is True.
<env name="alerts/virtuallists/rulethreshold>– This setting specifies the default threshold for the unique rule location where the alert originated. The default value is 10. The alert is raised for the first occurrence and later is based on the threshold.
<env name="alerts//virtuallists/captureFullStack>– In most cases, the property reference name and “Last Step” and “Trace List” identifies the point where the copy occurred. In cases where the copy might have occurred at a place that cannot be depicted by an activity step (for example, in a Rule-Utility-Function rule), the full stack trace is captured. The default value is True.
For information about editing values in the prconfig.xml file, see How to set prconfig values in a Dynamic System Setting value. To adjust the alert threshold for a single node in a multinode system, see How to change prconfig.xml file settings.
Reasons for the alert
The copy operation might follow the generation of a lightweight list, for example by an Obj-Browse method or report definition, to compensate for limitations of lightweight lists. Introduced in PRPC 6.2 SP2, lightweight lists enhanced performance, but did not, for example, support write operations.
You can eliminate the copy operation if you do not use any of the following features that are not supported by lightweight lists:
- Forward chaining – Declarative rules will not fire automatically as the result of changes to properties on a lightweight list.
- Reference properties – References cannot be established from or to properties on a lightweight list.
- Java pages – Lightweight lists cannot contain Java pages or Java properties.
- Page properties as part of Obj-Browse selects – During an Obj-Browse over Data-Admin-Operator-ID, for example, you can select .pyPreferences.pyGeneralPrefs.pyWorkPortal but not .pyPreferences.pyGeneralPrefs because this ends in a page property reference.
- Some advanced Java patterns – If you use the getPage or getProperty function in a Java step while trying to use that reference across iterations, the step might point to an incorrect entry in the list.