INC-166498 · Issue 637054
Performance improvements for sites with a large number of tables
Resolved in Pega Version 8.3.6
Performance impacts were seen when there were a very large number of tables in the database and the cluster/node persistence jobs were running. This was traced to the volume of metadata / schema introspection queries fired from the pyPersistNodeState and pyPersistClusterState jobs along with the Classmap cache invalidation / lookup queries, and has been resolved by improving the code to avoid database introspection when the current number of tables is greater than a maximum value.
INC-166631 · Issue 637021
Optimizing helper class enhanced to handle external databases
Resolved in Pega Version 8.3.6
Running a BIX extract that included a manifest for a target database was resulting in a null pointer exception for the manifest extraction. Attempting to generate the DDL for the manifest table also failed. This was traced to an issue with the helper class using a hardcoded default database for forming the queries, causing it to ignore the DB config/DADN/prconfig for the Oracle database and form a query using the PegaRules' database credentials. This only occurred when trying to do external database operations on a different DB platform; Oracle PegaRules worked as expected with an Oracle external DB and Postgres Pegarules worked with a Postgres external DB, but mixing Postgres PegaRules and an Oracle external DB would result in the null pointer error. To resolve this, the helper class has been enhanced to work with external databases by passing the database name as a parameter so it will properly calculate the query based on the type of target. The default for 'database/oracle/allowOptimization' is set to false: additional database privileges must be added or some configurations must be updated to provide the information needed in lieu of the privileges before making use of these optimizations. In addition, an error in the name of the class has also been corrected and is now available as PerformanceHelper rather than the previous "PerformaneHelper".
INC-168334 · Issue 648372
Locking added to avoid null pointer error for auto-populate property
Resolved in Pega Version 8.3.6
After configuring the auto populate property "OrgProduct" which referred to a data page, the system experiencing heavy load led to the property not getting properly initialized. This resulted in a WrongModeException and NullPointerException. To resolve this, the system has been updated to lock the requestor when Queue Processors execute their activity. This will prevent race conditions and concurrent modifications if other threads are accessing the same requestor.
INC-169764 · Issue 645803
Decision table query performance improvements
Resolved in Pega Version 8.3.6
Severe latency was seen after upgrade, and it was not possible to save business rule changes. This was traced to an issue with the decision rule being treated as a custom rule, and has been resolved by inserting a check. In addition, optimization has been added for queries on the pr_sys_decchg table.
INC-170841 · Issue 646186
Resolved PRQueueLockException
Resolved in Pega Version 8.3.6
A Class Queue not found exception resulted when an SLA was deleted on the same transaction where it was created when deferred save was used. This was an inadvertent side effect of work done on the QueueManager implementation to invalidate previously deferred operations for item and schedule removal, and has been resolved by clearing the processing state for PRQueueLockException when an item reservation fails.
SR-D84122 · Issue 547965
Added min INT comparison for BrowseByKeys
Resolved in Pega Version 8.3.3
Running the dataset with the Browse option worked as expected, but running it using BrowseByKeys operation and giving a negative value caused results to not be populated. To resolve this, a minimum INT value comparison has been added.
SR-D84099 · Issue 547824
Atmosphere library updated
Resolved in Pega Version 8.3.3
Multiple setAttribute exceptions were logged related to the Atmosphere component, indicating "The request object has been recycled and is no longer associated with this facade." Investigation showed that since the request object was destroyed, an illegalstateexception was thrown. To resolve this, the Atmosphere library has been updated to version 2.4.5.7 which contains the fix for this error.
SR-D64608 · Issue 544386
Corrected filedownload extension header issue
Resolved in Pega Version 8.3.3
Filedownload header contained plain non-ascii characters which caused a security violation issue. This has been resolved by removing the filedownload header from the HTTP response when the sendfile API is used with inputstream to download a file.
SR-D60284 · Issue 550558
Delete Requestor method updated for use with CMT
Resolved in Pega Version 8.3.3
JMS MDB Listeners with Container Managed Transaction (CMT) enabled in Websphere 8.5 had global transactions fail. To initialize a JMS-MDB listener, a requestor of type APP is used. Upon the service being fully initialized, the requestor is removed by executing a delete operation followed by a COMMIT. However, in this scenario, the initialization operation is running within a CMT context and a SQLException was raised indicating that the commit was not allowed. To resolve this, the delete requestor method has been refactored to take into account the CMT context so the commit is not executed if the transaction is managed by the container.
SR-D74921 · Issue 551786
Error condition will close WebSocket connection
Resolved in Pega Version 8.3.3
An async listener has been added that will close the WebSocket connection when an error condition is encountered.