Caché Release Notes and Upgrade Checklist Archive
Caché 5.2 Upgrade Checklist
[Back] [Next]
Go to:

The purpose of this section is to highlight those features of Caché 5.2 that, because of their difference in this version, affect the administration, operation, or development activities of existing 5.1 systems.
Those customers upgrading their applications from releases earlier than 5.1 are strongly urged to read the upgrade checklist for Caché 5.1 first. This document addresses only the differences between 5.1 and 5.2.

Upgrading from Field Test Versions
Customers running on any prior released version of Caché may upgrade to this version of Caché during installation.
InterSystems does not support an upgrade from any of the versions used for field test of this release. This includes any versions of Caché distributed to customers at DevCon or other events.
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 5.2. The items listed here are brief descriptions. In most cases, more complete descriptions are available elsewhere in the documentation.
System Management Portal Changes
In Caché 5.2, InterSystems has modified and improved the initial version of the System Management Portal available with Caché 5.1. A summary of the more important changes follows.
Control Of Encryption
The [Home] > [Database Encryption] page is now the central location for managing encryption of databases and journal files. If the administrator chooses to encrypt a database, there is an additional prompt asking whether to encrypt the journal files as well.
Encrypted databases may now automatically be mounted at startup provided that access to the keyfile data is available.
Secure Communication Using SSL & TLS
Caché 5.2 allows secure communications using the Secure Sockets Layer (SSL) and Transport-Level Security (TLS). The available configurations for these protocols can be accessed via the SSL./TLS Configurations choice on the [Home] > [Security Management] page. Administrators also have the options of creating their own configurations.
Database Directory Management
The Local Databases and Remote Databases choices on [Home] > [Configuration] page now allow the administrator to identify the location of a directory containing a Caché database. The database directory is now a link that allows the user to bring up a Directory Browse window to be used in locating the new location.
Once the administrator selects a directory and confirms the choice, The portal will check to see if the new directory actually contains a CACHE.DAT file. If CACHE.DAT does exists, then the database edit page will be refreshed with the new location along with property values loaded from this new directory. Once the administrator hits the Save button, the database information will be saved to the configuration file.
Editing Globals
The [Home] > [Globals] > [Edit Global Data] page now allows the administrator or operator to edit and delete global data values.
Language Project Settings
The Java, C++ and EJB Projection settings in the [Home] > [Configuration] > [Advanced Settings] page have all been removed. Application developers should use Studio to manipulate these settings.
Granting Roles
The [Home] > [Security Management] > [Roles] > [Edit Role] page now allows roles to be granted to users. It has been extended to allow granting of the current role to other roles, and granting other roles to the current role.
CSP Session Data Moved
The data about the current CSP session, %cspSession, in Caché 5.2 is mapped to CacheTemp. In previous releases, it was mapped to CACHESYS. The new mapping has two main effects:
First, CSP session data is no longer journaled. Depending on system usage, this may bring a noticeable reduction in the size of the journal.
Second, because it is located in CacheTemp, the CSP session data no longer survives a system interruption and the session cannot be resumed after a system restart. It also means that the OnSessionEnd event will not be fired in the event of a system interruption, and therefore temporary data may not be properly disposed after restart.
The previous behavior can be restored by setting the configuration parameter, JournalcspSessions, in [Home] > [Configuration] > [Advanced Settings] to 1.
Any existing %cspSession globals will be removed during an upgrade to Caché 5.2.
Platform-Specific Items
This appendix holds items of interest to users of specific platforms.
Feature: TSQL
Support for TSQL is available only on the following platforms at the time of the release of Caché 5.2:
Please contact the InterSystems Worldwide Response Center (WRC) if this is an issue for your site.
Windows Clusters
InterSystems recommendations for setting up Windows cluster configurations have evolved over the past several versions. Please check your configuration against the current recommended settings.
SSL/TLS Support On 32–Bit HPUX 11
The Secure Sockets Layer (SSL) and Transport-Level Security (TLS) features of Caché 5.2 are not available on this version of HPUX.
SUSE Linux
SSL/TLS Support On Itanium
There is a known issue with the openssl-devel package supplied by InterSystems. Users should remove the InterSystems-supplied package and install the version that comes with the operating system instead.
This section contains information of interest to those who have designed, developed and maintained applications running on prior versions of Caché, particularly those that have made the transition to Caché 5.2.
The items listed here are brief descriptions. In most cases, more complete descriptions are available elsewhere in the documentation.
System Management Portal
There have been a number of changes and improvements to the system management portal since 5.1 was released. These are detailed in the administrator section.
IEEE 8-byte Floating Point Support
As noted in the Release Notes, this version of Caché now supports operations on floating-point data in the IEEE-754 format. The Objectscript function that does this conversion is $DOUBLE; the Caché datatype class for it is %Library.Double.
In addition, the SQL SystemDataType mapping has been changed. In previous releases, the SQL datatypes DOUBLE and DOUBLE PRECISION were mapped to %Library.Float (and implemented as ObjectScript numbers). In this release, they are mapped to %Library.Double (and implemented using the $DOUBLE function).
The major difference between the two representations lies in the achievable numeric precision. Caché represents numbers to 18 decimal digits of precision. IEEE-754 uses a binary mantissa of 53 bits, resulting in a decimal precision of 15 decimal digits (actually about 15.3). There are two effects of this that developers must be aware of:
The range of values allowed for $DOUBLE in Caché 5.2 is:
Maximum: 1.79769e+308
Minimum (normalized): 2.22508e-308
Minimum (denormalized): 4.9e-324
Mixed Usage – $DOUBLE & Caché Decimal
Those who intend to introduce $DOUBLE into existing calculations must be aware that several factors may influence the accuracy of the resulting calculation:
Conversion Between Representations
The maximum value of a Caché decimal number is 9.223372036854775807e145. Conversion from DOUBLE to Caché decimal values will result in errors if the numbers involved are out of the Caché range.
Conversions from Caché decimal values to DOUBLE values always succeed.
Large Numeric Literals
The ObjectScript parser has been optimized to recognize large numeric literals beyond the range of Caché decimal values only when supplied as the argument to the $DOUBLE function. Thus,
set x = 1.0e200
results in a <MAXNUMBER> error while the following statement succeeds:
set x = $DOUBLE(1.0e200)
Testing For Equality
Since DOUBLE values employs a binary floating-point format, the conversion of a decimal number with a fractional part to DOUBLE may produce an inexact representation of the original number. Therefore, comparisons between two calculated DOUBLE values for equality may not produce the expected result.
A better approach is to test for the difference of two values being within some tolerance. For example, if A and B are two DOUBLE values, and EPSILON is the tolerance, the test should be written as
If a Caché version 5.2 server contains tables with columns mapped as DOUBLE, attempts to access those columns by clients running on earlier versions of Caché will fail. Such clients must also be running under Caché 5.2.
Because of improvements to the way OUTER JOINs are handled in this release, two instances of questionable syntax and semantics that previously had been allowed are now reported as errors:
System Management Portal
There have been a number of changes and improvements to the system management portal since 5.1 was released. These are detailed in the administrator section.