Caché Release Notes and Upgrade Checklist
Upgrade Checklist for Caché 2018.1
[Home] [Back] 
InterSystems: The power behind what matters   

The purpose of this chapter is to highlight those features of Caché 2018.1 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. This document addresses only the differences between 2017.2 and 2018.1.

Before upgrading Caché, read Upgrading Caché in the Caché Installation Guide for instructions. If you are upgrading from a version earlier than Caché 2012.1, pay special attention to Supported Upgrade Paths in the Caché Installation Guide.
The maintenance release Caché 2018.1.3 introduced the following upgrade checklist items:
The maintenance release Caché 2018.1.1 introduced the following upgrade checklist items:
This section contains information of interest to those who are familiar with administering prior versions of Caché and wish to learn what is new or different in this area for version 2018.1. The items listed here are brief descriptions. In most cases, more complete descriptions are available elsewhere in the documentation.
Operational Changes
Increase in Memory Usage (Version 2018.1.1 and later)
Maintenance Release 2018.1.1 provides performance and scalability enhancements for large-scale systems. These enhancements increase the amount of memory allocated for global buffer metadata by 64 bytes per buffer on Intel systems and by 128 bytes per buffer on IBM Power systems. For example, with 8K buffer sizes, the shared memory allocated for a global buffer increases by 0.75% on Intel systems and by 1.5% on IBM Power systems. There is also an increase in per-process memory usage for systems using large numbers of subscript level mappings.
Allocating Space for Write Image Journaling (WIJ) Files
This release contains a new parameter, Target size for the WIJ, in the system configuration journal settings. Setting this target size ensures that disk space is allocated for the WIJ early in the start-up process. If sufficient space is not allocated early and there is not enough available space for the WIJ, the system may encounter problems. Allocating space for WIJ is an advanced configuration setting. If you encounter issues with this, contact the InterSystems Worldwide Resource Center.
Changes to JRNDUMP Utility Navigation
The JRNDUMP utility has improved navigation. If you have a script that responds to JRNDUMP prompts, you should check the script to ensure that it handles the changed navigation.
Platform-Specific Items
This section holds items of interest to users of specific platforms.
Windows Upgrade Installation Does Not Create USER Namespace if Previously Deleted
In previous releases, if, on a Windows system, you upgraded Caché where the USER namespace had been deleted, the installation would create a new USER namespace. In this release, the installation will not create a USER namespace if it was previously deleted from the instance. This is typically the desired behavior, but, if you have a script that automatically deletes the USER namespace after an upgrade, you may need to modify the script. The Windows install now matches the behavior of Caché installations on other platforms, that is, if the instance does not have a USER namespace, the upgrade does not create one.
This section contains information of interest to those who have designed, developed and maintained applications running on prior versions of Caché.
The items listed here are brief descriptions. In most cases, more complete descriptions are available elsewhere in the documentation.
Class Changes
Removed Classes
No classes have been removed in this release that were present in the previous version.
Removed Methods
The following methods were present in the previous version and have been removed in this release:
Removed Properties
No properties have been removed in this release that were present in the previous version.
Removed Parameters
No parameters have been removed in this release that were present in the previous version.
Removed Indices
No indices have been removed in this release that were present in the previous version.
Modified Methods
The following methods have different signatures in this version of Caché:
Debugging Changes
Debugger on AIX Breaks After True Post-Conditional
When you are stepping through a routine on an AIX system and a command post-conditional is true, the debugger generates an additional <BREAK> before executing the command.
Terminal Changes
The cterm application now accepts terminal input directly as Unicode instead of ANSI characters. This change should not impact terminal usage and behavior, but it is possible that there may be differences in some locales. This change allows Caché to support additional languages.
DeepSee Changes
DeepSee Cubes Require Recompile (Version 2018.1.1 and later)
After upgrading to Caché 2018.1.1, you must recompile all DeepSee cubes. The 2018.1.1 Maintenance Release contains a fix to the %DeepSee.Generator that requires this recompile. If you build a cube without recompiling, it may cause an error.
Complex MDX Queries Are Rejected (Version 2018.1.1 and later)
In previous releases, a complex MDX query with nested %OR setfunctions could produce erroneous results. This release detects the constructs, blocks them, and issues an error. It is possible to produce the intended logical result with a simpler construct. You should rewrite these queries so that any %OR contains only AND terms.
Recompile Measure-Specific Listings
This release contains a correction to handle listing filters within compound cubes. You must recompile measure-specific listings to get this fix.
GetCubeMeasures Changes
The %DeepSee.Utils:%GetCubeMeasures() method should return the caption as the second item in the output list. For calculated measures it was returning the name. In this release, it correctly returns the caption. If your code depended on the previous incorrect behavior, you should modify it.
Language Binding Changes
ID Notation in XEP (Version 2018.1.1 and later)
In C# classes used for XEP, developers can specify an id annotation. In previous releases, this could cause bulk updates to fail. To avoid this problem, Caché now generates id_property. In some cases, schemas with the generated id annotation may encounter a problem. If you encounter this problem, remove the annotation and the behavior will be unchanged from the previous version.
Issue Using C++ Binding with Output Redirection
In order to perform output redirection, the C++ binding stores and resets the $ZR value. If $ZR points to a database that the user does not have write access, this encounters a protect error.
Security Changes
Changes to HttpRequest Security
In this release, %Net.HttpRequest is enhanced to support SPNEGO, Kerberos and NTLM authentication, as well as Basic authentication, for HTTP clients. This new authentication process for %Net.HttpRequest changes the existing %Net.HttpRequest support for Basic authentication. In previous releases, setting the Username property will as a side-effect return a Basic Authorization header. This behavior will only continue for HTTP 1.0 responses. For HTTP 1.1 responses an unsolicited Authorization header will never be sent unless the InitiateAuthentication property is set. If the current Basic authentication support is used, it will result in a 301 status response with a WWW-Authenticate header indicating Basic and possibly other schemes. HttpRequest then sends another request with the proper Authorization header. Existing code will continue to work but there will be an extra round-trip
System Changes
System Statistics Changes (Version 2018.1.1 and Later)
To improve performance of large-scale systems, the statistics reported by the system utilities have changed. In most cases this will not cause any compatibility issues; however, if your code explicitly examines the statistics output for specific data, you may have to update your code to adjust for these changes. The following minor changes are visible:
%Monitor.Process, MONLBL, PERFMON and similar performance monitoring tools are unaffected by this change and maintain their own counters.
New Compatibility Changes in Caché and Ensemble 2018.1.3
In rare cases, minor compatibility changes are introduced in a maintenance release. Caché 2018.1.3 contains the following compatibility changes:
System — Maximum Frame Depth Reduced on UNIX 32-bit systems
To fix a process termination when a <FRAMESTACK> error was encountered when handling a previous <FRAMESTACK> error, the change reduced the maximum frame depth for Unicode systems. This change is unlikely to cause problems unless your code created conditions that were very close to the previously allowed frame depth. This change only impacts UNIX 32-bit systems.
Language Bindings.ActiveX — Action Required to Fix Lock Problem
If your system has run into the ActiveX Lock problem described in Fix ActiveX locking issue in the Caché & Ensemble Maintenance Release Changes and if your system has these locks that have not been freed, you should execute the following kill command in all effected namespaces after installing this change:
kill ^ISC.oddMETA
Installation — Upgrading a Windows System Will Not Re-create USER Namespace if it was Deleted
In previous releases, if you upgraded a Windows system and the USER namespace had been deleted from the instance, the installation would create a new USER namespace. With this change, if the USER namespace has been deleted from the instance, the upgrade installation will not create a new USER namespace.
System — Support Longer Strings in Legacy %ZEN.Auxiliary.jsonProvider
In previous releases, the %ZEN.Auxiliary.jsonProvider would produce a <MAXSTRING> error if the JSON properties were larger than 32K or 3.8M (with long strings enabled). This change supports these longer strings. However, to fix this issue, the returned %ZEN.proxyobject may contain streams. Consequently, you should check the return object for streams before accessing it.
Ensemble Production — Custom Subclasses of EnsLib.HTTP.GenericMessage May Require Changes
EnsLib.HTTP.GenericMessage now explicitly defined XMLNAME parameter as well as XMLTYPE. Any custom sub classes of EnsLib.HTTP.GenericMessage need to account for XMLNAME paramter now being inherited and override as required.
Ensemble Production — New X12 Validation May Impact Previously Ignored Flags
The behavior for existing X12 validation flags in routers is unchanged. However, in the unlikely event that you have specified extra validation flags that were not previously valid, the behavior may change. If you specified a nonexistent validation flag, it would have been ignored, but if the flag now matches a new validation flag, the specified validation will be performed.
For a list of the new validation flags, see Validation in Routing X12 Documents in Productions.
Ensemble Production — Changes in Message Bank Storage for HTTP Messages
HTTP, REST and SOAP Generic Messages are now banked as XML Export projection and not as the unique case for Ens.StreamContainer. It is possible to resend Generic messages and Ens.StreamContainer messages from the Message Bank.
Ensemble Production — Ens.Utl.XML.SecuritySignature Changes
Ens.Util.XML.SecuritySignature no longer extends %XML.Security.Signature. Any use of Ens.Util.XML.SecuritySignature other than ValidateSAML() will need to be changed to use %XML.Security.Signature.
Ensemble Production — Developers Using Studio Need Additional Privilege
Developers using Studio may need to be granted execute privilege on stored procedures: Ens_Config.Production_Extent.
Ensemble Production — SOAP Outbound Adapter Changes
The EnsLib SOAP Outbound Adapter clears the HTTPHeaders of the %Client property after each Invoke, InvokeMethod or InvokeWithSOAPBody call. If not using SOAP Wizard generated classes that lead to %Client property being re-initialized before each SOAP call then it may be necessary to set again any http headers that were expected to be maintained in custom code.

Send us comments on this page
Copyright © 1997-2019 InterSystems Corporation, Cambridge, MA