InterSystems Documentation 
Caché and Ensemble Maintenance Kit Release Notes


This document provides a list of the changes between versions 2010.1.5 and 2010.1.6 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: Ensemble
Platforms: All
DevKey: MC1161
Summary: Fix bug where alarm requests are lost during production suspension

Description:

This change corrects an error where outstanding alarm requests are lost while suspending a production. Now alarms requests are saved and sent to the production when it resumes.

Category: Ensemble
Platforms: All
DevKey: TAP1076
Summary: Write only complete LOB chunks to stream global from SQL Adapter

Description:

This change causes the class EnsLib.SQL.GatewayResultSet used by the SQL Adapters to write only complete LOB chunks to the underlying stream global rather than storing each sub-chunk as it arrives over the xDBC channel. This prevents journaling of the partially completed chunk multiple times which reduces the total amount of journaled data to the minimum necessary.

Category: Ensemble
Platforms: All
DevKey: TAP1097
Summary: Increase top 1m to top 100m in Purge query

Description:

This change increases the TOP clause in the SQL used to purge messages from 1,000,000 to 100,000,000.

Category: Ensemble
Platforms: All
DevKey: TAP1100
Summary: Make SQL Adapters recognize JDBC network disconnect when prepareStatement() fails with no additional error info

Description:

When the JDBC Gateway's JVM is restarted while a Production is running and SQL Adapter activity is in progress, it can happen that the Adapter has an open connection instance that is no longer viable. In this case, when the Adapter attempts to prepare a statement, the prepareStatement() command to the JVM will fail. The adapter needs to interpret this as a disconnect event so that it will jettison its connection instance and establish a new one.

This change makes the Adapter detect the failure and interpret it as a disconnect event.


Category: Ensemble.ManagementPortal
Platforms: All
DevKey: HCR160
Summary: Fix links in the Ensemble message resend page

Description:

This change corrects hypertext link errors in the Ensemble Portal message resend page.

Category: Installation.Ensemble
Platforms: OpenVMS
DevKey: HCR161
Summary: Avoid some kinds of errors when copying the Ensemble portal files during upgrade on OpenVMS

Description:

This change corrects a problem with Ensemble upgrades on OpenVMS, where the upgrade fails because it can't copy CSP pages due to OpenVMS version file name handling.

Category: Networking
Platforms: UNIX
DevKey: GK871
Summary: TCP send error handling

Description:

This corrects a very rare condition on UNIX platforms. If a job is doing a TCP write/send and, at the same time, the connection is in the process of being dropped and another process is poking the job doing the I/O, Caché may not detect the connection failure and wait forever for the write completion.

Category: Networking.ECP
Platforms: All
DevKey: GK903
Summary: Long string set may raise a network error during the server failover or restart

Description:

In rare circumstances, when two jobs are attempting to set a long string value, and the second of them attempts to send this valuye, and the network fails during the send, the set will be rejected and maynalso raise a network error. This is now corrected.

Category: Networking.ECP
Platforms: All
DevKey: GK883
Summary: Unexpected routine or class load error across ECP

Description:

The system class load/save may fail on ECP systems with an unexpected error (i.e. <ROUTINELOAD> or <STORE>) when the routine object global cache is empty and it is referencing a large routine > 32656 chars.

This is now fixed.


Category: Object.CacheProvider
Platforms: All
DevKey: JCN1178
Summary: Initialize Hashtable once in static CachePoolManager class

Description:

This change corrects a threading problem in the CachePoolManager.pools (Hashtable) value which was being initialized twice in the static class. Under some circumstances attempts to start jobs could result in a InterSystems.Data.CacheClient.CacheException being reported.

Category: Object.CacheProvider
Platforms: All
DevKey: JCN1181
Summary: Fix threading issue with RecycleInUseConnections and improve performance

Description:

The change to Caché to use DotNet 4.0 and Visual Studio 2010 uncovered threading issues with Connection Pooling not seen before. This change fixes a hang condition that can occur when RecycleInUseConnections is called at a time-critical point. The problem can only be seen in release versions on fast machines.

