InterSystems Documentation 
Caché and Ensemble Maintenance Kit Release Notes


This document provides a list of the changes between versions 2010.2.2 and 2010.2.3 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: All
DevKey: CMT892
Summary: Strengthen the validation of incoming multipart MIME payloads (particularly relevant to IIS v7 and later)

Description:

This build strengthens the validation of incoming multipart MIME payloads. It was recently discovered that malformed requests could precipitate an exception (memory access violation) in the function responsible for reading multipart content.

Category: CSP.Gateway
Platforms: 64-bit Linux
DevKey: CMT896
Summary: Resolve an issue that can result in the connection table not being initialized correctly if the '-O2' level of code optimization is used on 64-bit Linux systems

Description:

This change resolves an issue that could result in the connection table not being initialized correctly on 64-bit Linux systems. The symptom of this problem was spurious entries appearing in the Gateway connection table (as seen in the system status) together with connectivity problems to Caché.

Category: Ensemble
Platforms: All
DevKey: MC1166
Summary: StopProduction to call CleanUpDeadJobs after StopAll

Description:

Under some circumstances, when trying to stop all the jobs involved in a production, a job could fail to shutdown properly leaving Ensemble in an inconsistent state. This is now corrected.

Category: Ensemble
Platforms: All
DevKey: MC1167
Summary: Ens.Job:Start to check if Production is running

Description:

This change corrects a situation that occurs when a spawned TCP job does not do any TCP activity. In this instance, it becomes dormant and invisible to the production that spawned it. If the production is shut down, it shuts down the spawned job, but when it is restarted, it encounters an <UNDEFINED> error.

Category: Ensemble.Adapter
Platforms: All
DevKey: JN945
Summary: Do not copy entire list of RemoteAETs to incoming DICOM document

Description:

When matching a list of Remote AETS in the DICOM adapter, the whole list was being copied to the incoming DICOM document instead of the specific one which matched. Now only the matching document is copied.

Category: Ensemble.Adapter
Platforms: All
DevKey: JN947
Summary: Handle some instances of invalid DICOM data sent to us by buggy peers

Description:

The open source PACS, sent by Conquest, incorrectly forms data items of type UID padded with NUL bytes. This correction strips them when the item is fetched by the Ensemble virtual document function, GetValueAt().

Category: Ensemble.Adapter
Platforms: All
DevKey: JN949
Summary: Show meaning full tag info for GroupLengths in Message Browser

Description:

Before this change, DICOM tags which represent group lengths were not being displayed in the Ensemble Message Browser. Now they are.

Category: Ensemble.HL7/EDI
Platforms: All
DevKey: JN941
Summary: DICOM simple routing operation and demo

Description:

This change addresses the need for a simplified routing scenario where the only requirement is that DICOM messages are received and routed to storage destinations.

A new operation class EnsLib.DICOM.Operation.TCP.Storage has been developed which performs a single storage operation within the context of a single association. It eschews flexibility for simplicity.

The Demo.DICOM.Production.Router, Demo.DICOM.Process.RouterDispatcher, and Demo.DICOM.Process.RouterFiler classes provide a simple demonstration of a receive, dispatch and file storage scenario. The demo is intended to present the simplest possible implementation of such a scenario and is designed to be a model for the user to copy or extend.


Category: Ensemble.HL7/EDI
Platforms: All
DevKey: JN943
Summary: Guard against invalid DICOM association accept messages

Description:

InterSystems has discovered that some DICOM peers send invalid ASSOCIATION-AC messages. This change works around that issue.

Category: Installation.Windows
Platforms: Windows
DevKey: ALE2023
Summary: Fix a problem with Caché installation on Chinese (PRC) Windows

Description:

This change prevents a Caché installation on a Chinese (PRC) Windows locale from getting an error message box.

Category: Languages.MVCommands
Platforms: All
DevKey: JPL1386
Summary: Fix MVIMPORT (Universe) bug where certain block sizes and alignments would cause segment mark not found errors

Description:

This change corrects a situation where an MVIMPORT of Universe data fails occasionally by adjusting the import block size or synthesizing an extra file.

Category: Migration.TSQL
Platforms: All
DevKey: DLP2716
Summary: TSQL - fix HAVING clause generation

Description:

This corrects an error that caused the HAVING clause to be inappropriately placed after the ORDER BY clause.

Category: Networking.ECP
Platforms: All
DevKey: GK886
Summary: Fixed a false $d return value across ECP

Description:

In a very rare condition, if a subscript-level mapped (SLM) reference is killed or doesn't exist, and there is a SET which requires a disk read and $DATA to the "Set" parent reference, and the $DATA occurs in a conditional expression, the $DATA may return a false result. This is now fixed.

Category: Networking.ECP
Platforms: All
DevKey: GK887
Summary: Fixed a small window when a lock was granted to some other app-server, the ECP data durability guarantee wasn't honored

Description:

In very rare circumstances, when Caché attempts to execute a SET before an UNLOCK requiring disk read for the SET to complete, if there is a system failure after granting the lock to some other application server, the data might be overwritten during ECP recovery. This change prevents that from happening.

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

Description:

When there are two jobs attempting to SET a long string, there is a very small window when the second job attempts to start sending a long string. If the network/server goes down in that window, the attempt will be rejected and an error raised. This change closes that window.

Category: Networking.ECP
Platforms: All
DevKey: GK908
Summary: Fixed an ECP error handler timing issue

Description:

In some situations, ECP could leave a request (for example, $DATA or $GET) in its queue and not process it. This could happen in a very small window while it was queuing the request to be processed, but it failed to pre-fetch the required disk block(s). This is now fixed.

Category: Object.ActiveX
Platforms: All
DevKey: IYB710
Summary: CacheActiveX, set ThreadingModel to Free

Description:

This correction changes the threading model of CacheActiveX to allow the use of proxy objects in any thread.

Based on available information, there are few/no applications using CacheActiveX with multiple threads, so most applications will not run any differently. Those applications that do use multiple threads must already have the proxy objects isolated to a specific thread (otherwise they would see the problem that this change fixes).


Category: Object.CacheProvider
Platforms: All
DevKey: IYB714
Summary: CacheProvider, made MetaInfoContainer thread safe

Description:

In conjunction with IYB710, this correction makes access to the dynamic meta information for proxy classes thread-safe as well.

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

Description:

In DotNet 4.0 and Visual Studio 2010 on fast machines, threading issues with connection pooling could have occurred. This change fixes a hang that can occur when RecycleInUseConnections is called.

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: Security
Platforms: All
DevKey: STC1862
Summary: Use NEW $namespace in %Library.Routine

Description:

This change fixes a problem where, when you try to import a routine using %RI into an implied namespace, you might raise a <NOROUTINE> error.

Category: Security
Platforms: All
DevKey: STC1863
Summary: Remove calls to $$$SaveNamespace and replace with NEW $NAMESPACE

Description:

This change fixes a security hole where a user with programmer mode privileges could purposefully corrupt the saved namespace stack from the programmer prompt. This could then cause an error, and leave the user with the %All privilege.

Category: SQL
Platforms: All
DevKey: AK792
Summary: Fix computed field retrieval order opt

Description:

Query conditions on fields with SqlComputeOnChange were sometimes causing incorrect code-generation, resulting in <UNDEFINED> errors when the query was run. This has been fixed.

Category: SQL.GateWay
Platforms: All
DevKey: MIT1043
Summary: Correct a potential invalid memory access in SQL Gateway narrow to wide conversion

Description:

This change prevents the SQL Gateway from generating an error when converting narrow (8-bit) characters to Unicode.

Category: SQL.SQLFiler/TableCompiler
Platforms: All
DevKey: DPV3769
Summary: SQL: Correct polymorphic dispatch for tables with stream columns

Description:

This change corrects a problem that occurs during a SQL UPDATE where the row on a table contains a stream field. If the stream being used to supply data for the update differs in type from the stream currently representing the field, the update could fail to occur with no report of the failure.

