Caché Release Note and Upgrade Checklist Archive
Caché 5.2
[Home] [Back] [Next]
InterSystems: The power behind what matters   
Class Reference   

This chapter provides the following information for Caché 5.2:

New and Enhanced Features for Caché 5.2
The following features have been added to Caché for the 5.2 release:
Using our traditional object bindings, each client class has, in addition to its developer-defined properties and methods, a set of Caché supplied methods related to object persistence, e.g. Save() and OpenId(). With Jalapeño this paradigm is changed slightly by separating the persistence behavior into a separate "controller" class that can be used with any Java object.
Caché Managed Provider for .NET
The Caché Managed Provider for .NET supplies high performance relational and object database capabilities through a single client — something that no one else delivers for .NET. This release also provides a Visual Studio .NET plug-in that automatically generates .NET assemblies from Caché class definitions.
IEEE 8-byte Floating Point Support
Support has been added for IEEE 8-byte floating point (a.k.a. "double") values, making Caché more attractive for calculation-intensive applications.
This enhancement includes:
Direct FileMan Dictionary Converter
The Direct FileMan Dictionary Converter enables Caché table definitions to be automatically created from FileMan file definitions. (Previously, the conversion was a two-step process, from Fileman to F DBMS and then to Caché.)
A more detailed description is contained in the section on Converting FileMan Files into Caché Classes in Caché Specialized System Tools and Utilities .
Code Completion in Studio
Code completion simplifies editing in Studio by enabling developers to pick from a list of context-sensitive choices when entering code. For instance, Studio will assist in specifying a class name when "##CLASS(…)" syntax is used or in specifying a property or method name when the type of a variable is known.
Process-Private Globals
Support has been added for process-private globals. Like local variables, they are accessible only by the process that creates them and are automatically deleted when that process halts. However, like globals they are essentially unlimited in size.
Caché Journal File Encryption
Support has been added for encryption and decryption of Caché journal files.
Version Checking (and Optimistic Concurrency)
At the object level, this feature adds automatic support for version checking. If turned on (via a class parameter) it increments the value of a version number property whenever an object is saved. You can use this set of features to implement optimistic concurrency.
Dynamic Dispatch
Dynamic dispatch enables a Caché class to respond to references to properties and methods that are not part of the class definition at compile time.
Free Text Search
Support has been added for indexing and searching textual data, specifically:
ODBC Multiple Result Sets
Support has been added to Caché ODBC for stored procedures that return multiple result sets.
WMI Support
Support has been added for Windows Management Instrumentation (WMI), the Microsoft implementation of Web-Based Enterprise Management. This enables Caché to be monitored by a variety of Windows management tools, including Microsoft Management Console.
Enhanced Debugging Capabilities
Caché debugging capabilities have been enhanced in a number of areas:
T-SQL Support
A number of capabilities have been added to simplify migration from SYBASE or SQL Server to Caché, including support for the T-SQL language in stored procedures. T-SQL is currently supported on 32 bit Windows, 32 bit Linux (RedHat and Suse distributions), 64 bit AIX®, and 64 bit Solaris.
Device Level SSL and TLS support
Device level support has been added for secure sockets layer communication using SSL 2, SSL 3, or TLS.
Enhanced ECP Performance
Improvements have been made to ECP and the ECP/jrnsync mechanism to enhance performance and scalability.
Enhanced Windows Cluster Resource Management
This enhancement enables Caché to be managed more easily in a Windows cluster.
Improved RPM Linux Installation
A new RPM install package has been created for Caché on Linux.
Caché 5.2 Upgrade Checklist
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.
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
For 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:
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.