Caché Release Notes and Upgrade Checklist Archive
New and Enhanced Features for Caché 2008.2
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.
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 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.
The following improvements have been made to Studio Assist
as aids in program development:
When the indicator sequence for macros is typed, $$$
, Studio now displays the list of commonly-used system macro names. User-defined macros are also added to this list. Previously, Studio had displayed all defined macros in the system.
When Studio Assist recognizes the beginning of a reference to a class parameter, (..#), it will allow a selection from among the currently defined parameters for the class.
Studio will now also provide a list of available local variables for name completion when appropriate. It will also specially color variables used only once in the bounds of a routine or method since these may be typographic errors.
In this version Zen has been enhanced. There are new menu formats and desktop components:
Zen now supports a drag-and-drop API.
Active groups may now be dynamically resized.
Zen provides a lazy
tree control that only loads the data for a sub-tree when it is expanded tree.
A new tab control has been added.
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:
It is now possible to open the stream returned via a simple function that returns of OID value of the stream. This is true for stream fields which are NULL as well, though attempting to read them will result in an immediate EOF.
The INSERT and UPDATE clauses now accept such an OID as the new value for a stream field in a table.
The SUBSTRING function now accepts a stream as its first argument.
The ODBC and JDBC gateways now provide this support as well.
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.
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.
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).
Improved support for $DOUBLE values.
Better handling of conversions between $DOUBLE values and Caché numbers and strings.
User control over conversion to Caché floating-point using the $DECIMAL function.
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:
||Version in 2008.1
||Version in 2008.2
||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
This version of Caché has several important, new features for CSP and the CSP Gateway:
It is now possible to enable HTTP authentication programmatically from within Caché.
This version supports the new native module interface to Microsoft Internet Information Services (IIS) version 7.
The CSP Gateway now supports connection pooling when using Apache.
CSP now supports communication using HTTP version 1.1
The CSP Gateway now supports transmission of messages greater than 32 KB in length via chunks.
Updating the CSP password via the System Management Portal now automatically updates the password value in the CSP.ini
In prior versions, requests longer than 32 KB were converted to streams. In this version, they are converted only if the length exceeds the maximum string length. That is, if long strings are enabled, the conversion to a stream will only happen if the request exceeds the maximum long string length.
Improved National Language Support
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
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.
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
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:
Shadowing (configured and enabled via a command-line utility)
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
, and other related verbs for an explanation.
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: