Upgrade Compatibility Checklist for InterSystems IRIS 2020.1.1
This article lists the features of the 2020.1.1 release of InterSystems IRIS® that, because of their difference in this version, affect the administration, operation, or development activities of existing systems.
Customers upgrading their applications from earlier releases are strongly urged to read the upgrade checklist for the intervening versions as well.
Web Sockets with SharedConnection=1 Can Now Timeout
In previous releases a Web Socket connection with SharedConnection=1 would never timeout. With this change, this connection will time out if it is inactive for the CSP session timeout. This change first appeared in maintenance release 2020.1.1. Note this change was also in 2019.1.2.
Improved Handling of SameSite HTTP Option
Recent updates to browser security have changed handling of third-party cookies. These updates use the SameSite attribute to reduce the risk of cross-site request forgery (CSRF) attacks, unauthorized access to data, and other possible security issues. Chrome (starting with v.84) enforces stricter rules for SameSite behavior, and these rules can cause issues with existing websites and web applications. These issues may include login problems, the login page being displayed repeatedly, and page elements not displaying properly. In previous versions, Caché did not support modifications to the SameSite attribute; hence web applications running on these versions may have such issues.
This release solves these problems by setting the SameSite attribute for cookies and by allowing you to set change the default setting; however, you may need to modify your code to customize values setting the session cookie scope and the user cookie scope. Additionally, if you are using “SameSite=None”, you must ensure that your web application can support secure HTTPS connections. This change first appeared in maintenance release 2020.1.1. Note that this change was also in 2019.1.2 and Caché/Ensemble 2018.1.5.
Changes to When SQL Statement Indexes Are Removed
Previously when all routines/classes that contained a SQL statement were removed the statement index entry was also removed. This meant that all light weight SQL statistics were also removed when the routine/class that contained the SQL statement was removed. It is often very useful to have access to this historic information and in addition if the statement was frozen it was not removed, so this change modifies the behavior to always keep the SQL statement index entry (and light weight SQL statistics) when the containing routine/class is deleted.
A new button has also been added to SQL statement index page in the system management portal labelled Clean stale which will run a task to remove all statement index entries that are not frozen where the containing routine/class is no longer present or no longer contains this SQL statement.
This change does not impact how your code is executed, but in order to remove the index entries, you have to use the Management Portal. This change first appeared in maintenance release 2020.1.1.
Collation Changes Impact Query Processing
Concatenations of expressions that are coercible to a common collation (for example, string constants or parameters concatenated with commonly collated fields) will now be collated as the common collation. This change could lead to conditions that previously evaluated to false for certain values now evaluate to true. For example, the following condition will evaluate to true:
' ' || fieldLIKE 'A'
where field has a value 'a'. It is unlikely that any code is dependent on having a false value for this condition.