InterSystems Documentation 
Caché Maintenance Kit Release Notes


This document provides a list of the changes between versions 2011.1.2 and 2011.1.3 for Caché.
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.

Prior to beginning an upgrade of a Caché instance, InterSystems recommends that the be shut down normally.

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:


Change Reports for This Maintenance Kit

Category: Config Mgr
Platforms: All
DevKey: STC1999
Summary: LIST^%SYS.NAMESPACE should always return enabled status if type=5

Description:

This change allows the listing of namespaces to include those on accessible remote systems.

Category: Object
Platforms: All
DevKey: MAK3216
Summary: When releasing locks on ^rINDEX/^rINDEXCLASS use immediate mode

Description:

In order to ensure consistency of the routine and class index, Caché sometimes locks ^rINDEX and ^rINDEXCLASS. With this change, when those locks are released, Caché uses immediate mode to ensure they are released straight away even if the release takes place in a transaction.

Category: Object
Platforms: All
DevKey: MAK3363
Summary: Correct up to date checking for MAC routines

Description:

Due to a problem caused by a previous change, when checking if a MAC routine was current, the absence of a corresponding INT routine, would return true. This is incorect and is fixed by this change.

Category: Object.CacheProvider
Platforms: All
DevKey: JCN1233
Summary: Only make literals with plain constants inside SQL double parentheses

Description:

SQL standards suggest that simple constants inside double parentheses should be sent as literals, however, Caché should continue to substitute constants in more complex situations. With this change, in the query
select COUNT ((1)), fCQname from QueryTest
the value "1" should be sent to Caché as is. However,
SELECT count(*)
    FROM SAMPLE.PERSON
    WHERE ((Age = 20 and Name='A') or Age=30)
would be sent as the following:
SELECT count ( * ) 
    FROM SAMPLE.PERSON 
    WHERE ( ( Age = ? and Name = ? ) or Age = ? )
using parameter substitution.

Category: Object.DotNet
Platforms: All
DevKey: IYB756
Summary: Binding server: use a process private global to turn on/off output redirection

Description:

If a .NET client stopped redirecting input from the server, this could turn off output redirection in a future connection that had the same process id or in a connection that was reused via connection pooling. This change corrects both problems.

Category: Object.Gateway
Platforms: All
DevKey: HCR238
Summary: OPEN commands in %Net.Remote.Gateway to check for timeout

Description:

This change adds timeout guards to the OPEN commands used by %Net.Remote.Gateway to prevent hangs.

Category: Object.Library
Platforms: All
DevKey: DMC829
Summary: CacheSSH: Update to libssh2-1.3.0

Description:

This change updates libssh2 to version 1.3.0 to correct issues seen in 2010.2.x installations in the field involving SSH packet handling and socket I/O in earlier versions.

Category: Object.Library
Platforms: All
DevKey: MAK3293
Summary: Trap errors in stream object inside %Net.FtpSession

Description:

When using %Net.FtpSession to send or receive data, Caché uses a stream on its side to put/receive the data. However, this process was not checking for errors from the stream class such as it running out of disk space for a file stream.

With this change, Caché will detect this error and report an error code from the %Net.FtpSession class with the error information from the stream embedded.


Category: Object.Storage
Platforms: All
DevKey: DLP2895
Summary: Object Storage - fix bug in %Delete that caused a failed referential action to be ignored

Description:

A bug that caused a foreign key constraint failure to be ignored when deleting an object is now fixed. This bug occurred when deleting an instance of a class that is targeted by a foreign key constraint and also contains streams. If the foreign key referential action fails, then that failure status was not honored and the delete was allowed to proceed.

Category: SQL
Platforms: All
DevKey: DPV3940
Summary: SQL: Correct class definition optimistic concurrency locking with SQL LockTimeout=0

Description:

This change corrects a problem where compiling an SQL statement will encounter an <UNDEFINED> error when the SQL LockTimeout is set to 0.

