InterSystems Documentation 
Caché and Ensemble Maintenance Kit Release Notes Archive


Welcome and thank you for using InterSystems products.
The current maintenance kits are Caché and Ensemble 2010.1.2. This document is only part of the available maintenance kit documentation. The full set of documents is available in the docs subdirectory of the product installation directory. Release notes and related material are available as follows:

This document is a historical archive of changes since the original 2010.1 release, but prior to the current maintenance kit. Changes unique to the current maintenance kit are described in relnotes.htm.
This document includes the following sections:

General Announcements
InterSystems advises all users to recompile their application classes as part of the upgrade process so as to take advantage of all the performance improvements as well as other changes that may affect them in this release.
Anyone upgrading from a Caché release at or before 5.0 will need a new license key.

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 Web site.

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 documentation Web site.

Change Reports for the Previous Maintenance Kit (2010.1.1)

Category: CSP.Gateway
Platforms: All
DevKey: CMT808
Summary: Ensure proper termination of output stream

Description:

This change ensures that the terminating CRLF is discarded from the final output stream where response chunking is in operation between CSPnsd and mod_csp, but a chunked response is not expected by the client.

For cases where the client is not expecting a chunked response, the final closing CRLF (after the optional message trailers) will be discarded and not sent to the client.


Category: CSP.Gateway
Platforms: All
DevKey: CMT811
Summary: Resolve an access violation on session close

Description:

This change resolves an access violation that could occur if a connection reserved for a state-aware session closed unexpectedly.

Category: DeepSee
Platforms: All
DevKey: DPV3594
Summary: DEEPSEE: Correction for Excel Export

Description:

This change corrects an issue that prevented DeepSee from exporting data to Microsoft Excel spreadsheets.

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

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 NakErrorCode=ContentE.

Category: Languages.COS
Platforms: All
DevKey: CDS1671
Summary: Add support for NEW $NAMESPACE in %STACK

Description:

When the execution stack is shown for a program that has NEW $NAMESPACE, the NEW was shown as Unknown. This has been corrected.

Category: Languages.MVQuery
Platforms: All
DevKey: JPL1169
Summary: Fix CMQL routine that generates COS string source to handle trailing MV delimiters

Description:

This item corrects a situation where a terminating quote character was always being appended when building a query string, even if it was not needed. The quote is now added only if needed.

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

Description:

A problem has been corrected where a DELETE trigger could return SQLCODE = -29, field not found under the following circumstance:


Category: Networking.ECP
Platforms: All
DevKey: GK828
Summary: On background block read job Q-ing failure, remove the block from the read blk list

Description:

This correction fixes a situation where the ECP server could hang. The circumstance is that a block appears to be queued up to be read by another requestor when, in fact, there is no requestor and the read will never be completed.

Category: Object.Class Compiler
Platforms: All
DevKey: MAK2841
Summary: Rework %RoutineMgr algorithm to find related routines/classes

Description:

This change addresses two issues with Caché routine and class handling:

  1. If the class was created from a CSP compile, Caché did not detect that the routines generated were derived from the class created by the CSP compile; this prevented the class descriptor from automatically being regenerated when the class was saved in Studio.
  2. If a generated class routine was renamed, Studio would still think it was part of this class and so could attempt to lock the class when editing this routine even though it was not totally separate.

Category: Object.Class Compiler
Platforms: All
DevKey: MAK2844
Summary: Make sure to report an error if a calculated property is overridden in a persistent or serial class

Description:

You can not override a calculated property in a serial or a persistent class because it breaks assumptions about storage for this class. This attempt now results in an error message during compilation.

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

Description:

This change corrects a situation where an attempt to unlock object locks could result in some of them being removed from the lock table while still locking the object they refer to.

Category: Object.Storage
Platforms: All
DevKey: DLP2428
Summary: Object Storage - change the suspense structure for triggered stream delete

Description:

Streams are queued for deletion when their container object is deleted. The queue of streams to be deleted is maintained in a global. If the stream OID was long, a <SUBSCRIPT> error would be generated. This structure now uses a simple integer subscript to prevent <SUBSCRIPT> errors.

Category: Object.XML
Platforms: All
DevKey: JN857
Summary: %XML.TextReader fails to get very long CDATA value

Description:

This change corrects a situation where %XML.TextReader failed to read a very long CDATA value. This will also apply to any character, comment or CDATA value.

Category: Object.XML
Platforms: All
DevKey: JN861
Summary: Fix whitespace processing for %XML.TextReader

Description:

