INC-201338 · Issue 690896
Restored local blocking queue cache
Resolved in Pega Version 8.7
After update, it was not possible to bring up secondary VBD nodes after restarting. Investigation traced this to earlier work done to resolve a memory leak issue, in which stale entries for local blocking queues were removed from cache. This resulted in modifying the queue listener logic to use "cache.getQueueIfPresent(jobId)" instead of "cache.getQueue(jobId)". Because the listener was not creating the cache if it was not present and the cache which held the local blocking queue didn't have the entry for the current remote execution job ID, the caller of the remote execution on Node2 ended up in blocking state forever, waiting on the local blocking queue. To resolve this, the code has been updated to ensure the blocking queue is created and stored in the local queue cache before publishing the remote job message.
SR-C75278 · Issue 415735
Extension added to wrapper activity to allow skipping completed assignments
Resolved in Pega Version 8.2
The withdrawal of the pyPopulateCaseContentsWrapper activity rule from the PegaCardSd ruleset caused the wrapper activity in Pega-EndUserUI to be utilized instead, but that activity included a different behavior which resulted in the Completed Assignments checkbox being set as 'true' during processing instead of staying 'false' unless checked by user. This resulted in additional assignments showing when previously only open assignments would show as default. In order to correct this, a new extension "DT(pyPopulateCaseContentsWrapperExtension)" has been provided to set the required fields in order to skip fetching the completed assignments. To utilize this, set the pyShowCompletedAssignments property to true in the extension DT to hide the assignments.
SR-D16427 · Issue 497220
Multi-nodes rebuild LibraryMetadata to ensure all Rule-Utility-Functions are present on change
Resolved in Pega Version 8.3.1
When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that Rule-Utility-Library. Therefore assemblies on those other nodes could be bad and throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation to ensure that each node completely rebuilds the LibraryMetadata for that Rule-Utility-Library so it contains all the Rule-Utility-Functions.
SR-D32441 · Issue 502572
Multi-nodes rebuild LibraryMetadata to ensure all Rule-Utility-Functions are present on change
Resolved in Pega Version 8.3.1
When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that Rule-Utility-Library. Therefore assemblies on those other nodes could be bad and throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation to ensure that each node completely rebuilds the LibraryMetadata for that Rule-Utility-Library so it contains all the Rule-Utility-Functions.
SR-D22113 · Issue 498312
Multi-nodes rebuild LibraryMetadata to ensure all Rule-Utility-Functions are present on change
Resolved in Pega Version 8.3.1
When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that Rule-Utility-Library. Therefore assemblies on those other nodes could be bad and throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation to ensure that each node completely rebuilds the LibraryMetadata for that Rule-Utility-Library so it contains all the Rule-Utility-Functions.
INC-139624 · Issue 595988
Validation error messages persist appropriately
Resolved in Pega Version 8.5.2
Whenever there was a Validation check on a flow action Validation Tab and Post Processing Activity, the error message appeared on the screen momentarily and disappeared. Intermittently, the validation error would stay on the screen after appearing a second time. This was traced to the refresh action happening in the wrong context due to the refresh action of the Ajax container being called twice, once in postacrenderac and another time in the harness unload function.The case error DOM was present in the markup, but because of the refresh in the harness unload, the error message was removed from the DOM. This has been resolved by changing the refresh call from onHarnessUnload callback to postAcRender callback. Logic has also been added to prevent refresh when error messages are present.
INC-172675 · Issue 649455
Configuration added for extending queue processor timeout
Resolved in Pega Version 8.7
Alerts for queue processor (QP) items which took more than 15 minutes to run could result in the system marking the node as 'unhealthy'. In environments with Pega Health Check enabled, this would shut down the node gracefully. It was not possible to change this default as it was hardcoded. In order to support systems that may have custom processes that run beyond 15 minutes, a a new setting has been exposed that allows configuration of the interval after which a node with long-running queue processor is marked as unhealthy and is restarted. By default this remains 900000 milliseconds / 900 seconds / 15 minutes, but it may be adjusted up to 24 hours to avoid premature node shutdown. The stale thread detection mechanism will take that setting into account and use the provided value or default to 15 minutes if the value was not provided. In addition, the threshold's units in the UI have been changed from ms to seconds.
INC-185322 · Issue 668321
Configuration added for extending queue processor timeout
Resolved in Pega Version 8.7
Alerts for queue processor (QP) items which took more than 15 minutes to run could result in the system marking the node as 'unhealthy'. In environments with Pega Health Check enabled, this would shut down the node gracefully. It was not possible to change this default as it was hardcoded. In order to support systems that may have custom processes that run beyond 15 minutes, a a new setting has been exposed that allows configuration of the interval after which a node with long-running queue processor is marked as unhealthy and is restarted. By default this remains 900000 milliseconds / 900 seconds / 15 minutes, but it may be adjusted up to 24 hours to avoid premature node shutdown. The stale thread detection mechanism will take that setting into account and use the provided value or default to 15 minutes if the value was not provided. In addition, the threshold's units in the UI have been changed from ms to seconds.
INC-186898 · Issue 670313
Configuration added for extending queue processor timeout
Resolved in Pega Version 8.7
Alerts for queue processor (QP) items which took more than 15 minutes to run could result in the system marking the node as 'unhealthy'. In environments with Pega Health Check enabled, this would shut down the node gracefully. It was not possible to change this default as it was hardcoded. In order to support systems that may have custom processes that run beyond 15 minutes, a a new setting has been exposed that allows configuration of the interval after which a node with long-running queue processor is marked as unhealthy and is restarted. By default this remains 900000 milliseconds / 900 seconds / 15 minutes, but it may be adjusted up to 24 hours to avoid premature node shutdown. The stale thread detection mechanism will take that setting into account and use the provided value or default to 15 minutes if the value was not provided. In addition, the threshold's units in the UI have been changed from ms to seconds.
SR-C72385 · Issue 414867
Resolved ClassCast email exception caused by duplicate javamail class loading
Resolved in Pega Version 8.2
A ClassCastException was occurring when attempting to configure an email account in conjunction with JBOSS , WebLogic, or WebSphere Liberty. Analysis traced the issue to Class Loading: the WAS application server was providing a default com.ibm.ws.prereq.javamail.jar which conflicted with Pega's out of the box mail-1.5.5.jar, and at run time the JAR provided by WAS was getting picked due to JBoss, Weblogic, and WAS loading architectures from Tomcat. To resolve this, the delegation in PRAppLoader has been expanded to include the "javax.mail." package. This will ensure that Pega delegates to the web-app classloader unconditionally for the email classes. This prevents the ClassCastException caused by the interface javax.mail.Transport and com.sun.smtp.(Implementation Class) being loaded by two different class loaders.