Skip to main content

InterSystems IRIS® Upgrade Checklist (2023.3)

This document is meant to help you assess the impact of moving your code to the InterSystems IRIS 2023.3 continuous delivery (CD) release. It lists the incompatibilities since 2023.1.0. These incompatibilities may require changes to code, configuration, or operation.

InterSystems News, Alerts, and Advisories

From time to time, InterSystems publishes items of immediate importance to users of our software. These include alerts, mission-critical issues, important updates, fixes, and release announcements. You can obtain the most current list at https://www.intersystems.com/support-learning/support/product-news-alerts/Opens in a new tab. InterSystems recommends that you check this list periodically to obtain the latest information on these issues.

Embedded Python

DP-421423: Make IRIS collections more pythonic

Category: Embedded Python
Platforms: All
Version: 2023.2.0

Previously, when InterSystems IRIS collection types (like %Collection.AbstractList) were projected into Python, there were some differences that prevented the objects from having identical charactieristics to a standard Python object of the corresponding type. This issue has been resolved.

DP-425088: Speed up ResultSet dataframe() Method and translate SQL nulls("" not $lb(,)) and SQL Empty ($C(0)) correctly as None and "" when generating typed python lists

Category: Embedded Python
Platforms: All
Version: 2023.3.0

The ResultSet dataframe() method now returns a fixed view of InterSystems SQL data, inparticular translating SQL nulls as None and SQL empty strings as "" when generating a typed python list.

Global Module

DP-424362: Increase number of BlkSrch_ENQ, BlkSrch_DEQ and LRU resources

Category: Global Module
Platforms: All
Version: 2023.3.0

This change improves high-end scalability by increasing the count of various resources, like BlkSrch_ENQ, BlkSrch_DEQ, and LRU. This increase reduces resource contention and increased shared memory by a marginal number of megabytes.

Installation

DP-422913: changes to Unix installer platform detection

Category: Installation
Platforms: AIX
Version: 2023.3.0

Users that perform an installation in unsupported environment for testing purposes must explicitly set the ISC_PACKAGE_PLATFORM environment variable to the platform name.

Interoperability

DP-421559: [Interoperability] System Default Settings now supports PoolSize, Enabled, TestingEnabled and ActorPoolSize

Category: Interoperability
Platforms: All
Version: 2023.3.0

System Default Settings previously ignored any entries that matched an item's Enabled or PoolSize setting or a production's ActorPoolSize or Testing Enabled setting. With this change, the System Default Settings no longer ignore such entries.

DP-423063: [Interoperability] BPL SQL action to return status error if generated embedded sql reports an error

Category: Interoperability
Platforms: All
Version: 2023.3.0

The BPL SQL action now returns an error status if the generated SQL commands return a SQLCODE error. This allows the use of the BPL error handling mechanisms.

DP-423783: [Interoperability] Business Process %MasterPendingResponses structure change

Category: Interoperability
Platforms: All
Version: 2023.3.0

Business process %MasterPendingResponses list has been converted from a list to a parent/child relationship with Ens.BP.MasterPendingResponse and appropriate indices. Any custom code that iterated over the internal %MasterPendingResponses using GetAt() with sequential number iteration to the count value should be modified to use the parent/child collection methods of the class, such as Previous() and GetNext(). After an upgrade, any incomplete business process thread data must be converted using the Ens.BP.Utils.Upgrade.UpgradePendingResponsesStorage() method.

Kernel

DP-419453: Remove unneeded loop from getint8()

Category: Kernel
Platforms: All
Version: 2023.2.0

Previously, converting an out-of-range IEEE binary floating point value to an integer could produce a error or an undefined integer result. Such conversions now produce either the most-negative or the most-positive integer value.

DP-421917: POWER7 processor no longer supported

Category: Kernel
Platforms: AIX
Version: 2023.2.0

This change removes compatibility with AIX systems using a POWER7 or earlier processor. The new minimum is POWER8.

DP-423015: Allow any Unicode character as an identifier

Category: Kernel
Platforms: All
Version: 2023.3.0

Any new routine or class names can contain any Unicode character as part of the identifier.

Object - Entity Framework

DP-423018: Add Delimited Identifiers support in Entity Framework

Category: Object - Entity Framework
Platforms: All
Version: 2023.3.0

Previously in Entity Framework, all identifiers were quoted when parsing the SQL statement. However, if delimited identifiers are turned off on InterSystems IRIS, then this causes a syntax issue.

This change will not quote identifiers if delimited ids are turned off on the IRIS side.

This change requires users to ensure the delimited id setting is consistent across the databases they connect to.

Object Library

DP-423147: Inherit routes in %CSP.REST UrlMap

Category: Object Library
Platforms: All
Version: 2023.3.0

This change removes the %CSP.Rest.ResolveTarget() method and makes the %CSP.Rest.DispatchMap() method Internal.

DP-424964: Write %UnitTest results directly to ^UnitTest.Result

Category: Object Library
Platforms: All
Version: 2023.3.0