When using %XML.TextReader with the remove whitespace option (the default) leading and trailing whitespace is removed. However, in certain circumstances, whitespace which was interior to the string could also be removed. This has been corrected.

Category: SQL
Platforms: All
DevKey: DPV3568
Summary: SQL: correct string search handling

Description:

This corrects an error that could occur when searching a string for a matching substring and using default boundaries as limits for the search.

Category: SQL.ODBC
Platforms: All
DevKey: AND1119
Summary: ODBC: Fix <STORE> error in static cursors

Description:

This change rectifies a defect where mismanagement of static cursors could result in a <STORE> error.

Category: SQL.Statement
Platforms: All
DevKey: DLP2441
Summary: Dynamic SQL - fix public variable leak in old %ResultSet.SQL class

Description:

A bug in %ResultSet.SQL processing caused random failures when a SELECT statement invoked a computed column that also used %ResultSet.SQL for its calculation. The defect caused the value of a public variable, %objqacn, to be inadvertently updated by nested statements. The error is now fixed.

Category: Studio
Platforms: All
DevKey: DVU2694
Summary: Fix crash in attempt to FIND when no documents open

Description:

This corrects an error where, if the user kept the Find dialog open but closed all document windows, clicking "Find" would cause Studio to fail.

Category: Studio
Platforms: All
DevKey: RAW839
Summary: Studio editor: error underlining in 64-bit is slow

Description:

Due to a change in the Windows SDK for Vista and Windows 7 64-bit, the GetPixel and SetPixel functions makes response very slow when a user is entering code that temporarily has a lot of errors. This change mitigates that problem.

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

Description:

If a TRY/CATCH catches an error in a subroutine or method that is called as an argument for another subroutine or method, there would be a <SYSTEM> error when the subroutine with the CATCH quit. This change corrects that error.

Category: System
Platforms: All
DevKey: JO2310
Summary: Fix problem where clearing wdstop could cause jobs to be left stopped

Description:

A rare problem on Windows systems has been fixed. The circumstances are that the control process resumes a system that had been suspended due to lack of write daemon activity (such as occurs during a long backup), but never wakes up a small number of the jobs that were waiting.

Category: System
Platforms: All
DevKey: RJW1762
Summary: $zu(163) doesn't help resolve existing <STORE> error

Description:

A problem existed where calling $zu(163) to increase the symbol table size following a <STORE> error did not increase the memory ($Storage) available to the process. The problem occurred because a table of internal pointers to available memory segments was exhausted.

The problem is mitigated by reserving one element of the table to insure that $zu(163) is able to increase memory available to the process following a <STORE> error.

NOTE: One caveat is that this will work only one time for the process because only one memory segment pointer is reserved. Calling $zu(163) a second time following a <STORE> error will have no effect because the one reserved memory block pointer will have already been used.

Category: System
Platforms: All
DevKey: SAP1282
Summary: Use /tmp on cache.ids shared memory object to insure invisible to other nodes

Description:

In cases where CacheIDS<device #>.<inode #> has same value on both nodes using a shared disk, confusion can arise and a false status indicating a crash can be sent to the other node. This is now fixed.

Category: System
Platforms: All
DevKey: SJ2603
Summary: Fix INTEGRIT to detect degradation where lower block doesn't have a right link, but pointer block does

Description:

This change fixes a problem where INTEGRIT did not detect the case where a lower block did not have a right link, even though the upper pointer blocks showed that more data followed. A new error (36) will be reported by INTEGRIT in this case.

Category: System.Cluster Specific
Platforms: OpenVMS
DevKey: JO2314
Summary: Corrections for recovery of cluster mounted encrypted databases

Description:

A problem affecting OpenVMS Clusters and cluster mounted encrypted databases has been resolved which would have resulted in database degradation if blocks from an encrypted database were recovered from the pij during cluster failover or during cluster recovery at startup.

This change is compatible with the existing cluster code so that a running cluster can be upgraded one node at a time without shutting down the entire cluster. However, it is crucial that encrypted databases must not not be cluster mounted until ALL of clustered instances (for that Caché cluster) have been updated to this version.

CAUTION: A mistake in upgrading the cluster may damage cluster-mounted encrypted databases during the next cluster failover/recovery.

Category: System.Journaling
Platforms: All
DevKey: HYY1533
Summary: Treat header-only journal.log as normal

Description:

This change addresses an issue where journaling would fail to start during Caché startup if the journal.log (journal history log file) contained only a log header, that is, without any journal file entries. In this case, the only message on cconsole.log would be, "Journaling NOT started."

Category: System.Journaling
Platforms: All
DevKey: HYY1544
Summary: Cluster journal restore

