InterSystems Documentation 
Caché and Ensemble Maintenance Kit Release Notes


This document provides a list of the changes between versions 2009.1.3 and 2009.1.4 for Caché and Ensemble.
The release notes are available in the \Docs subdirectory of your installation.

Late-breaking information about this kit can be found in: \relnotes\readme.1st

Topics in this document include:


General Announcements
Upgrading From Prior Released Versions
Customers running on any prior released version of Caché may upgrade to this version of Caché during installation. When upgrading across multiple versions, intermediate upgrade steps may be necessary depending on the inter-release compatibility requirements. The release notes for the intervening releases will contain that information.

After each upgrade step, the following conditions apply:

Upgrading ECP Configurations
The following guidelines apply to the process of upgrading ECP configurations:
If your database or application servers hold local transaction information until the transactions are completed, or if you have questions or concerns about how to upgrade your ECP configuration, please contact InterSystems Worldwide Customer Support.

Restricted Rights Legend
Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013.
InterSystems Corporation
One Memorial Drive
Cambridge, MA 02142
When acquired by the Government, commercial computer software and related documentation bearing this legend are subject to the following:

  1. Title to and ownership of the software and documentation shall remain with the Contractor.
  2. Use of the software and documentation shall be limited to the facility for which it is acquired.
  3. The Government shall not provide or otherwise make available the software or documentation, or any portion thereof, in any form, to any third party without the prior written approval of the Contractor. Third parties do not include prime contractors, subcontractors and agents of the Government who have the Government's permission to use the licensed software and documentation at the facility, and who have agreed to use the licensed software and documentation only in accordance with these restrictions. This provision does not limit the right of the Government to use software, documentation, or information therein, which the Government has or may obtain without restrictions.
  4. The Government shall have the right to use the computer software and documentation with the computer for which it is acquired at any other facility to which that computer may be transferred; to use the computer software and documentation with a backup computer when the primary computer is inoperative; to copy computer programs for safekeeping (archives) or backup purposes; and to modify the software and documentation or combine it with other software. Provided that the unmodified portions shall remain subject to these restrictions.
END OF LEGEND

InterSystems News, Alerts and Advisories
From time to time, InterSystems publishes items of immediate importance to users of our software. These include alerts, mission critical issues, important updates, fixes, and release announcements.

The most current list can be obtained from the InterSystems Website.

Users should check this list periodically to obtain the latest information on issues that may have an effect on the operation of their site.


Online Documentation
As a convenience to our users, InterSystems provides online access to documentation for recent product versions at the InterSystems Website. From the home page, choose the Support & Education tab, then choose the Support menu item for the product you are interested in, for example, Caché Support. Links to the available documentation can be found on the support page for each product.

Description of a Change Report
To help you assess the impact of this maintenance kit on your applications, the remaining topics in this document describe each modification in detail.
If you need assistance evaluating the effect on your application(s), system(s), or related plans, please contact the InterSystems Worldwide Support Center:

  • Phone:  +1  617  621-0700
  • Fax:  +1  617  734-9391
  • Email:  support@intersystems.com


Category: CSP.Gateway
Platforms: UNIX
DevKey: CMT736
Summary: Ensure that the contents of the Gateway's shared memory block are not reset in the event that Apache re-reads its configuration

Description:

This change prevents the reset of the contents of the Gateway shared memory block in the case where an Apache web server re-reads its configuration file.

The reset only occurs on UNIX-based Apache installations.


Category: CSP.Gateway
Platforms: All
DevKey: CMT800
Summary: Fix a problem that could result in the Apache DSO module 'mod_csp' hanging and erroneously timing-out when processing response messages containing empty content

Description:

This change fixes a problem that could result in the Apache DSO module hanging and erroneously timing-out when processing response messages containing no content body.

Category: DeepSee
Platforms: All
DevKey: DPV3542
Summary: DeepSee: Multiple corrections

Description:

This change represents multiple corrections to DeepSee involving:

  • Changes in roles causing established filters and subject areas to be lost
  • Increases in the limitations on the number of globals that can be imported
  • Pivot table handling that prevented details from being properly printed
  • Premature session timeouts and subsequent logouts

and other miscellaneous fixes.


Category: DeepSee
Platforms: All
DevKey: DPV3564
Summary: DeepSee: Remove %BI.SOAP classes

Description:

This change removes the classes, %BI.SOAP, from the product as a fix to a security hole.

