SR-D70890 · Issue 542871
Enhanced diagnostic logging for automatic search re-index
Resolved in Pega Version 8.5
To better analyze an out of memory error, enhanced diagnostic logging has been enabled for the below classes to get more information regarding re-index triggered automatically after search index is complete. PegaSearch.SearchManager.SearchInitlizationUtils PegaSearch.SearchManager.BuildIndicesTask Rule_Obj_Activity.pzLPFTSManagerRunBuildIndex.Pega_Search_Manager.Action PegaSearch.Indexer.AbstractIndexer
SR-D61971 · Issue 529608
Search Landing Page handling added for email addresses containing hyphens
Resolved in Pega Version 8.5
When an e-mail addresse containing a hyphen was entered for the Automated Search Alert functionality, the validation error "Please Enter Valid Email Address(s)" appeared. For example, [email protected] was not accepted. To resolve this, the regexp function used for the email validator has been updated.
SR-D61199 · Issue 533479
Support expanded for postgres versions and logging improved
Resolved in Pega Version 8.5
While trying to import data into the Data Type Tables using a CSV file and selecting the 'Add or Update' option, an error appeared and the import failed. Using 'Add or Delete' worked as expected. This was traced to the import of data failing for postgres version 10.x because UseMerge for postgres did not use merge if the version of Postgres was not 9. Support has now been added for versions of Postgres higher than 9 in SQLGeneratorPostgres.useMerge(), and logging has been enhanced to improve triaging issues such as this.
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”.
SR-D85558 · Issue 548286
Handling added for prolonged Heartbeat Update Queries
Resolved in Pega Version 8.5
After restart, the pyFTSIncrementalIndexer queue size had hundreds of thousands of entries even though it was empty prior to the restart. Investigation traced this to a job scheduler that checked all the database connections everyday at 1 EST by using a list that contained some connections which did not exist. Checking those invalid connections caused other update queries to queue and wait, resulting in the update heartbeat query taking longer than its default beat. This caused a Split Brain issue wherein other nodes considered the long-executing node to be dead and triggered a rebalance while the node itself continued to execute partitions thinking that it was healthy. This caused duplicate processing of records. To resolve this, a fail safe has been added: while updating heartbeat in Service Registry, nodes will enter safe mode when the update query is taking longer than the default beat.
SR-D66397 · Issue 530333
ADM out-of-sync corrected for multi-datacenter Cassandra cluster
Resolved in Pega Version 8.5
After setting up the multi-datacenter configuration for a Cassandra cluster that consisted of six nodes in datacenter 1 and three nodes in datacenter 2, failover testing revealed a mismatch in the number of ADM models stored in each datacenter. The mismatch was observed mostly in the number of records present in the "adm_scoringmodel" and "adm_response_commit_log_date_tiered" tables. When Cassandra nodes are down, the other nodes in the cluster will store hints (records to be written) for the down nodes. When these nodes come back online the hints are replayed to those nodes and the data is written. Hints are written for 3 hours, so if a node come back up within 3 hours data is recovered and repairs are not required. The gc_grace_seconds for the above tables that were getting out of sync across the two datacenters was set to zero seconds. The "gc_grace_seconds" attribute is not just used as the time for removal of tombstones, it's also used to set the TTL for records written to the system.hints table. That meant that when the hints were written for the ADM tables for the nodes that were down, they were immediately expired since it was set to 0 and not played back when the terminated nodes restarted and joined the cluster. This has been resolved with this fix for all customers new to this release. Existing customers already on v7.3 or higher will need to complete the local change detailed below: Connect to the Cassandra cluster using cqlsh in the Pega Cassandra distribution and then run ALTER TABLE adm_commitlog.adm_response_commit_log_date_tiered WITH gc_grace_seconds = 86400; to change the relevant setting from zero to the equivalent of one day - the same length of time that the data in the table lives for. This will mean that any hints written can still be used to replay data to another node while the data itself is alive. It does also mean, however, that, given a constant load, a day's worth of expired ADM event data in the table will always be present on the disk, as the tombstones can now not be cleaned up for a day.
SR-D85095 · Issue 546341
Updated COUNT logic for strategies with ssavm set to true
Resolved in Pega Version 8.5
An error was seen when attempting to save a strategy after setting ssavm to true, indicating an issue in the “COUNT” method in Group By shape. Since the source field is not used and does not need to be evaluated here, the system has been updated to ignore the source field if the operation is COUNT.
SR-D78940 · Issue 542927
Dataflow monitoring enhanced
Resolved in Pega Version 8.5
Enhanced monitoring and healthchecks have been added for dataflow and alerts.
SR-D89643 · Issue 548292
Old Tumbling Time data in event strategies given TTL for cleanup
Resolved in Pega Version 8.5
Old Tumbling Time data keys in event strategies were not being cleaned up, causing Cassandra timeouts after the dataflow run had been running for several months. The longer the dataflow was running using standard compaction, the more the data was potentially spread out across SSTables and the slower it became. This has been resolved by adding a 'time to live' value for tumbling time windows, and event strategies has been switched to use leveled compaction by default.