Category: System
Platforms: X86 64-bit
DevKey: CDS2020
Summary: Fix alignment violation with long property names

Description:

Using long property names within an XECUTE could cause an access violation on x64 platforms. This is now fixed.

Category: System
Platforms: All
DevKey: CDS2044
Summary: Fix name table issues with low memory

Description:

This change corrects access violations that could occur when available memory in the process is low.

Category: System
Platforms: All
DevKey: GK969
Summary: Fixed a class cache invalidation race condition

Description:

This change corrects a rare race condition in the class loader where recompilation could leave invalidated heap segments exposed and cause them to be corrupted.

Category: System
Platforms: All
DevKey: GK971
Summary: Fixed large object destruction hang

Description:

A large object hierarchy destruction may take some time to finish, and moreover if there is any retained block, the system may hang. This change alters the way this situation is handled to release the retained block if there are any jobs waiting for it

Category: System
Platforms: All
DevKey: JLC1542
Summary: Preserve mode when editing replacement string of modal translation

Description:

When using ^NLS to edit the replacement string from a modal translation table (such as JIS), the mode byte was being lost. This would cause an access violation when the replacement string was needed in case of a translation error. The mode byte is now preserved.

Category: System
Platforms: All
DevKey: JLC1544
Summary: Preserve virtual string stack for callin clients

Description:

This change corrects a situation when, under some circumstances, successive callins would allocate space without freeing it upon return which would lead to memory exhaustion.

Category: System
Platforms: All
DevKey: JLC1545
Summary: Release virtual string stack in freesstack() for USETHREAD

Description:

This change corrects a situation similar to JLC1544 but involving job servers and callin clients. The memory exhaustion issue is now avoided.

Category: System
Platforms: All
DevKey: JO2486
Summary: Fixes to avoid corruption due to interaction between expansion and compaction/defragmentation or $prefetchon

Description:

A problem where database expansion of a database which is being compacted or defragmented could result in database degradation has been resolved. The problem occurs when a database is expanded while the defragment/compaction process is in the process of reading blocks from the database. The most likely occurrence of this is on UNIX® systems during a defragment operation which triggers expansions in order to complete. Windows and OpenVMS systems are less likely to experience this problem when the defragment process triggers the expansion as the expansion occurs in a single operation. On UNIX® the expansion request triggers a series of smaller operations.

Category: System
Platforms: All
DevKey: SAP1516
Summary: Fix possible hang and expansion freeze in create, delete, or dismount database

Description:

This corrects an issue where the handling of disk i/o in processing database expansion could hang the process.

Category: System
Platforms: All
DevKey: SAP1520
Summary: Fix EXPDMN writing multiple messages to cconsole.log for the same database

Description:

When more than two databases are expanding, the expansion daemon writes multiple messages to cconsole.log.

With this change, expansions will get at least 2 messages per database, and at most 3.


Category: System
Platforms: All
DevKey: SJ2757
Summary: Put back support for $VIEW options -5 and /-6 for 2K block size for 2011.1.x

Description:

Limited read-only support for 2KB datasets is still needed in 2011.1, this change reinstates code needed for SYS.Database.Copy.

Category: System.Cluster Specific
Platforms: All
DevKey: JO2485
Summary: Allow rollback to mount dismounted databases during cluster recovery

Description:

A problem introduced in 2011.1 where transactions would not be properly rolled back during cluster recovery at startup has been resolved. The problem could also occur during cluster failover if the master node has to mount a database during the journal roll forward phase. This is an unusual situation because the slaves cannot take out locks in a cluster mounted database which is not mounted on the master so this (generally) only would occur if the master has some database mounted which is not mounted by a slave and then the master fails and the slave performs cluster recovery.

Category: System.Journaling
Platforms: All
DevKey: HYY1660
Summary: Ensure system is frozen on journaling issues in a timely, accurate fashion

Description:

This change addresses a situation on Windows and OpenVMS that a journaling issue may take 60 seconds for the control process to detect before it freezes the system as opposed to the advertised 10 seconds.