Category: Ensemble.Adapter
Platforms: All
DevKey: TAP917
Summary: Fix SQL adapter handling of JDBC return values from execProc() and execUpdate() and getUpdateCount()

Description:

This change corrects problems in the SQL Adapter JDBC support arising from failure to handle return values from the underlying JDBC method invocations other than 0 or -1. In fact, these methods return values indicating row counts and the presence of Stored Procedure output ResultSet data.

Category: Ensemble.Adapter
Platforms: All
DevKey: TAP950
Summary: Fix SQL Adapter to not drop the statement while iterating through stored procedure results

Description:

This change corrects behavior in the SQL Adapters that resulted in erroneous errors when checking for multiple stored procedure results. Previously, the adapter would drop the current statement handle prematurely.

Category: Ensemble.Adapter
Platforms: All
DevKey: TAP951
Summary: Fix SQL Adapter calling a stored procedure over JDBC when configured with a named management portal SQL Gateway Connection

Description:

The SQL Adapter supports JDBC configurations either by specifying a JDBC URL in the DSN config value, or by configuring the DSN value as the name of a "SQL Gateway Connection" configuration block configured in the System Management Portal.

When calling a Stored Procedure via an adapter whose DSN value is configured using a named configuration block, the SP would fail with <INVALID OREF> zgetProcColumnsJ+3^EnsLib.SQL.CommonJ.1. This change corrects that problem.


Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP965
Summary: Fix getReplyCode() handling in HL7

Description:

This change fixes an erroneous but syntactically legal construction in the getReplyCode() method of the class EnsLib.HL7.Service.Standard. This bug resulted in an <ILLEGAL VALUE> error when an HL7 service is configured with NackErrorCode=ContentE.

Category: Installation.UNIX
Platforms: UNIX
DevKey: SAP1259
Summary: Install sets wrong permissions on cconsole.log

Description:

This change corrects behavior by the upgrade installer that makes existing cconsole.log files rw-rw--- (no one but owner and cacheusr can access). The correct permission is rw-rw-r-- (everyone can read the file).

Category: Migration.TSQL
Platforms: All
DevKey: DPV3569
Summary: TSQL: Correction for statement level triggers

Description:

A problem has been corrected that occurred

  • when a row was deleted from a table with a statement level AFTER DELETE trigger with TSQL code, and
  • the trigger code deleted a row in other table which did not have a TSQL statement level AFTER DELETE trigger, but did have a TSQL statement level AFTER UPDATE trigger.
The error may have resulted in the DELETE in the trigger code returning an error, most likely SQLCODE=-29, field not found.

Category: Networking.ECP
Platforms: All
DevKey: GK801
Summary: Prevent ECP data loss during recovery

Description:

In a rare condition, ECP recovery dropped a series of client requests. It may happen if the server processed a partially received request buffer with many requests and the state synchronization between the app-server and the db-server was wrong.

This is now corrected.


Category: Object.CacheProvider
Platforms: All
DevKey: JCN1087
Summary: Fix connection pooling performance in multithreaded applications

Description:

Connection pooling was critically slowed down in multithreaded situations, due to excessive locking. The locking has been changed to improve performance.

Category: Object.LanguageBindings
Platforms: All
DevKey: JSL2908
Summary: Fix concurrency issue in Java binding due to lost locks

Description:

This change corrects an error in the Java binding. Under some circumstances, the binding code could release locks that it should have held.

Category: SQL.Query Processing
Platforms: All
DevKey: JLF272
Summary: Reorder final DISTINCT when the driving map is a collection map

Description:

The semantics of FOR SOME %ELEMENT have an implicit DISTINCT BY %ID for the corresponding stream. The parser inserted the implied DISTINCT, but the location of this code caused it to apply only when the master map was also accessed for some reason. The code has now been moved, ensuring that it will be executed in this case, and whenever a single-collection-map strategy is chosen for a stream by the optimizer.

Category: Studio
Platforms: All
DevKey: MC1055, MC1056
Summary: Change handling of class indexes

Description:

The Caché version 2008 server only supports version 1 of the class index cache which does not contain class timestamps in the class index. This means Caché is unable to detect a class has been changed on the server. This change forces a reload of the class definition once when an attempt is made to load a class definition. The change also causes Caché to properly handle locked classes.

Category: Studio
Platforms: All
DevKey: MC976
Summary: GetClassDefinition to check for index up-to-date first

