SR-D33003 · Issue 511231
Queue Batch activity correctly passes chlld process access group
Resolved in Pega Version 8.4
Attempting to create an index using the schema tools landing page was throwing an error in the table history stating "Create index failed". Investigation showed that this happened when a user was authenticated without the PegeRULES:DatabaseAdministrator role and then switched to an Access Group with the PegeRULES:DatabaseAdministrator role. The issue was traced to the activity that launched the batch requestor missing the parameter pzUseCurrentAccessGroupForChild due to the Queue Batch activity only passing the default access group authorization. This has been resolved by adding code to pass the additional authorization which will allow users to create an index in this scenario.
SR-D33934 · Issue 503335
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.
SR-D34274 · Issue 501380
Elastic Search thread pool size increased
Resolved in Pega Version 8.4
Applications frequently using FTS queries on work items sometimes faced poor response times caused by a backlog of Elastic Search requests queuing up on the util node before being served. Previously, the search thread pool configured value was 1 when the ES is embedded in Pega. In order to improve performance, this thread pool size has been increased in order to take advantage of ES's ability to dynamically determine the number of appropriate threads based on the number of CPU cores.
SR-D36372 · Issue 504747
Force order added to inner join when running a Rules Resolution filter
Resolved in Pega Version 8.4
After upgrade, D_getResolvedWorkStatuses was not loading properly due to a Report Definition that used a Filter by Rule Resolution option timing out on the SQL Server. When the Filter by Rule Resolution option is selected in RD, it will generate a rule resolution query with an inner join which can cause a time out on the SQL Server while it tries to find out the join order for tables with multiple joins. To resolve this, the SQL server will provide a Force order, merge inner join hint option by way of an added DSS reporting/useForceOrderHint. Additionally, reporting/useMergeHintForRRquery should be set on Pega-Reporting to set things up for using the Merge Inner join hint in the query.
SR-D37779 · Issue 514412
DSS setting added to Invalidation query to tune performance
Resolved in Pega Version 8.4
Running a RuleInvalidation query on an SQLServer database with a large amount of data was causing performance issues. To improve performance, a force order hint has been added which can be enabled with the DSS setting racache/useForceOrderHintForInvalidationQuery.
SR-D38588 · Issue 506370
Removed unneeded table name calculation
Resolved in Pega Version 8.4
After giving short names (less than 30 characters) for "To Table", saving did not produce an error, but an error was thrown during Check In. Investigation showed that while checking in the extract rule, a block of code in the Rule-Utility-Function validateTreeProperties was being executed to recompute the pagelist's table name instead of using the name provided by the user. To resolve this, the Rule-Utility-Function has been modified to not execute this block of code during check-in of the extract rule. The validation will be seen during save if the 'To field' has more than 30 characters.
SR-D41368 · Issue 507958
Special character issues resolved with Obj-browse in SQL query generation logic
Resolved in Pega Version 8.4
Two issues were identified with Obj-browse in SQL query generation logic.1. In filter conditions, if the RHS value was set from a parameter and the value started with a DOT (.), the system assumed the RHS value to be a property and formed the resulting SQL query with the fieldname as column on the RHS value in database query filter. Example: filter has .FirstName=".abc", in this case the database query had a filter clause as "where firstname=abc" which was incorrect as ".abc" was a value and not representing any column. This has been resolved by changing the logic to identify whether the value passed is actually a "property" or "a literal starting with DOT character". 2. In filter conditions, if the RHS value with match operator (contains/starts with etc) had both underscores and single quotes, the single quotes were escaped as well as the underscores. Since the database query execution flow used PreparedStatements, single quotes should not be escaped at all as JDBC itself takes care of escaping the single quotes in prepared values. This has been resolved by updating the logic used to escape single quotes when using prepared statements.
SR-D41580 · Issue 512483
Check added for match of tenant ID class and thread
Resolved in Pega Version 8.4
Many bad class exceptions were logged on a multi-tenant system when accessing a worklist or refreshing the browser. This was traced to classDefinitonImpl.getDescendantIter() returning all classes (tenant + shared) because the classDefinition.getTable() API failed to resolve the table for a specific tenant. To resolve this, a condition has been added that will check that the tenant ID of the class matches the tenant ID of the current thread and skip the unmatched classes.
SR-D42645 · Issue 510578
Force order added to inner join when running a Rules Resolution filter
Resolved in Pega Version 8.4
After upgrade, D_getResolvedWorkStatuses was not loading properly due to a Report Definition that used a Filter by Rule Resolution option timing out on the SQL Server. When the Filter by Rule Resolution option is selected in RD, it will generate a rule resolution query with an inner join which can cause a time out on the SQL Server while it tries to find out the join order for tables with multiple joins. To resolve this, the SQL server will provide a Force order, merge inner join hint option by way of an added DSS reporting/useForceOrderHint. Additionally, reporting/useMergeHintForRRquery should be set on Pega-Reporting to set things up for using the Merge Inner join hint in the query.
SR-D42670 · Issue 510184
Force order added to inner join when running a Rules Resolution filter
Resolved in Pega Version 8.4
After upgrade, D_getResolvedWorkStatuses was not loading properly due to a Report Definition that used a Filter by Rule Resolution option timing out on the SQL Server. When the Filter by Rule Resolution option is selected in RD, it will generate a rule resolution query with an inner join which can cause a time out on the SQL Server while it tries to find out the join order for tables with multiple joins. To resolve this, the SQL server will provide a Force order, merge inner join hint option by way of an added DSS reporting/useForceOrderHint. Additionally, reporting/useMergeHintForRRquery should be set on Pega-Reporting to set things up for using the Merge Inner join hint in the query.