Category: Object.Gateway
Platforms: All
DevKey: TAP1114
Summary: Force %Net.Gateway Closed flag =1 if error connecting or disconnecting

Description:

The Remote Gateway has a Closed flag that indicates whether its TCP connection to the JVM is open or not. This change ensures that, in disconnecting or failing to connect the Gateway when the connection is unexpectedly lost, the Closed flag is correctly updated.

Category: Object.Library
Platforms: All
DevKey: DLP2657
Summary: Object Library - add SELECTMODE parameter to %Library.Query

Description:

The SELECTMODE parameter can now be specified for class queries of type %Library.Query. For these queries, SELECTMODE is declarative and it is the responsibility of the query author to properly format the column values according to the SELECTMODE parameter setting. If that setting is RUNTIME then the current runtime SELECTMODE can be retrieved from $system.SQL.GetSelectMode().

The default value for SELECTMODE for queries of type %Library.Query is LOGICAL. If existing queries are having problems with client software and data formats then the existing query might have to be updated to specify a different SELECTMODE value so that the values as formatted by the query are properly recognized.


Category: Security
Platforms: All
DevKey: STC1849
Summary: Fix <ACCVIO> in $SYSTEM.Encryption.Base64Decode()

Description:

This fixes a problem in $SYSTEM.Encryption.Base64Decode where the process could abort if the string being decoded was at the edge of an internal memory boundary.

Category: Security
Platforms: All
DevKey: STC1862
Summary: Use NEW $NAMESPACE in %Library.Routine

Description:

This correction fixes a problem where an attempt to import a routine using %RI into an implied namespace would get a <NOROUTINE> error.

Category: SQL.GateWay
Platforms: All
DevKey: MIT1027
Summary: Avoid <SUBSCRIPT> error in JDBC Gateway if it was restarted

Description:

This change avoids a situation where an attempt to restart the JDBC Gateway could result in a <SUBSCRIPT> being generated.

Category: Studio
Platforms: All
DevKey: RAW871
Summary: Studio editor: crash deleting contracted block

Description:

This changes prevents a situation where deleting a text block may cause Studio to crash if that block had previously been shortened by editing.

Category: System
Platforms: All
DevKey: CDS1756
Summary: Fix <SYSTEM> error caused by low memory during symbol table expansion

Description:

Under certain conditions when available partition memory is low, Caché could erroneously generate a <SYSTEM> error. This is now fixed.

Category: System
Platforms: All
DevKey: CDS1758
Summary: <WIDE CHAR> or invalid name with <SUBSCRIPT> or <UNDEFINED> error

Description:

This corrects a situation where, when using private variables within a procedure, Caché could report a <SUBSCRIPT> or <UNDEFINED> error with an incorrect variable name in the error text.

Category: System
Platforms: All
DevKey: GK882
Summary: Improved resource utilization during routine and class component loading

Description:

This change improves loading routines and object components by using batch mode which improves use of routine cache and buffers.

Category: System
Platforms: All
DevKey: GK906
Summary: Added routine target cache protection

Description:

In rare conditions, a routine target cache was getting freeed while it was being constructed. This caused the cache manager to write onto random memory. The problem is now fixed.

Category: System
Platforms: Windows 64
DevKey: JLC1441
Summary: Fix handling of surrogate pairs in modal translations

Description:

This change fixes a problem that could cause an access violation on Windows 64 if a program tried to submit a string with surrogate pairs for output translation using a table that does not support this feature (for example, using the JIS translate table instead of JIS2004).

This problem affected all platforms but did not cause access violations on all of them.


Category: System
Platforms: All
DevKey: JLC1447
Summary: Read full $zobjioexport header in objiogetnextbuf()

Description:

This change fixes a problem in $zobjexport() that, in rare circumstances, could cause a packet to be ignored, for example, when editing in Studio a routine longer than 32K bytes.

Category: System
Platforms: All
DevKey: JLC1450
Summary: Fix access violation in $ZOBJEXPORT(12)

Description:

This change corrects a problem in $ZOBJEXPORT(12) that, under rare circumstances, could cause an access violation.

Category: System
Platforms: All
DevKey: SAP1370
Summary: A null priority argument on JOB command is taken for priority=0

Description:

This change corrects the situation where a null value used as the argument on a JOB command would be treated as a value of zero.

Category: System
Platforms: All
DevKey: SAP1375
Summary: Fix to clean daemon for freeing gfowner

Description:

Clean daemon fails to free gfowner resource.

Category: System
Platforms: All
DevKey: SML1219
Summary: Set gvec->grefns and gvec->gdirpnt to null structure if gnsgloget() failed to get SLM cache memory

Description:

This change fixed a possible access violation when a job is short of memory. When Caché allocates the SLM (Subscript-Level Mapping) cache and the memory used for this is exhausted, Caché reported a <RESTORE> error. Later this job could get an access violation.

Category: System
Platforms: All
DevKey: SML1247
Summary: Avoid access violation for clean daemon

Description:

This change avoids the situation where the clean daemon could get an access violation while cleaning dead jobs. The result of this situation was that the resources of the dead jobs would be lost until the next restart.

Category: System
Platforms: All
DevKey: SML1280
Summary: Fix access violation when merge two local array

Description:

In rare cases, MERGE of local variables to the same local array could crash Caché because of improper memory handling.

Category: System.Callin/Callout
Platforms: All
DevKey: CDS1603
Summary: Fix error after callin to TROLLBACK

Description:

When a TROLLBACK callin is done as part of an extrinsic parameter argument list, as in
Set Result = $$SomeFunction(Arg1, Arg2, $ZF(-3, dll, ABC))
where the callout to ABC does a callin to TROLLBACK, various unexpected errors can occur. This situation is now fixed.

Category: System.I/O
Platforms: UNIX
DevKey: HYY1588
Summary: Data corruption resulting from stream compression to files on UNIX platforms

Description:

This change corrects a data corruption issue resulting from writing to a file with compression enabled (/GZIP[=1]) on UNIX platforms. A necessary condition for the problem to occur is that the file is opened in stream mode explicitly or implicitly.

Category: System.Journaling
Platforms: Windows, OpenVMS
DevKey: HYY1596
Summary: Ensure journal files expand by only 64KB chunks

Description:

This change addresses an issue on Windows and OpenVMS that could cause the current journal file to expand by a fraction of 64KB (a partial journal block) in the event of disk space shortage. This could cause the journal daemon to freeze when the system is set to freeze on errors.

Category: System.Shadowing
Platforms: All
DevKey: HYY1597
Summary: Directory info possibly missing from shadow copies of journal files

Description:

On a Caché system set as the source of shadowing where the total length of the mounted database paths is near or over 16KB, the shadow copy of a source journal file would miss the path of any source database that is mounted after the shadow copy is created.

The issue is unlikely to cause a shadow to generate run-time errors because it ignores unmounted source databases when processing a journal file. This change avoids potential problems caused by the shadow copy not including complete information; for example, recovering a source journal file from the shadow copy.


Category: System.Shutdown
Platforms: All
DevKey: SAP1362
Summary: Force not running after shutdown if process does not quit

Description:

In system shutdown (cstop), if any process is "jammed", so that it does not shutdown normally, cforce is supposed to be called to clean up the process. This was not happening, so that the process that was "jammed" is left behind after a shutdown. If the process were one of the write or journal daemons, restart will fail. Even if it were a normal process, shared memory would not be released, so that there may not sufficient shared memory to restart at the desired level later.

This situation is now fixed.


Category: Utilities.Configuration
Platforms: All
DevKey: STC1864
Summary: Save memlock parameter correctly

Description:

When modifying the LockSharedMemory or LockTextSegment parameters in the Caché Management Portal and setting the value to True, the values written to the memlock parameter in the CPF file were incorrect. This could cause the memory to not be locked upon a subsequent restart of the system. This has been corrected.

© 2011, InterSystems Corporation. All rights reserved.