Description:

GetClassDefinition now checks whether the class index is up-to-date before beginning processing of the class in Studio.

Category: Studio
Platforms: All
DevKey: SAP1269
Summary: Studio hangs accessing Stack variables in Watch window

Description:

On a Unicode system, clicking on Call Stack to get variables causes Studio to hang forever. This is now fixed.

Category: System
Platforms: All
DevKey: CDS1658
Summary: Fix <SYSTEM> error after CATCH of nested error

Description:

If a TRY/CATCH construct catches an error in a subroutine or method that is invoked as part of building the argument list for another subroutine or method, there would be a <SYSTEM> error when the subroutine with the CATCH quits. This has been corrected.

Category: System
Platforms: All
DevKey: CDS1651
Summary: Fix vulnerability when classes are closed during HALT

Description:

This change fixes a rare condition that could cause a memory access violation when a process halts after using many objects.

Category: System
Platforms: All
DevKey: JLC1346
Summary: Avoid <ACCVIO> during MERGE

Description:

This change corrects a problem that could cause a crash when executing a MERGE command in low memory conditions, especially on 64-bit Windows platforms.

Category: System
Platforms: 64-bit Windows
DevKey: JLC1349
Summary: Fix class compilation issue on 64-bit Windows

Description:

This change fixes a problem on 64-bit Windows that could cause a system crash when compiling a very large number of classes.

Category: System
Platforms: OpenVMS
DevKey: JO2302
Summary: Fix terminal disconnect handling on OpenVMS 8.3

Description:

This change corrects a problem that occurs on OpenVMS where an asynchronous terminal disconnect was not handled properly possibly resulting in a process termination.

Category: System
Platforms: All
DevKey: JO2308
Summary: Fix handling of GIFs via CSP interfaces

Description:

A bug has been resolved in loading a GIF file through a CSP interface, or code which emulates a CSP interface, which sometimes reported a <DATABASE> error. There was no underlying database error, the code improperly referenced a process-private global when a normal global shold have been accessed.

Category: System
Platforms: All
DevKey: RJW1762
Summary: Unable to resolve existing <STORE> error

Description:

This change fixes a problem where an attempt to enlarge the symbol table size following a <STORE> error failed to increase the memory available to the process because there was no location to hold the new memory. The change ensures that there is always at least one location available for this purpose whenever memory is expanded.

Category: System
Platforms: All
DevKey: SML1182
Summary: Fix reverse $ORDER() error on subscript-level mapped global

Description:

This change fixed a problem that reverse $ORDER on a subscript-level mapped global could return a wrong answer.

Category: System.Cluster Specific
Platforms: All
DevKey: JO2304
Summary: Correct write-image journal recovery during cluster failover

Description:

A problem has been resolved which could result in some databases not being restored from the write-image journal during cluster failover. This does not affect the restore during Caché startup, just during the recovery performed by the cluster master during failover.

Since the journal data is also restored during cluster failover this problem does not result in data loss. However, it can result in database degradation which could show up during the journal restore phase of cluster failover. It also could show up some time later such as when the degraded block(s) later referenced in circumstances involving block splitting.


Category: System.I/O
Platforms: All
DevKey: RJW1777
Summary: SSL connection hangs Caché with retained buffer

Description:

A problem has been corrected which could cause TCP communication with SSL to hang the system if the SSL connect or accept blocks while the process holds a global block, and the write daemon requires that block to continue.

Category: System.Journaling
Platforms: All
DevKey: HYY1507
Summary: Address issues of transaction rollback performed at the end of journal restore

Description:

In releases prior to 2009.1, if open or incomplete transactions were detected during a journal restore, the operator would be asked at the end of the journal restore whether to have the open transactions rolled back.

This behavior has been changed. Now, the operator is not given the rollback option. Transaction rollback is not performed, even if there are open transactions detected during the journal restore.


Category: Utilities
Platforms: All
DevKey: STC1720
Summary: Fix <UNDEFINED> error in ^INSTALL

Description:

This fixes an undefined error in ^INSTALL when upgrading from version 5.0. It would only occur if the first database defined in the CPF file (in alphabetical order) was either an ECP or DCP database.
Note: This does not interrupt the install. It will complete with the error message written to the cconsole.log. However, all user databases will not be labeled with their database resource, but will get the default %DB_%DEFAULT database resource instead.