%UnitTest.Manager now writes results directly to ^UnitTest.Result, where it can be access by other processes as it is generated. As a result, the TempLogIndex property no longer exists, as no temporary log is written. This changed behavior means that any subclasses of %UnitTest.Manager that uses the TempLogIndex property or relies on the generation of a temporary log needs to be updated.

DP-425574: Add source location to %UnitTest.Result.TestAssert

Category: Object Library
Platforms: All
Version: 2023.3.0

Unit tests log all TestAsserts to the console and store them in ^UnitTest.Result for structured access to the data. This change adds a mapping between a TestAssert and the location within the test class it came from by adding a new Location field in the %UnitTest.Result.TestAssert table, which helps with debugging test failures.

ObjectScript

DP-424951: $ZHOROLOG to use montonic clock

Category: ObjectScript
Platforms: All
Version: 2023.3.0

The change makes $ZHOROLOG use a monotonic clock, meaning the utility does not go backward due to NTP or daylight savings time. The time elapsed according to $ZHOROLOG may diverge from time elapsed as seen by taking changes of the real time as reported by $h, $ztimestamp, or $now; any code that expects those changes to be equivalent may need to be updated.

ODBC

DP-422960: ODBC. Do not convert data from BINARY to WCHAR

Category: ODBC
Platforms: All
Version: 2023.2.0

Previously, when converting BINARY data to the ASCII representation, it was initially converted into WCHAR. This has been changed, such that the ODBC driver now converted BINARY data directly to the ASCII representation.

Security

DP-422560: HTML encode REST error messages

Category: Security
Platforms: All
Versions: 2022.1.4, 2023.1.1, 2023.2.0

Previously, error messages returned from REST APIs were not HTML encoded. This issue has been corrected.

DP-422782: refactor OAuth2 client AccessToken API

Category: Security
Platforms: All
Version: 2023.2.0

The GetAccessTokenRefresh() method in the %SYS.OAuth2.Authorization class must now be run in the %SYS namespace by a user with %Admin_Secure:USE. However, the preferred method of retrieving and refreshing an access token is to use the IsAuthorized() method in the %SYS.OAuth2.AccessToken class.

DP-423672: web gateway secret management for cloud

Category: Security
Platforms: UNIX®
Version: 2023.3.0

Unix® users with passwords that start with { and end with } for Web Gateway server configurations will need to change them, or the will be interpreted as commands. Other platforms are not affected.

DP-424657: Add %Admin_OAuth2_Client permission

Category: Security
Platforms: All
Version: 2023.3.0

This change adds the %Admin_OAuth2_Client permission, which gives minimum permissions to a system that uses InterSystems IRIS as a client to an OAuth2 authorization server.

Any custom roles that had %Admin_Secure and fit this use case need to be updated to contain this resource.

DP-425110: Tighten OAuth2 JWT security requirements

Category: Security
Platforms: All
Version: 2023.3.0

This change makes "RS256" the default value for the SigningAlgorithm field in the OAuth2.Configuration class. Additionally, %OAuth2.Server.JWT now returns an error if no signing algorithm is defined for a JWT access token. the JWTToObject() method of the %OAuth2.JWT class no longer considers unsigned an unencrypted JWTs to be valid. However, this behavior can be overridden by using the new AcceptUnsecured parameter.

SQL

DP-419630: Make INSERT OR UPDATE fail if the unique value belongs to a super class

Category: SQL
Platforms: All
Version: 2023.2.0

When users that have a class structure where there is a unique constraint in a super class attempt to INSERT OR UPDATE in the subclass, the command will now fail. Previously, this behavior did not throw an error, although an UPDATE would silently have been ignored.

DP-421723: Fix, refactor and optimize SQL <explain statement> error processing

Category: SQL
Platforms: All
Version: 2023.3.0

This change causes errors that arise from EXPLAIN statements to occur during query runtime, rather than compilation.

DP-422284: Allow predicate pushdown for foreign tables with QUERY clauses

Category: SQL
Platforms: All
Version: 2023.3.0

Useres must explicity ensure that column names provided for a QUERY-based foreign table are the same as the names in the QUERY clause of the CREATE FOREIGN TABLE commands or must provide a VALUES clause which specifies the names of the columns returned by the QUERY clause.

DP-424443: Remove quote/quoteall from %occUtility

Category: SQL
Platforms: All
Version: 2023.3.0

This change removes the internal $$quote and $$quoteall functions, which were included as internal-only utilities that were never intended for use in user-written code. Any user-written code that relied on these functions must be modified.

VDoc - XML

DP-423225: [Interoperability] XML VDoc to pass back error encountered creating output from use of internal stream

Category: VDoc - XML
Platforms: All
Version: 2023.3.0

Previously, errors encountered when generating out using internal stream were suppressed. This behavior has been changed so that such errors are now reported. These errors must be handled appropriately, either through code changes or production configurations.

For Additional Help

If you need assistance with evaluating how upgrading to this extended maintenance (EM) release will affect your applications, systems, or related plans, please contact the InterSystems Worldwide Support Center:

  • Phone:  +1.617.621.0700
  • Fax:  +1.617.734.9391
  • Email:  support@intersystems.com

Current release notes (and complete product documentation) can be found online at https://docs.intersystems.com.

FeedbackOpens in a new tab