INC-142188 · Issue 600328
Resolved parent lock sending child item to broken queue
Resolved in Pega Version 8.1.9
If the ServiceLevelEvents agent tried to process the queue item for a child case but encountered a lock error because the parent case was locked, the queue item was immediately going to the Broken-Process status instead of re-queueing the item to try again in 15 minutes. If the property was set to 'Copy data from a data page', the item was re-queued. To resolve this, the unwind and forward chain calls have been reversed. A dynamic system setting is available to reset the change.
INC-143195 · Issue 596845
BLOB utility modified for better memory usage
Resolved in Pega Version 8.1.9
An out of memory error was encountered when running the utility for handling corrupted BLOBs. This has been resolved by modifying the utility to get the rows in batches.
SR-D36826 · Issue 550273
LastAccessTime returned for MDB listeners
Resolved in Pega Version 8.1.9
The lastAccess time for the JMS listener was not being updated. Investigation showed that lastAccessTime was correctly updated whenever isStopping() was called, but isStopping() was not called for MDB listeners because the MDB listeners' state is managed by the app server. This caused accessTime to be empty. To resolve this, ListenerStateImpl has been modified to return mRequestTime as the lastAccessTime if the listener is of type MDB.
SR-D83424 · Issue 552723
Class Loader cache values wrapped with WeakReference for improved cleanup
Resolved in Pega Version 8.1.9
Out Of Memory exceptions due to Metaspace were observed on Web tier instances running with a max Metaspace size of 2GB. Investigation showed that in PRClassLoaderDB, mLoaderCache values were wrapped with a SoftReference. To resolve this, the Class Loader cache values will be wrapped with a WeakReference, allowing the cache to free memory when it is no longer needed. JVM options has also been added to switch types of References being used if there is a preference.
SR-D84876 · Issue 547689
Performance improvement for Oracle 12c queries
Resolved in Pega Version 8.1.9
In order to compensate for a known issue with Oracle 12c that can cause repeated queries at certain times to cause database contention, Oracle pre/post processing steps have been added to improve performance in this environment.
SR-D86413 · Issue 553701
Updated sender email address validation to handle long domains
Resolved in Pega Version 8.1.9
In some cases, attempting to create a case via an email was failing and the cases were being routed to the broken queue. The error "IndeterminateConditionalException: Unable to load data page D_TrackAutoResponse. Required parameters : SenderEmailAddress. cannot be blank" appeared. This was traced to regex having a validation on the length of a domain name which caused a lengthy 'from' address to be trimmed. To resolve this, the regex has been modified to validate the email address as per RFC5322.
SR-D87673 · Issue 552486
IACservice security updated
Resolved in Pega Version 8.1.9
Security updates have been made which now require authentication to consume the services from IACservice packages.
SR-D88499 · Issue 551188
Check added to minimize Obj-Open-By-Handle error logging
Resolved in Pega Version 8.1.9
When using a Data Type with the "Automatically generate a unique id " option, calling the Save-DataPage method by using the savable data page of the data type finished correctly but showed Obj-Open-By-Handle errors on PegaRules.log. Investigation showed the exception was thrown when running the save plan from DataPageSaverImpl: while attempting to run the save plan, the system does not know whether a parameter (pyGUID in this case) will be required to run the save plan or not, meaning that it can't detect any possible error in DataPageSaverImpl. The implementation instead makes a call to db.open to check if an instance exists and hence logs are thrown. To resolve the error logging, a check has been added: if the save-to class has an autogen key and the savable data page instance doesn't have the autogen key in it, the system will directly call pxCreateRecord. This will avoid a call to db.open to check if instance exists and hence no failed logs will be thrown. This partial change will work only for classes having an autogen key and in cases where the page is trying to create a record by intentionally not passing the key.
SR-D90687 · Issue 560430
IOException handling improved to resolve broken pipe errors
Resolved in Pega Version 8.1.9
Frequent "connection reset by peers" exceptions were being generated and broken-pipe exceptions were seen in the logs. Investigation traced the issue to unhanded IOExceptions on the server side that were a result of the client application not always closing the TCP connection gracefully. To resolve this, error handling for IOExceptions has been improved.
SR-D92707 · Issue 551693
QP exception handling improved
Resolved in Pega Version 8.1.9
There is currently a configurable maximum size limit for QP items of 5MB. If the message size exceeded 5 MB, the message failed to be enqueued to Kafka, but still ended up in the delayed message table where it remained. This caused issues with pzDelayedQueueProcessorSchedule JS as a result. To resolve this, the system has been updated to better detect Kafka errors related with message size and move any corrupted item to the broken message queue with the appropriate message attached.