It also addresses an issue (mostly on Windows and OpenVMS, less likely on Unix) that could cause the control process to freeze system on something that does not warrant the freeze (for example, a false journaling issue), although the control process would unfreeze the system in 60 seconds. The behavior may result in unnecessary interruption of system availability or failovers of mirror servers.


Category: System.Journaling
Platforms: All
DevKey: HYY1688
Summary: Fix journal.log corruption caused by failed expansion

Description:

This change corrects an issue that resulted in a corrupted journal.log when there is no more space in the manager directory.

Category: System.Journaling
Platforms: All
DevKey: HYY1690
Summary: Adapt JD monitor timeout to WD freeze timeout for backup

Description:

This change corrects a situation where, during backup, the system may pause users due to journal daemon inactivity in certain circumstances such as the journal files are in the same filesystem as databases and the filesystem is frozen as part of the backup procedure.

Category: System.Journaling
Platforms: All
DevKey: HYY1694
Summary: Allow user to stop journaling on system set to freeze on journal error

Description:

This action reverts a prior change that changed the control process monitoring rule such that it did not freeze a system that is set to freeze on journal error if journaling is stopped (as opposed to retrying a failed journal I/O operation or stuck in somewhere).

On a system set to freeze on journal error (FreezeOnError=1 in cache.cpf), stopping journaling, although risking loss of journal data, is allowed and does NOT cause the system to freeze thereafter.


Category: System.Journaling
Platforms: All
DevKey: HYY1695
Summary: Prevent WD from consuming 100% CPU when system is frozen on journal issues

Description:

This corrects an issue that caused the write daemon to consume 100% of the CPU when the system was frozen on journal I/O issues.

Category: System.Mirroring
Platforms: All
DevKey: JO2481
Summary: Correct coordination between mirror dejournal jobs and mirror backup shutdown/disconnection process

Description:

This change corrects several issues with mirroring where

The journal files were not actually corrupt in either case and apart from failing to exit cleanly, these do not cause issues with the mirrored databases.


Category: System.Mirroring
Platforms: All
DevKey: SML1404
Summary: Fix problem when failover member was removed and recreated

Description:

This change corrects a possible failure caused when a failover member removed itself, and then add itself back into the mirror set as failover member.

Category: System.Monitoring
Platforms: All
DevKey: SAP1517
Summary: Correct calls in System.Dashboard to prevent SYSLOG errors

Description:

Spurious SYSLOG entries are produced by %MONAPP every 5 minutes if there are remote (ECP) databases mounted.

Category: System.Shadowing
Platforms: All
DevKey: HYY1699
Summary: Address a shadowing issue with journal file name prefix

Description:

This change addresses an issue in shadowing where a source journal file name prefix specified is different from the "canonical" one on the platform (lowercase on Windows and uppercase on OpenVMS) could cause shadowing to take up unnecessary network bandwidth between the source and the shadow.

Category: System.StartUp
Platforms: AIX
DevKey: SAP1490
Summary: Fix locking shared memory (memlock) failure on AIX

Description:

This corrects a problem where using the memlock config option on AIX, the lock always fails with the message:
*** Warning - Cache was unable to lock shared memory ***

Category: System.StartUp
Platforms: All
DevKey: SAP1522
Summary: Default libpath to "" if not found in .cpf file

Description:

If LibPath is missing in the .cpf file, startup fails immediately. With this fix, a missing LibPath entry is treated as a null entry, and startup continues.

Category: System.Very Large Systems
Platforms: All
DevKey: SJ2747
Summary: Change retry logic in Integrity checking when possibly false positives

Description:

This fix changes the way retrying is done in Integrity checking when blocks are being changed while the global is being checked. Checking should now give similar numbers of errors found as in previous versions, but also identify them as possibly being due to blocks being changed.

Normally, Integrity checking should be done on quiescent globals.



© 2011, InterSystems Corporation. All rights reserved.