• Query service optimization. This includes improved performance for the QueryPropertyHistory and QueryPropertyNamedHistory services. Previously, a database call was made for every logged property. With this improvement, one database call is made for all logged properties, resulting in the following improvements:
▪ A ~20% decrease in memory usage for the QueryPropertyHistory and QueryNamedPropertyHistory service queries if no filters are applied (PostgreSQL and MSSQL).
▪ Decreased time to execute query (~10%) for the QueryPropertyHistory and QueryNamedPropertyHistory services. Depends on latency to the database (PostgreSQL and MSSQL).
▪ Additional decrease in memory, based on the filter supplied during the query for QueryPropertyHistory and QueryNamedPropertyHistory services. (PostgreSQL and MSSQL). If a filter is applied that reduces the record count by 50%, then there is an additional 50% decrease in memory usage on top of the other 50% described in the first point.
This optimization also results in an approximate 10% decrease in memory for single property queries.
The Audit Subsystem has been added. It supports the following capabilities:
• Automatically add audit entries to online storage.
• Search for audit entries (use the QueryAuditHistory service) stored online.
• Archive online audit entries to offline storage (automatically performed daily by default).
• Export audit data, using the language selected for the export.
• Purge online audit data on the basis of a specified number of days for audit data to remain online and also on the specified number of rows to keep online.
• Clean up archived audit data automatically, based on a configured schedule.
• The security of the PASSWORD base type has been enhanced and is now encrypted. See Passwords for more information.
• Added the Collection Widget, which allows you to replicate/repeat mashups and content by using infotables to dynamically supply visual content and data. Refer to the KCS article for additional information here
• The licensing process has been improved. An activation ID is no longer required to obtain a license and a new license file is not required for minor or major release upgrades.
◦ For connected scenarios, activation IDs are no longer required in the platform-settings.json file.
◦ For disconnected scenarios, go to the enhanced PTC Support site pages, select the product, enter a Device ID, and retrieve a license.
• You can enable the Application Key Authenticator when SSO is enabled by editing the sso-settings.json configuration. For more information, see Configure the sso-settings.json File.
• TheCSS Editor was added to Mashup Builder, which allows developers to create modern experiences with responsiveness, animations, and advanced styling and behaviors. Refer to the KCS article for additional information here.
• Added support for "Store and Forward" functionality to the interface between KEPServerEX and the ThingWorx platform. KepServerEX can be configured to store updated property data to disk when disconnected from the ThingWorx platform and will send that data gracefully when the connection is re-established.
• In mashups, row and column gadget sizes 1 to 8 are now available. TW-25477
• Fixed an issue with Thing Shapes when editing subscriptions twice before canceling or closing in which the second edit was not saved.
• Fixed an issue that was causing SQL Server apparent deadlock exceptions.
• Added useful log information for troubleshooting LDAP and Active Directory errors.
• Fixed an issue with exception handling in DSLProcessor in which line numbers were not included in the log.
• Service error notification messages were fixed to display on multiple lines based on line breaks in the message.
• Fixed an issue in which a master mashup header image was not fully displayed.