Description:

This change corrects an error that could occur during a journal restore of an ECP cluster. Under some circumstances, the last journal records in the restore would not be posted to the database because of an error in waiting for all the records to be written to disk.

Category: System.Licensing
Platforms: All
DevKey: RJW1810
Summary: Fix weblink license acquisition

Description:

A change to the way licenses were reported in 2010.1.0 by $System.License.Login() interfered with license acquisition by Weblink. This is now corrected.

Category: System.Shadowing
Platforms: All
DevKey: HYY1517
Summary: Prevent cluster shadow with filter from applying an update twice

Description:

This corrects an issue that caused cluster shadows with a filter to apply an update twice in a row. This unnecessarily inflated the journal files on the shadow side and degraded shadowing performance. It did not affect data integrity, however, as the duplicate followed the original record immediately.

Category: System.Shadowing
Platforms: All
DevKey: HYY1532
Summary: Address a case of shadow corruption/hanging when journaling is restarted on the source side

Description:

This corrects a defect that could cause a shadow to create a corrupted copy of source journal file and hang in certain circumstances involving stopping and starting journaling on the source side.

Category: Utilities
Platforms: All
DevKey: SML1197
Summary: Fix %SYS.Namespaces.GetGlobalDest() with single level subscript

Description:

A previous change caused %SYS.Namespaces.GetGlobalDest() to fail if a single-level subscript was used as the third argument, and it was not enclosed in quotes. This change restores the previous capability.

Category: Utilities.Configuration
Platforms: All
DevKey: SML1189
Summary: Fix mapping when beginning point overlapped with an end point

Description:

This change fixes a mapping error with %-global and an overlap between two range such as:
%Z:%ZeUTT -> DBA
%ZeUTT -> DBB
%ZeUTTX:%a ->DBA
The mapping of %ZeUTT global would be mapped to %SYS instead of DBB.

Category: Utilities.Configuration
Platforms: All
DevKey: STC1744
Summary: Handle change password better for Delegated authentication

Description:

The ZAUTHENTICATE routine has been updated with information regarding how to change passwords when using Delegated Authentication. A new entry point has been added to the ZAUTHENTICATE routine which handles changing passwords. See the updated ZAUTHENTICATE routine in the SAMPLES namespace for this information.

Category: Utilities.Configuration
Platforms: All
DevKey: STC1755
Summary: Changing CPF parameter locksiz should not require a restart

Description:

The "locksiz" entry in the CPF file contains the size (in bytes) of memory allocated for locks. The startup activity rounds up the value to the next multiple of 64 kilobytes. The default is 1,179,648 bytes. On the HP platform, the default is four times the usual default or 4,718,592 bytes.

The range is 65536 bytes up to the gmheap size. If a system needs more room for the lock table, increase the gmheap parameter as well.

The change takes effect immediately without the need for a restart.


Category: Utilities.Configuration
Platforms: All
DevKey: STC1759
Summary: Entering a null password using LDAP will no longer authenticate the user

Description:

When using LDAP for user authentication, if a user entered a username, with a null password, they would always be authenticated and allowed into the system. This is because the operating system LDAP libraries treat this as an "anonymous" bind, and uses the LDAP simple_bind_s function to succeed with a null password.

With this change, Caché tests to see if a null password has been entered, and reject the attempt.

This is a problem only on the following client to server connections:

It is not a problem on a Windows client to a Windows Active Directory LDAP server connection.


Category: Zen
Platforms: All
DevKey: SAM072
Summary: Correct keyboard event trapping under Internet Explorer

Description:

Other changes in Caché modified the way events are routed to the zenPageEventHandler, specifically by defining window level on{event} functions. This means that, under Internet Explorer, keyboard events do not propagate up to the window level; any unhandled events that make it past the <body> level of the DOM are discarded from a JScript perspective.

The result is that the default keyboard handler that would be routing keystrokes to individual onkeydownHandler() methods is, itself, never seeing the keyboard events. This is does not happen when using FireFox, but the W3C specification about what is to be done is ambiguous in this area.

This fix modifies the initialization code for Zen Windows to detect the case where Internet Explorer is in use and installs the keyboard event trap at the level of window.document.body so that it is within the chain of handling the raw events.


Category: Zen.ZenReports
Platforms: All
DevKey: JSL2925
Summary: Fix problems with ZEN Reports displaying international characters on both UNICODE and 8-bit systems

Description:

This changes corrects the problem of improperly displayed characters by always using National Language support for character display.


© 2010, InterSystems Corporation. All rights reserved.