INC-208976 · Issue 719165
Enhanced SSA metrics made available
Resolved in Pega Version 8.7.3
In order to better diagnose delays related to the time when a Campaign is scheduled to start and the time when the Dataflow actually starts to run, an update has been made which will generate detailed metrics to cover some of the strategy execution key performance intensive areas. Additional lower level internal metrics related to SSA engine execution have also been made available by way of a DSS to collect more runtime insight for diagnosis. To enable the collection of these Level 2 SSA internal metrics, set the dataflow/shape/strategy/detailed_metrics/level2 DSS in the Pega-DecisionEngine rule set to 'true'. A comprehensive set of enhanced metrics will be available in Pega 8.8.
INC-217290 · Issue 721375
Added support for creating predictive models in Production
Resolved in Pega Version 8.7.3
While creating a new predictive model rule in Prediction studio, the case was going into broken process after selecting the template with the error message "Error loading D_ProjectList , Reason : No databases defined in properties file:/databases.properties". This was an unexpected use case for creating models in Production level, and has been resolved by updating the flows to turn off the draft mode in this scenario.
INC-218145 · Issue 715678
DSS introduced to control DSM clipboard page serialization
Resolved in Pega Version 8.7.3
When using a Kafka dataset to consume a message from an external topic that had an attribute name with a special character contained in a page list structure, using a JSON data transform for the mapping in a realtime dataflow resulted in the error "Exception in stage: KafkaDS; LegacyModelAspectInvokableRuleContainer.invoke-Exception encountered a :java.lang.UnsupportedOperationException." To resolve this, a new DSS dataset/CLASS_NAME/DATASET_NAME/JSONDataTransform/deserialization/useDSMPage has been introduced. When the value is set to true, the process will follow the previous behavior of DSM clipboard pages being generated when Kafka records are deserialized using JSON data transform. When the value is set to false, the JSON data transform will generate regular clipboard pages and convert them later to DSM clipboard pages. This would avoid errors when a JSON data transform calls methods from the Clipboard API that are not implemented by DSM pages. This DSS is set per data set instance. CLASS_NAME and DATASET_NAME are placeholders which should be replaced by data set's pyClassName and pyPurpose property values. In addition, a similar DSS, dataset/CLASS_NAME/DATASET_NAME/JSONDataTransform/serialization/useDSMPage, has been introduced for serialization.
INC-218172 · Issue 716398
Text analytics character limit set to avoid memory issues
Resolved in Pega Version 8.7.3
Utility nodes were unstable related to searching, and email listener threads became stuck during Rule-based Text Annotation (RUTA) and natural language processing (NLP) work on incoming emails. This happened when the system experienced high memory consumption or exceeded memory usage when using text analytics. This has been resolved by setting the default maximum character limit for NLP analysis to 25,000 characters to avoid RUTA memory issues. If text is provided > 25,000 characters, the system will consider only the top 25,000 characters and a flag will appear on NLPOutcome to indicate text has been limited. This character limit is configurable, but if the configuration is set in excess of 25,000 a warning will be shown prior to saving the change.
INC-223376 · Issue 723575
JMX authentication enabled by default for embedded Kafka and Cassandra
Resolved in Pega Version 8.7.3
For on-premises clients, a potential vulnerability for a Remote Code Execution using the JMX interface on Cassandra and Kafka using exposed network ports has been mitigated by enabling JMX authentication by default for embedded Kafka and Cassandra.
INC-229717 · Issue 730667
Cassandra startup calls reordered to avoid deadlock
Resolved in Pega Version 8.7.3
Nodes received a service request but it became stuck. This was traced to a deadlock related to CassandraSessionCache.getSession, and has been resolved by reordering the method calls used to initialize the Cassandra session to delay adding the session change listener and avoid a deadlock scenario.
INC-173596 · Issue 673089
Apache Commons HttpClient dependency removed
Resolved in Pega Version 8.7.3
As part of moving from the Apache Commons HttpClient project (which is at end of life and no longer being developed) to the Apache HttpComponents project, openws dependencies on the commons-httpclient jar have been removed.
INC-228169 · Issue 729187
Login error messages updated
Resolved in Pega Version 8.7.3
Exception response messages have been updated in order to improve security around attempts to bypass operator authentication.
SR-D90367 · Issue 556687
Cleanup enhanced for long pyEditElement names
Resolved in Pega Version 8.5
A pyEditElement error relating to decision data was seen multiple times in a stack trace. Research showed that while the utility worked as expected for decision data rules with names of less than 30 characters, the pyEditElement section was truncated the name for the decision data. This meant that decision data with the name SampleIssueandSampleGroupTwosalkdjkightntbmkblffvfvfv would be saved as SampleIssueandSampleGroupT for the pyEditElement section. Because of this, the utility failed the match and did not clean up the pyEditElement section. To resolve this, the cleanup utility has been updated to handle pyEditElement sections of decision data with longer names. Additional logging has also been added to improve debugging.
SR-D71621 · Issue 533296
Real time processing picks up correct datetime for Capture Response records
Resolved in Pega Version 8.5
A Realtime Data flow for the Capture Response flow was configured with a strategy shape set to load previous decisions within the past 7 days. Once this Realtime DF was started, attempting to Capture Response for decisions made after that startup timepoint did not work. This was traced to the InteractionID being written with global properties for the datetimes, and has been resolved by making those datetime properties local so the start and end time are not cached and the time range is calculated based on "now”.