Category: Studio
Platforms: All
DevKey: DVU2825
Summary: TNodes. Fix memory leak in CTNodeManager::convertClassIndexVersionTwo2ClassIndexSummary

Description:

This change fixes a memory leak that could eventually lead to a crash.

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

Description:

This corrects a situation where a crash may occur if a block of text whose length had been shortened was deleted.

Category: System
Platforms: All
DevKey: CDS1820
Summary: Subscript in <UNDEFINED> error was garbled

Description:

This change corrects a situation where an <UNDEFINED> error message could show a garbled subscript value when the error involved local arrays.

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

Description:

In rare conditions, a routine target cache was getting freed while it was being constructed. This caused the cache manager to randomly corrupt memory leading to a crash. This is now fixed.

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

Description:

This correction fixes a problem in exporting objects where, in rare circumstances, an outbound packet could be ignored. This could happen most often when editing in Studio a routine bigger than 32K bytes.

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

Description:

This corrects a problem in exporting objects that, under rare circumstances, could cause an access violation.

Category: System
Platforms: All
DevKey: JLC1455
Summary: Use dmovb() when compacting index table in ptrie node

Description:

This change fixes a problem where the action of compacting a ptrie node could cause corruption of the table leading to an access violation.

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

Description:

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

Category: System
Platforms: AIX
DevKey: WDS378
Summary: Fix buffer allocation when defined(USEWIJENCJOBS) && defined(ASYNCWIJ)

Description:

This fixes a problem when using Online Backup with Cache and Ensemble versions 2010.2.1 and 2010.2.2 on AIX, described by the InterSystems Alert of 06 January 2011.

Category: System.Callin/Callout
Platforms: Windows
DevKey: SAP1385
Summary: Fix CacheAbort

Description:

In prior releases, issuing CacheAbort on Windows terminates the process. This is now corrected; it aborts the activity in progress.

Category: System.I/O
Platforms: HP HP-UX RISC
DevKey: RJW1871
Summary: Login to Cache via csession from a telnet connection to HP/UX could be slow

Description:

A problem has been corrected that could cause login to Caché via csession from a telnet connection to 64-bit HP/UX to be very slow.

Category: System.Journaling
Platforms: All
DevKey: HYY1616
Summary: Update WIJ transaction information while WD is busy

Description:

This correction addresses an issue that could prevent journal files from getting purged when they should, and also result in a prolonged scan of journal files for open transactions at system restart after a crash.

Category: System.Lock
Platforms: All
DevKey: SML1297
Summary: Fix lock upgrade from shared to exclusive could hang

Description:

This change fixes a problem that could cause a job to get into a spin when attempting to upgrade a lock from a shared mode to exclusive mode.

Category: System.Mirroring
Platforms: All
DevKey: JO2375
Summary: Ensure we use mirror journal file sequence # when we switch journal files to become the primary

Description:

This change corrects a rare problem where, if the backup mirror member is writing to a journal file with a prior date, and the primary fails so the backup takes over, the backup will ignore the current sequence # of the file being generated by the former primary and will start over at 001.

Category: System.Mirroring
Platforms: All
DevKey: JO2376
Summary: Mirror dejournal needs to ensure it processes entire file

Description:

If the mirror dejournaling process on the backup runs into corruption in a journal file, it will not move past that point until either the issue is resolved or the instance is shut down. Previously, when the mirror switched journal files the process on the backup could move on to the new file, skipping the data which was not restored due to the corruption. This situation is now corrected.

Category: System.Mirroring
Platforms: All
DevKey: JO2384, GK894, GK910
Summary: Correct mirror dejournal so it does not skip records when a db is activated

Description:

A problem has been resolved where a mirror backup could skip dejournaling a record when a newly activated database on the backup is linked into the active system. This only occurs when dejournaling on the backup is behind the end of the current journal file at the time the newly restored database is activated.

Category: System.Mirroring
Platforms: All
DevKey: JO2386, GK894, GK910
Summary: Adjust mirroring startup when using ECP

Description:

These changes implement versioning in ECP to assist with proper start up of mirrored systems:
  • ECP now implements versioning to help in implementing the ECP cluster server rolling upgrade support. By use of versioning, the ECP session will be dropped if an older/incompatible version takes over.
  • ECP recovery uses the ECP session version of the old primary during mirror failover. The approach is that during failover, if the ECP session of the new primary is older than the previous primary, do not recovery the ECP sessions.
  • When a failover mirror member downloads ECP session data from the existing/former primary, it now also retrieves a version number. If a node becomes the primary and the existing ECP sessions have an incompatible version number, they are dropped. A version with this change is required in order to correctly inter-operate with 2011.1 (and later) releases.

Category: System.Mirroring
Platforms: All
DevKey: JO2389
Summary: Make $SYSTEM.Mirror.GetInfo() public

Description:

Prior to 2010.2 only %Admin_Oper was required to look at journal files in the portal. With 2010.2, this was accidentally changed to require %Admin_Manage as well. This has been resolved and %Admin_Manage is no longer required, only %Admin_Oper.

Category: System.Mirroring
Platforms: All
DevKey: JO2396
Summary: Backup could think primary was down when status message returned an error

Description:

A problem in mirroring has been corrected where the backup might take over without retrieving the end of the former primary journal file when the former primary was shutdown.

While the operating system was terminating processes, it was possible for the backup to enter its failover state and make contact with the agent on the primary. Shortly thereafter, the agent process would get terminated by the system. In this case the backup mistakenly thought the primary told it that it was down. The backup could continue and take over for the primary if this occured within the trouble timeout.

However if the write daemon on the former primary was not terminated by the system within the trouble timeout period, it could update its copy of the mirrored databases with a journal position past the last point the backup had retrieved. The consequence of this is that the next time the primary is started, it will refuse to join the mirror because it will detect the inconsistency.


Category: System.Mirroring
Platforms: All
DevKey: SML1256
Summary: Fix failed to add/edit/remove Virtual IP address for Mirror Edit Configuration

Description:

This change fixes a situation involving the deletion of Virtual IP address in a mirror configuration. Now it will not delete the VIP from the OS when the VIP is removed from configuration.

Category: System.Mirroring
Platforms: All
DevKey: SML1290
Summary: Support restoring mirror journal record for non-mirror system

Description:

This change corrects ^JRNRESTO so when restoring a mirrored DB in a mirror journal file on a non-mirror system, or a mirror member if a different mirror set, the user needs to enter the mirror DB alias name instead of the directory path at the "Directory to restore [? for help]:" prompt and be redirected to a local database.

Category: System.Monitoring
Platforms: All
DevKey: RFD592
Summary: Fix accvio when using %SYS.MONLBL

Description:

This change prevents a process crash (<ACCVIO>) caused by using ^%SYS.MONLBL to monitor routines generated by class methods. The crash occurred if a process is already running some class methods before %SYS.MONLBL is started.

Category: System.Shadowing
Platforms: All
DevKey: HYY1619
Summary: Address a data integrity issue in shadowing

Description:

This change corrects an issue in shadowing that, in rare circumstances, could result in data discrepancy on the shadow.

Category: System.Shadowing
Platforms: All
DevKey: HYY1621
Summary: Restoring an old fix of a cluster shadowing issue

Description:

This change restores a fix to remove unnecessary journal state changes inside cluster shadow source process.

Category: Terminal
Platforms: Windows
DevKey: RJW1865
Summary: Caché internal failures in cconsole.log

Description:

This corrects a situation that could case a potential exception when a Caché process serving a telnet connection on Windows halts. The problem is limited to Windows and has only been observed while running automated tests that repeatedly connect to Caché via the %Net.TelnetStream class.

Category: Utilities
Platforms: OpenVMS
DevKey: JO2381
Summary: VMS:Correction to journal disk full on mirror backup handling

Description:

A problem which prevented a mirror backup on a VMS system from moving the journal file being retrieved from the primary to the alternate journal location when the original location becomes full has been resolved. This affected all attempts to recover from this situation.


© 2011, InterSystems Corporation. All rights reserved.