SR-D42888 · Issue 511452
ElasticSearch startup modified
Resolved in Pega Version 8.4
Search was broken on the app-tier node due to the Full-text search startup failing during a re-initialization. As part of normal re-initialization, the existing node is shut down and the Elastic Search node started. However, in this case because the shutdown process was not properly invoked, the system attempted to start the second instance of an ES node on the same machine. The shutdown process is reliant on a boolean flag which indicates if the current status of the full-text search initialization is successful: this flag indicated initialization had failed when actually the ES node had started but failed to validate all the cluster level settings due to topology changes in the Pega cluster. In order to avoid this scenario, the restart has been split so that the node can be marked as started but not initialized. This allows the follow-up reinitializations a greater opportunity to succeed. In addition, the shutdown FTS code has been modified to shutdown ES regardless of the search initialization status.
SR-D43105 · Issue 513739
Optimation added for Oracle queries
Resolved in Pega Version 8.4
Certain versions of Oracle may suffer from sporadic poor performance with all_constraints queries. To alleviate this, Pega has been updated to provide some processing optimization where possible in the TableInformationMapImpl function. Additional timing alert and debugging logic has also been added in this class for all platforms, especially for lookupForeignKey.
SR-D46159 · Issue 510972
Reinitializing Full Text Search will shut down Elastic Search regardless of search initialization status
Resolved in Pega Version 8.4
Pega search was only sporadically working after converting from standard sandbox-marketing to largesandbox-marketing. This was traced to the Full-Text Search initialization having failed on the app-tier node during re-initialization. As part of re-initialization, the existing node is shut down and the Elastic Search node is started. The shutdown process relied on a boolean flag which indicated if the current status of full-text search initialization was successful. In this case, ES was trying to validate all the cluster level settings, for every save of one of the cluster level settings, but could not due to topology changes in the Util Tier node. The boolean flag indicated initialization had failed so the shutdown process was not invoked, yet the system was attempting to start the second instance of an ES node on the same machine. To resolve this, the shutdown FTS code has been modified to shutdown ES regardless of the search initialization status.
SR-D48369 · Issue 514306
Reinitializing Full Text Search will shut down Elastic Search regardless of search initialization status
Resolved in Pega Version 8.4
Pega search was only sporadically working after converting from standard sandbox-marketing to largesandbox-marketing. This was traced to the Full-Text Search initialization having failed on the app-tier node during re-initialization. As part of re-initialization, the existing node is shut down and the Elastic Search node is started. The shutdown process relied on a boolean flag which indicated if the current status of full-text search initialization was successful. In this case, ES was trying to validate all the cluster level settings, for every save of one of the cluster level settings, but could not due to topology changes in the Util Tier node. The boolean flag indicated initialization had failed so the shutdown process was not invoked, yet the system was attempting to start the second instance of an ES node on the same machine. To resolve this, the shutdown FTS code has been modified to shutdown ES regardless of the search initialization status.
SR-D49507 · Issue 521413
Support added for Oneof/AllOf association prefix in ABAC policies
Resolved in Pega Version 8.4
The Report browser was freezing when attempting to save a report with an association rule where ABAC policies prevented access to one of the classes in the association. This has been resolved by updating the system to append the correct prefix in cases where the ABAC rule has Oneof/Allof Functions so the association is resolved correctly.
SR-D51722 · Issue 515359
ClusterAndDBCleaner agent will remove extracts older than 30 days from pr_log table
Resolved in Pega Version 8.4
In order to better manage pr_log table size and query performance, an enhancement has been added to control the purge of entries of extract type. The default is to delete entries older than 30 days.
SR-D55106 · Issue 525464
Improvements to error recovery and logging for BIX extracts
Resolved in Pega Version 8.4
Previously, the BIX incremental extraction would restart from the last extraction date time if it had a failure, even if some batches were processed successfully, and the starting and ending datetime considered for the incremental extraction were not logged. As part of this update, extractions will resume from the point of failure instead of starting all over again, and the logging has been enhanced to include Information about the parameters used for extraction (starting time, end time, #of records processed/failed etc). However, if the -f flag is set, batch level failures will cause BIX to terminate but blob read errors will not. This causes the restart logic in this fix to not function properly in the face of blob read errors such as an ORA-01555 when reading the blob. Resolution for that aspect of this issue will be provided in a future release.
SR-D55161 · Issue 527652
getStoreDataTable updated to resolve thread lock issues
Resolved in Pega Version 8.4
An IlegalMonitorStateException in TableInformationMapImpl.getDataStoreTableInfo caused a read lock to not be released, preventing other threads from acquiring a ReentrantReadWriteLock.WriteLock on the same ReentrantReadWriteLock. This eventually lead to a Deadlock scenario forcing other threads into an irrecoverable WAITING state. The issue could be cleared by restarting the nodes, but the implementation of the getDataStoreTableInfo method has been updated to resolve this issue.
SR-D64220 · Issue 535133
Reinitializing Full Text Search will shut down Elastic Search regardless of search initialization status
Resolved in Pega Version 8.4
Pega search was only sporadically working after converting from standard sandbox-marketing to largesandbox-marketing. This was traced to the Full-Text Search initialization having failed on the app-tier node during re-initialization. As part of re-initialization, the existing node is shut down and the Elastic Search node is started. The shutdown process relied on a boolean flag which indicated if the current status of full-text search initialization was successful. In this case, ES was trying to validate all the cluster level settings, for every save of one of the cluster level settings, but could not due to topology changes in the Util Tier node. The boolean flag indicated initialization had failed so the shutdown process was not invoked, yet the system was attempting to start the second instance of an ES node on the same machine. To resolve this, the shutdown FTS code has been modified to shutdown ES regardless of the search initialization status.
SR-D65944 · Issue 533395
Parent case lock properly released when child case is resolved
Resolved in Pega Version 8.4
After creating Parent-Child casetypes with default locking where the child case had the “Allow access to parent” check box checked, the temporary lock acquired on the parent during resolution of the child case was not released afterwards. If “Allow access to parent” was not checked, then the locks were released on both the parent and the child. This was traced to a combination of parameters used by the openIfStale() API where aUnlockOnCommit could be set to false despite the provided locking strategy expecting it to be true, as well as honoring UnlockOnCommit when maintainLockingStrategy is false. To resolve this, the system has been updated to always check whether the lock is available in the map already and if it is, then set unlockonCommit to true. Otherwise, under all cases, honor the passed-in unlockOnCommit value.