SR-C9767 · Issue 350619
Object contention resolved to improve getPOJO performance
Resolved in Pega Version 7.4
Object pool contention issues were seen related to getPOJO and getDelegate. This was traced to the legacy class GenericObjectFactoryPool, where a hashmap was being guarded with a synchronized block for multi-thread access. This process has now been replaced with a concurrenthashmap to do the same but with thread contention.
SR-B66932 · Issue 334833
Indexes created on a MT system automatically contain pzTenantID column
Resolved in Pega Version 7.4
When installing PDC on a multi-tenant system the pzTenantID column is automatically added to every application table (pegaam_*). This is expected. However, the indexes contained in the schema jar were not automatically extended to contain the pzTenantID, which created the need to manually update all indexes post-install to include the pzTenantID column on the first place. A similar problem existed when updating to a newer version of PDC that contains schema changes. This has been addressed by adding MultiTenantPolicy and Import/Default concrete classes that inform DatabaseSchemaGenerator.IndexElement whether or not to include pzTenantID in the column list. During Import, pzTenantID will be added to all indexes on shared context tables. In other utilities (UAS, clone table, etc.) the column will only be added to primary key and unique indexes/constraints (existing behavior).
SR-B83849 · Issue 337067
Exception handling added for XML with invalid characters
Resolved in Pega Version 7.4
When PDC receives an Exception alert in the form of a SOAP Message from one of its monitored nodes, it parses the XML and creates a work object from it. However, if the Exception was caused by an XML with invalid characters, the Exception SOAP Alert message carried the invalid characters when arriving on AES/PDC PRSOAPServlet, causing the engine to fail in parsing the XML and generate an exception. Logic has now been added to SOAP envelope parsing to catch the exception, sanitize the payload, and then re-feed it to the parser.
SR-C445 · Issue 344716
cluster rule watch lock expires on crash
Resolved in Pega Version 7.4
If the cluster rule watch was in progress and the browser / system crashed, the rule watch became locked until the system (cluster) was restarted. In this case, the disconnect command from Req1 has an encrypted requestor ID because it is an unauthenticated requestor, leading to all String-matches failing. A hook to delete all entries in the distributed rule watch map for a given requestor during its clean up has now been added to resolve this.
SR-B90037 · Issue 340248
pyFolderID honored for SaveFileContent
Resolved in Pega Version 7.4
After customizing the out-of-the-box Activity "SaveFileContent" by setting the property "pyFolderID," all attachments were stored in the Documentum root folder instead of the specified folder. This was traced to a code error that bypassed setting the parameter, and has been fixed.