INC-213763 · Issue 708110
Job Scheduler explicitly unlocked after nodes restart
Resolved in Pega Version 8.7.2
If a job scheduler was in running state and the utility nodes were restarted, the background processing nodes were not coming up and resuming as expected and PersistentJobCleanupFactory:PresentMembersJobCleanup was throwing a stale execution exception. Investigation showed locks were not being removed from the database for the job scheduler when the restart was performed (noted in pegadata.pr_sys_locks table), preventing further runs. This has been resolved by adding an explicit lock removal process for this condition.
INC-213821 · Issue 708314
QueueProcessor timeout made configurable
Resolved in Pega Version 8.7.2
Queue Processor timeouts were causing thread interruptions, causing items to be processed more than once. To resolve this, the QueueProcessor kafka-write timeout has been made configurable via the DASS Pega-Engine:queueprocessor/dataset/write/timeoutMs
INC-215937 · Issue 713771
Added exception handling for PageGroup alerts
Resolved in Pega Version 8.7.2
Queue items were going to the broken queue if there was an issue fetching the alert configuration from the Queue Processor rule. The error "java.lang.IllegalArgumentException: Alert id cannot be blank" was seen. This has been resolved by adding exception handling while gathering alerts from PageGroup so that a malformed alert configuration will not cause overall failure of a processed message, but instead an empty alert will be returned if configuration-data is corrupted.
INC-217781 · Issue 714183
JobScheduler updated to better handle DST change
Resolved in Pega Version 8.7.2
If a job scheduler was set to run on a weekly basis between 1 AM CET and 3 AM CET, the DST time change caused the job scheduler to skip that week. During DST, there is one 23-hour day in the year, and if execution time is set to that missing hour the system was throwing an IllegalArgumentException for the non-existent date. This has been resolved by adding a check that verifies whether a given date does exist; if it does not exist, the system will postpone execution time by one hour.
INC-218340 · Issue 714661
Override added to delete records for a stream dataset after processing
Resolved in Pega Version 8.7.2
Kafka data was accumulating for a Stream data set due to huge volume of inbound calls. This has been resolved by adding support to override pyDeletedProcessed through a DASS in order to remove the records for a particular stream dataset (topic) as soon as they are processed by Pega.
INC-202878 · Issue 713792
Handling updated for social messaging items with very large embedded images
Resolved in Pega Version 8.6.5
Job scheduler was running out of memory while handling large/multiple files, causing nodes to crash while handling Social Messaging items. Inline images were also not being sent in the ACK email. Investigation traced this to a custom job scheduler and activity used to create PDFs from email communication and send the PDFs to a third-party system. This used the standard Email Triage/PegaSocial functionality for the emails, which were stored as instances of PegaSocial-Message. The custom Job scheduler and activity then leveraged the Data Page D_pxEmailPosts to retrieve the emails in order to harvest the text from the emails. The issue occurred when a number of the emails had multiple or large embedded images in them, meaning the PegaSocial-Message instances are very large. This resulted in the node running out of memory and crashing. To resolve this, code has been added to support inline images in ACK email and the complete message from Pulse will be used instead of the original message as the email body for the ACK email.
INC-211974 · Issue 706616
UpgradeInteractionCase modified to update work page on save
Resolved in Pega Version 8.6.5
After update, service cases were failing to unpend when using a custom data transform that accessed the D_CorrespondenceCase data page. Investigation showed the D_CorrespondenceCase data page was internally using the D_pxGetInteractionCaseDetails data page; this call upgraded and saved and committed the case but this commit released the lock which the custom data transform had acquired. Because this happened before accessing the CorrespondenceCase datapage, it led to an error while committing the service case details. To resolve this, the postprocessing activity "pyUpgradeInteractionCase" of D_pxGetInteractionCaseDetails has been modified to write the update on the work page as soon as a save is performed.
INC-214974 · Issue 721181
Documentation updated for accessing D_pyUserInfoClaims
Resolved in Pega Version 8.6.5
When logging in using Org Credentials, trying to get the user details from D_pyUserInfoClaims did not return any information. This was due to the D_pyUserInfoClaims datapage being available only after authentication, so the claims information was not available during operator provisioning. The documentation located at https://docs.pega.com/security/86/mapping-operator-information-openid-connect-sso-authentication-service has been updated to include the following note: "This page becomes available and can only be accessed post authentication."
INC-215937 · Issue 713773
Added exception handling for PageGroup alerts
Resolved in Pega Version 8.6.5
Queue items were going to the broken queue if there was an issue fetching the alert configuration from the Queue Processor rule. The error "java.lang.IllegalArgumentException: Alert id cannot be blank" was seen. This has been resolved by adding exception handling while gathering alerts from PageGroup so that a malformed alert configuration will not cause overall failure of a processed message, but instead an empty alert will be returned if configuration-data is corrupted.
INC-217781 · Issue 714185
JobScheduler updated to better handle DST change
Resolved in Pega Version 8.6.5
If a job scheduler was set to run on a weekly basis between 1 AM CET and 3 AM CET, the DST time change caused the job scheduler to skip that week. During DST, there is one 23-hour day in the year, and if execution time is set to that missing hour the system was throwing an IllegalArgumentException for the non-existent date. This has been resolved by adding a check that verifies whether a given date does exist; if it does not exist, the system will postpone execution time by one hour.