INC-154128 · Issue 614297
High thread contention in StrategySSAProgram resolved
Resolved in Pega Version 8.5.3
While Running inbound campaigns during peak times, high contention was observed around "threadSafeWrite" and "threadSafeRead". To resolve this and improve performance, the code around handling write locks has been updated.
INC-154746 · Issue 613407
Support added for multi-level simulation
Resolved in Pega Version 8.5.3
Enhancements have been made to support Adaptive Models in Muti-level decision strategies.
INC-155822 · Issue 618269
Locking added to avoid Null Pointer Exception for auto-populate property
Resolved in Pega Version 8.5.3
After configuring the auto populate property "OrgProduct" which referred to a data page, the system experiencing heavy load led to the property not getting properly initialized. This resulted in a WrongModeException and NullPointerException. To resolve this, the system has been updated to lock the requestor when Queue Processors execute their activity. This will prevent race conditions and concurrent modifications if other threads are accessing the same requestor.
INC-155908 · Issue 625218
Logic updated for handling future events in strategy tests
Resolved in Pega Version 8.5.3
After upgrade, there was an unexpected exception "EventStrategy error in SerializeUtil: Integer too large to read, Size:48" while retrieving the final BBK aggregate results during strategy tests with several different pre-existing customerIDs, and no results were returned. When aggregations are read, there is a check to make sure the system does not return empty records. The logic for determining whether there is empty data in the record was mistakenly reading the event count from the wrong bytes which were part of a date for 2023. This was due to the second byte of the year date in hex being interpreted as the start of the event count. As a workaround, results are returned if no pxOutcomeTime dates in the database are more than a year in advance along with all aggregate datasets being recreated on production immediately after upgrade from v8.1 to v8.5. To resolve this issue going forward, the logic has been updated to handle the errors, and future records will trigger a warning in the log with information such as "Event time greater than current time in clipboard page. Event Time = Mon Mar 10 14:46:27 UTC 2025, Current Time = Tue Feb 09 14:18:49 UTC 2021. Ignoring event...".
INC-157097 · Issue 619996
REGEX In Expression Builder matches runtime values
Resolved in Pega Version 8.5.3
An expression builder statement was evaluating differently at runtime vs at testing. This was traced to a difference in escape character handling between old legacy code and the new strategy runtime engine, and has been resolved by ensuring the strategy runtime engine is supporting escape character use cases.
INC-157194 · Issue 620153
CheckRevisionDeployment requires authentication
Resolved in Pega Version 8.5.3
Authentication has been added to the CheckRevisionDeployment service package.
INC-158320 · Issue 624414
Support added for multi-level simulation
Resolved in Pega Version 8.5.3
Enhancements have been made to support Adaptive Models in Muti-level decision strategies.
INC-158686 · Issue 628554
DSS added to create consistent handling of longform datetime
Resolved in Pega Version 8.5.3
After upgrade, a difference in handling related to datetime value was seen. For example, EmailSchedRunEndDate is a date type property holding the value "20201016T000000.000 GMT"; in Pega v7.4, a substring function was used to move the extra characters from the date field ex. EmailSchedRunStartDate = @substring(.EmailSchedRunStartDate,0,8), but in Pega v8.4 and higher the long datetime value ( "20201016T000000.000 GMT") was still being used for the date field. This long value was then truncated to 2020101+ when saving to the database, causing errors in later steps. However, research found that if there is a call @toDate function before this step for any other field, the correct date value was set for EmailSchedRunStartDate. While ClipboardPages separate Dates and DateTimes, internally, in Java, both have a time component. The implementation of DSMClipboardPage made no difference for serialization and appended the time component for pure Date properties. To create consistent handling, an update has been made to optionally set the correct behavior after setting the Dynamic System Setting by way of "Pega-DecisionEngine dsm/clipboard/correctDateFormat -> true". This setting would only take effect after a restart of Pega, and the default is false in order to not disrupt any application inadvertently relying on this behavior.
INC-158813 · Issue 629486
Updated report handling for simulations using database output
Resolved in Pega Version 8.5.3
When running a simulation with a database table as the output destination, the pxObjClass property was not populating with a value in the results. This caused sub-reports to not be populated with data. Investigation showed that issue happened when the simulation output destination database table was inferred as an external table due to not having an exposed column for pzinskey. To resolve this, the pxObjClass and pxCreateDateTime properties, which were added to simulation output destination tables for compatibility with Report browser, will not be added to those tables when they are created. Instead, to address compatibility issues of simulation output destination classes with Report browse in the Customer Decision Hub, the pyDefaultSummaryReport has been brought up into the Data-Decision-StrategyExecution-ResultOutput class from the @baseclass.
INC-159332 · Issue 629619
Logic updated for finding 'Last' in Interaction History
Resolved in Pega Version 8.5.3
The 'LastReponseDate' and 'LastInteractionId' in the Interaction History summary data set were null. Investigation showed that reusing the ESM component in the aggregation dataset caused any assumptions made during the optimization of ESM to not be true anymore. To resolve this, the logic of the Last aggregation has been modified to not rely on a Last event which might not be stored in-state (such as optimization), but rather to use the list of events which is always stored.