Caché Release Notes and Upgrade Checklist Archive
New and Enhanced Features for Caché 2008.2
[Back] [Next]
Go to:

This version of Caché has been improved and enhanced in the following areas:

In addition, many more localized improvements and corrections are also included.
Performance and Scalability
Object Performance Improvements
In order to improve performance and reduce contention for method dispatch and property access, Caché now caches the locations of these items upon first reference. Subsequent requests for an item first examine the cache and, if found, avoid the effort involved in locating the requested item. This improves the speed of invocation and access to class members. It also eliminates contention on key class metadata when thousands of processes are running.
Language Performance Improvements
The routine compiler has been enhanced. The tokens marking the beginning of line have been removed and the bookkeeping of statements in the routines has been improved.
The net result of these changes is that compiled object code should be slightly smaller and faster. There is no longer any timing effects for the use of comments in block structures.
This is a significant change to the ObjectScript compiler and therefore increments the compiler minor version number. Code compiled on earlier versions of Caché will run on this version, but the reverse is not true. Code compiled on this version of Caché will NOT execute on earlier versions.
Support For Binary SOAP
This version of Caché enhances the SOAP facilities to allow the binary transmission of SOAP messages between Caché instances. The Web service will then support normal XML-based SOAP or Caché proprietary SOAP format over HTTP. The WSDL produced for a Cache Web service using the binary extension has been enhanced to carry the necessary information for the Cache Web client. This is also a performance improvement since the transmitted data is in a more compact form.
Routine Buffer Management Improvements
In prior versions of Caché, all routine buffers were the same size, configured to hold the largest routine to be executed. This release of Caché implements multiple routine buffer sizes, providing separate pools of 4KB, 16KB and 64KB buffers. In most systems, the size of compiled routines span a range; allocating several buffer pools of differing sizes provides better matching of buffers to routines sizes. This, in turn, provides more efficient use of memory, and allows the administrator to better optimize system resources.
Shadow Latency Improvements
Shadowing latency has been decreased in this version. Caché now pre-scans the journal file for database updates and pre-fetches the data to be applied to the database.
Rapid Application Development
Studio Enhancements
Studio now has an option "Track variables" which switches on a limited form of variable tracking that allows it to identify variables which are used when they don't have a value. This is called READ-UNDEFINED.
Studio Assist
The following improvements have been made to Studio Assist as aids in program development:
Zen Enhancements
In this version Zen has been enhanced. There are new menu formats and desktop components:
Text Search Enhancements
Text Search in Long Streams
Previous versions of Caché provided the ability to search text represented as streams. However, searching streams longer than 32 KB required that long-string support be enabled. In this version of Caché that restriction has largely been lifted except for usage of %CONTAINS and %SIMILARITY.
Query Optimizations For Text Searches
The SQL optimizer has been improved for searches involving text queries. It now takes account of the fact that text strings are made of individual words that themselves can be indexed as collections.
Improved SQL Support for Streams
This version of Caché has improved the handling of streams as fields in SQL tables, namely:
Light C++ Binding
Caché has changed the semantics of the Light C++ Binding object references. In prior releases, each “open” of an object created a new reference to a copy of the instance. Now the semantics for “open” match the semantics of regular C++ binding object references; all references to the same object point to the same local storage.
This version also provides support for embedded objects and inheritance.
JIS2004 Support
This version extends Caché Unicode support to include characters known as surrogate pairs. These are pairs of 16-bit characters that, taken as a unit, represent more than a million Unicode characters outside the Basic Multilingual Plane (BMP). To allow applications to deal with the characters properly, this version of Caché also introduces specialized versions of the regular string functions that correctly handle surrogate pairs.
Subroutine-level Profiler
Caché now permits profiling at the level of individual subroutines, procedures, and functions. This feature allows the user to easily see the “busiest” routines, and then drill down to the subroutine line level to analyze and improve performance of any “hot spots.” The facility extends the existing ^%SYS.MONLBL profiler (and coverage analysis).
A number of improvements to numeric computation have been made in this version of Caché. These include:
Updates To Third-party Software
This version of Caché contains updates to third-party software packages. The following are the version changes from 2008.1 to 2008.2 for all platforms except for OpenVMS:
Package Version in 2008.1 Version in 2008.2
ICU 3.2 3.6
Xerces 2.6 2.7
Xalan 1.9 1.10+ (contains fixes not in the Apache release 1.10)
For OpenVMS, there are no version changes for these packages in 2008.2. The versions remain as: ICU 3.2, Xerces 2.1, and Xalan 1.5.
Reliability, Availability, Maintainability
CSP Enhancements
This version of Caché has several important, new features for CSP and the CSP Gateway:
Improved National Language Support
The administration of NLS has been extensively reworked in this version of Caché. A new page has been added to the Management Portal to provide a convenient means of administration, and the %SYS.NLS.Table, %SYS.NLS.Format, %SYS.NLS.Locale and %SYS.NLS.Device classes now contains the functionality of the previous NLS utilities. See the Windows installation documentation for an example. One can also use the line-oriented routine, ^NLS, from a terminal connection.
The Visual Basic-based NLS management application has been removed. The corresponding replacement page is now part of the Management Portal at [Home] > [Configuration] > [NLS Settings].
Improved UNIX® Installation
The cinstall installer for UNIX® has been updated. It is now possible to embed a Caché UNIX® installation within a partner product and to provide the responses needed by the Caché sub-installation in a script file. This allows a seamless installation of Caché as part of a containing product.
Per Socket Keep Alive
This version of Caché refines the TCP keep-alive timeout for Windows and Linux down to individual processes (rather than relying on the machine-wide setting). This makes it possible to detect lost connections due to network failures, VPN trouble, and so on in a more reliable fashion.
Improved Protection Against Starting Multiple Copies of Caché
Under some circumstances, Caché database locking proved insufficient to prevent multiple instances of Caché from being started against the same databases. This version has added safeguards on UNIX® systems against that happening.
New Archive Interface Classes
This version of Caché now contains a package, %Archive, that permits connection to an external service for long-term document retention. The package contains classes that allow for the definition of content, %Archive.Content, as well as the management of the initiation of the data transfer, %Archive.Session.
In this first release, the archive interface has been tested for use with the EMC Centera™ servers.
Superserver Can Accept SSL Connections
The Caché superserver has been enhanced to allow communications using either the Secure Sockets Layer (SSL, version 3) or Transport Layer Security (TLS, version 1). Ports can be configured to require the use of SSL or TLS by requesting clients.
The clients that have been upgraded to use this communications capability are:
See the notes in the Upgrade Checklist for further details.
Telnet Over SSL for Windows
Caché will now accept Telnet connections if the superserver is configured to use SSL and the %TELNET/SSL configuration has been defined. This is done via the Management Portal.
SQL Column-level Security
Caché now permits access control to be applied to SQL table columns. The privileges control the ability of a user to select, insert, and update column values. This allows one to limit access by designated users to only specified columns in a table. See the SQL verbs GRANT, REVOKE, INSERT, UPDATE, and other related verbs for an explanation.
WS-Security 1.1
Caché now gives applications the ability to use WS-Security 1.1 to protect web services messages. This capability permits the canonicalization of XML, and the generation and verification of digital signatures for message content according to the X.509 standard (X.509 addresses public key and privilege management infrastructure).
WS-Security is unrelated to HTTP basic access authentication which Caché already supports in this area. The WS-Security support is for UsernameToken Profile with clear text password, as described in the following document:
Online at the Organization for the Advancement of Structured Information Standards (OASIS) site:
InterSystems recommends that you use SSL with this profile because the password is transmitted in clear text. Support for SSL is documented in the Using SSL/TLS with Caché chapter of the Caché Security Administration Guide. InterSystems also recommends using a SOAP/XML gateway for security purposes; for further details, see Securing Caché Web Services.