Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Parallel access of node level data page show inconsistent result

SA-70957

Summary



When accessing the same read-only data page, node level data page consisting of multiple entries displays different results for the same IsInPageList expression. When the page exists in the page list, the output changes from True to False depending on the access time.


Error Messages



Not Applicable


Steps to Reproduce

  1. Create the Employees data type with a UserName property in it.
    1.1. Set the Param.Output1 value with @Utilities.IsInPageList("mahesh",UserName,D_EmployeesList.pxResults) expression.

    1.2. Log the message to display Param.Output1 value using the Log-Message method.

     
  2. Add a record with a UserName value of 'ABC'.
  3. Add a local storage for the data type which internally creates a data page list (that is, D_EmployeesList).
  4. Create a node level read-only data page sourced with a report definition.
  5. Create an Activity1 with a For loop iteration of 10.000 in Step1.
  6. Repeat the same steps in Activity2 with same IsInPageList expression.
  7. Log in to the application in two different browsers with the same operator credentials.
  8. Run Activity1 in browser1 and Activity2 in browser2 parallelly. Verify log messages in PegaRULES where it returns false for some iterations.


Root Cause



Node level data pages with data source set to a report definition are not thread safe. This was because the underlying data structure was a virtual list which is not thread safe. Since node level data pages were accessed by and operated upon by multiple threads, parallel operations caused issues.


Resolution



Perform the following local-change:
  1. Create an activity.
  2. Call the sourced report definition using the Call Rule-Obj-Report-Definition.pxRetrieveReportData.
  3. Copy the loaded page in to the primary page using the Page-Copy method.
  4. Source the node level data page with the activity.

Published January 31, 2019 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us