InterSystems Documentation 
Caché Maintenance Kit Release Notes Archive


Welcome and thank you for using InterSystems products.
The current maintenance kit is Caché 2011.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 2011.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
The following are the change reports for Caché 2010.2.1

Category: CSP.Gateway
Platforms: All
DevKey: CMT941
Summary: Ensure that HTTP POST request messages containing zero-length XML-based payloads are correctly processed

Description:

This change will ensure that HTTP POST request messages containing zero-length XML-based payloads are correctly processed. It corrects a fault introduced in a previous version that resulted in requests of this type not being processed and eventually timing-out.

Category: DeepSee.DeepSee II UI
Platforms: All
DevKey: YSD2628
Summary: DeepSee - Architect - Build Cube to show Facts for 1 core

Description:

This change now correctly displays the number of facts for 1 core.

Category: DeepSee.DeepSee II UI
Platforms: All
DevKey: YSD2630
Summary: DeepSee - UI - add code to UI pages necessary for switching namespace

Description:

This change corrects errors that occurred when changing to a new namespace using the Switch dialog.

  1. If the user selects a namespace that is appropriate, the UI page can be refreshed for the newly selected namespace (previously user was returned to the Home page).
  2. If the user selects a namespace that is not appropriate, for example %SYS, then the Home page is displayed.
  3. In rare cases, if a namespace is selected but the web application is disabled, or for some other reason the URL for the new namespace could not be prepared, the user is returned to the Home page.

Category: Installation.UNIX
Platforms: Macintosh
DevKey: ALE2122
Summary: Flush DS cache after creating a new group or user in Mac OS X install

Description:

With this change, scripts used to create a new group or user in Mac OS X install (by default cacheusr) will now call "dscacheutil -flushcache" to ensure new user and group are available for use in Unix utilities such as "chown" immediately.

Category: Installation.UNIX
Platforms: UNIX®
DevKey: ALE2123
Summary: Synchronize DMG engine postinstall script with regular Unix install

Description:

This additions updates the DMG installer engine postinstall script to use the same logic to start control process as regular UNIX® install does and it will pass all recently added variables to ^INSTALL.

Category: Languages.COS
Platforms: All
DevKey: CDS1982
Summary: Fix "Expression object code is too big" for $CASE

Description:

A $CASE with many cases could cause a compiler error "Expression object code is too big". This has now been fixed.

Category: Languages.COS
Platforms: All
DevKey: CDS1983
Summary: Fix compile problem with TRY syntax errors

Description:

There could be <SYSTEM> errors or memory access violations when compiling a routine with syntax errors in a TRY statement, such as a missing CATCH clause. This correction eliminates the error.

Category: Languages.COS
Platforms: All
DevKey: CDS2004
Summary: Nested $SELECT could give <SYSTEM> error during compile

Description:

Under some conditions nested $SELECTs could throw a <SYSTEM> error when the routine is compiled. This is now fixed.

Category: Languages.COS
Platforms: All
DevKey: GGC512
Summary: Correct problem with ptrie arrays during merge

Description:

When a merge command is executed, there is a chance that subsequent kill operations on a single subscript in the updated array would kill the entire array instead of just the intended single subscript.

This change corrects that.


Category: Languages.COS
Platforms: All
DevKey: GGC514
Summary: Correct various ptrie local array problems

Description:

This change fixes a circumstance where Caché could produce a <SYSTEM> abort or a segmentation violation when the application attempts to KILL an array or executing a $ORDER on an array.

Category: Languages.COS
Platforms: All
DevKey: JO2461
Summary: Correct job command problem passing tcp devices in conjunction with certain amount of other data

Description:

This change fixes a rare problem which could cause the JOB command to fail while passing an open socket to the child process. This usually occurred when also passing the symbol table or a large amount of argument data, although neither of these conditions guaranteed the JOB command fail.

Category: Languages.MVQuery
Platforms: All
DevKey: JPL1479
Summary: Correct code generation for F corr Summation

Description:

This change corrects errors in F/Acorr summation operations in MultiValue.

Category: MgtPortal
Platforms: All
DevKey: YSD2618
Summary: Management Portal - Change Code to call new API for contructing URL based on newly selected namespace

Description:

This change fixes a problem where a URL may not be constructed correctly if there are multiple Web Applications defined for the same namespace.

Category: MgtPortal
Platforms: All
DevKey: YSD2633
Summary: Management Portal - Switch namespace - put in code to get around a bug between javascript and ZenMethod

Description:

This change inserts code into the GetNewURL method in %ZEN.Portal.standardPage to compensate for a browser error that occasionally loses the value for a defaulted argument.

Category: MgtPortal
Platforms: All
DevKey: YSD2636
Summary: Management Portal - Fix Favorites links created with /csp/sys instead of other namespace

Description:

When a user selects a new namespace from the Home page, the URL is not changed until the user selects Go to actually go to that page. At that time, the new namespace becomes part of the URL.

If the user clicks the Add Favorite before selecting Go, the URL that is saved for future use does not contain the new namespace. This causes a "Page does not exist" error when it is later used.

This change correct that situation.


Category: MgtPortal
Platforms: All
DevKey: YSD2638
Summary: Management Portal - Fix item help links for Advanced Settings: Memory/Startup/Compatibility

Description:

This change fixes the "Help" links in the table for each item in the row so selecting them goes to their help page.

Category: MgtPortal
Platforms: OpenVMS
DevKey: YSD2640
Summary: Management Portal - Fix method GetNewURL in %ZEN.Portal.standardPage

Description:

This corrects a situiation where attempting to navigate to the Management Portal from the SAMPLES could fail on OpenVMS due to a malformed URL.

Category: MgtPortal
Platforms: OpenVMS
DevKey: YSD2642
Summary: Management Portal - Fix URL is not properly preserved after Save

Description:

When Save is pressed, the page should return to the Home page. But on an OpenVMS system, the URL built for the Home page may be missing the instance name.

This is now fixed.


Category: Migration.TSQL
Platforms: All
DevKey: DLP2837
Summary: TSQL - Support CREATE INDEX as a dynamic statement

Description:

Tbis change now allows the TSQL DDL CREATE INDEX statement to be executed as a dynamic statement when the statement dialect is Sybase or MSSQL.

Category: Networking.ECP
Platforms: All
DevKey: GK947
Summary: Corruption of long Unicode strings across ECP

Description:

This fixes a problem where in very rare cases,

the value returned by the server might be corrupted.

This is described as rare because, in production systems, most unicode strings get compacted.


Category: Networking.ECP
Platforms: All
DevKey: GK948
Summary: ECP recovery of partially processed request bufs

Description:

In rare conditions, when an ECP request SET is partially processed before the server is shutdown or fails, and then the server is restarted, some application server sessions might be rejected and not recovered.

This is now fixed in all ECP servers


Category: Networking.ECP
Platforms: All
DevKey: GK950
Summary: Fixed an ECP server pre-fetcher hang

Description:

In the infrequent case where a reverse $ORDER is being pre-fetched by the worker daemon while the previous block is being modified by the ECP daemon, the server may report a deadlock condition and hang the ECP daemon and possibly the system. This change avoids that situation.

Category: Object
Platforms: All
DevKey: MAK3276
Summary: Make %DeleteOID procedure block method to avoid overwriting 'oid' public variable

Description:

This change marks the %DeleteOID method in the %Library.Persistent class as procedureblock so the 'oid' variable does not leak out.

Category: Object.Class Compiler
Platforms: All
DevKey: MAK3289
Summary: Split generated INT code at 64k lines

Description:

The newly implmented support for large routines does not allow routines with over 64k of lines. With this change, the class compiler will keep track of the number of COS lines and will split the generated COS code at a little less than the 64k line limit and then generate another COS routine with the rest of the code in it.

Category: Object.Storage.Default
Platforms: All
DevKey: DLP2785
Summary: Object Storage - acquire an exclusive lock on insert of atomic object if in a transaction

Description:

If %Concurrency is true, then locks are acquired and released to guarantee consistent reads of objects during a transaction. All write operations are also guaranteed to be consistent. For %Concurrency values greater than 2, locks are acquired and not released until the object is destructed.

This change corrects a concurrency hole where an atomic object (one that occupies a single global node on disk) is inserted inside of a transaction. In this case, the atomic write was not protected by a lock and a competing process could update the newly inserted object. This is only an issue when the transaction containing the original insert is rolled back. In that case, an error is reported by the rollback.

An exclusive lock is now taken out on all objects during insert as long as %Concurrency is true and, if the object is atomic, the insert occurs within a transaction.


Category: Object.Storage.Default
Platforms: All
DevKey: DLP2832
Summary: Object Storage - fix COUNTERLOCATION default value

Description:

This change corrects an error introduced in 2011.1.0 that caused the default global location for counters to be incorrectly generated. If the storage definition specified a COUNTERLOCATION, then that value was incorrectly ignored. This value is now properly used for the default counter location.

Category: Security
Platforms: All
DevKey: WDS383
Summary: Correct RSA-SHA signature encoding for SHA-2 functions

Description:

This change corrects the method signature on SHA-2 functions.

Category: Security
Platforms: All
DevKey: WDS412
Summary: GetMKEncKeyIDList() big-endian Unicode fix

Description:

This change corrects an incorrect character conversion by big-endian Unicode systems that caused errors when processing encrypted keys.

Category: Security
Platforms: All
DevKey: YSD2631
Summary: Management Portal - Fix problem for when "Change password on next login" is checked for user

Description:

When the user definition has "Change password on next login:" checked, the next time the user logs in a prompt to change the password appears. This change corrects a situation where, under some circumstances, that prompt could result in an <undefined> error.

Category: Special Projects
Platforms: All
DevKey: CDS1995
Summary: Fix U2 crash after $ZU(11,2)

Description:

This corrects an error in U2 where, after issuing $ZU(11,2), a subsequent GOTO to an entry point with a formal parameter list could get an access violation.

Category: Special Projects
Platforms: All
DevKey: CDS1998
Summary: Fix a U2 argument stack issue with $ZU(11,6)

Description:

This change correct an error that mishandled arguments during a call.

Category: SQL
Platforms: All
DevKey: DPV3874
Summary: Deferred SQL, correct oref.prop referenced as host variables in the SQL statement

Description:

This change corrects a situation where a deferred SQL statement that included a host variable reference of the form oref.prop was improperly translated into generated code.

Category: SQL.ODBC
Platforms: All
DevKey: JCN1208
Summary: Remove changes adversely affecting forward cursor recycling

Description:

Modifications made to cursor recycling to prevent store errors on the server side introduced new problems for statements containing multiple streams using a forward moving cursor. This is now fixed.

Category: SQL.ODBC
Platforms: All
DevKey: JCN1209
Summary: Fix unaligned access warnings on decunix5 platform

Description:

Default options on the compiler have changed causing unaligned access errors on decunix5 platform. This explicitly sets the options on the compiler which resolves the problem.

Category: SQL.ODBC
Platforms: All
DevKey: JCN1213
Summary: Fix ProcessRow(false) returning SQL_ERROR at 32K boundary with complete data

Description:

Calls to SQLFetch could return SQL_ERROR(-1) in the case where:

This change handles the status return of 100 on the attempt to fetch the next chunk of data, and return SUCCESS to SQLFetch. The next call to SQLFetch will detect there is no more data and return SQL_NO_DATA_FOUND.


Category: SQL.Server
Platforms: All
DevKey: DLP2841
Summary: SQL Statement - remove redundant FLUSH0 message

Description:

A bug that caused an error when executing dynamic statements via JDBC and ODBC has been corrected. The issue was caused by a flush message sent from the server. The most common symptom of this error was a message count mismatch.

Category: SQL.SQLFiler/TableCompiler
Platforms: All
DevKey: DPV3884
Summary: SQL Filer - Correct code generation issue with piece maps and unique index

Description:

A problem has been corrected where a class that used %CacheSqlStorage with a single property IDKEY index and a data map defined as a $PIECE map could have a syntax error reported when the class was compiled.

Category: SQL.Statement
Platforms: All
DevKey: DLP2849
Summary: SQL Statement - fix initial column offset in %SQL.ClassQueryResultSet

Description:

This change fixes an error that caused a result set returned by a CALL <class_query> SQL statement to fail to send its content to an xDBC client.

Category: SQLManager
Platforms: Windows
DevKey: YSD2617
Summary: Management Portal - Data Migration Wizard - When using IE, uncheck Copy Data does not work

Description:

When using Internet Explorer, after the user unchecks the Copy Data checkboxes and hits Finish (without hitting Next) then Data Migration succeeds. However, if the user hits Next and hits Finish on the next page, the Copy Data checkboxes become checked again and the result is that the data is copied.

This is a problem for Internet Explorer only and has been fixed.


Category: Studio
Platforms: All
DevKey: JN981
Summary: Fix subscript out of range error in TNodes.dll

Description:

When searching for schema prefixes, an unsigned integer could be decremented past zero resulting in a very large integer which exceeded the subscript range permitted for an internal vector class leading to a crash. This change corrects the search algorithm so the error does not occur.

Category: System
Platforms: All
DevKey: CDS1981
Summary: Report correct location after some <STORE> errors

Description:

A <STORE> error may show the routine name but not the line location in the routine. If the error happens in a procedure, private variables would not be visible to the debugger. This has been corrected.

Category: System
Platforms: All
DevKey: CDS1985
Summary: Fix memory overlay when using internal function

Description:

The internal function used by Weblink Developer, could overlay memory and cause access violations in the process.

This has been corrected.


Category: System
Platforms: All
DevKey: CDS1992
Summary: Add missing RTNENQ when large buffers are released

Description:

This changes fixes a vulnerability for sites that use legacy commands like ZLOAD and ZINSERT to edit large routines.

Category: System
Platforms: Windows
DevKey: CDS2005
Summary: Large sequential read could cause access violation

Description:

Reading from a sequential file with format "U", using a very large fixed length READ, could cause an access violation on Windows systems.

This has been corrected.


Category: System
Platforms: All
DevKey: GK940
Summary: Fixed an oref ref-counting issue

Description:

This changes fixes a problem where %OnNew() returned an OREF and the returned value was from a derived class. In this case, the OREF was not properly accounted for and may have been released while it was still "live" resulting in an access violation.

Category: System
Platforms: All
DevKey: GK955
Summary: Clearing $this (set $this = "") to preserve the original context

Description:

Caché clears $this in data-typed property methods to prevent unintentional access to the subclass members.

If the data-type method is invoked from the same type of method as the method of the subclass, clearing $this cleared the caller's context. This change pushes the caller context on the frame stack, and on return from the data-type method it will restore the original context.


Category: System
Platforms: All
DevKey: GK956
Summary: Modified the routine loader to preserve the string stack

Description:

When a large number of routines are loaded as part of an object instantiation, the system may run out of string stack.

This change now properly preserves the string stack contents.


Category: System
Platforms: Macintosh
DevKey: JLC1490
Summary: Rename libcache.dylib as libisccache.dylib on Mac OS X

Description:

Mac OS X 10.7 (a.k.a "Lion") introduced a new shared library called libcache.dylib. In order to avoid the name conflict, Caché's callin library was renamed as libisccache.dylib.

Any Mac OS X program that links with the InterSystems older libcache.dylib will have to be changed to use the new name, libisccache.dylib.


Category: System
Platforms: All
DevKey: SAP1478
Summary: Fix job startup hung in getsym / putsym

Description:

This change fixes an issue where a JOB command using jobservers will sometimes hang and time out. A dump analysis shows the two processes (parent and child) both waiting in the job putsym and getsym (symbol passing) code.

Category: System
Platforms: Windows
DevKey: SAP1480
Summary: Fix process hangs during mailbox processing on Windows

Description:

This entry corrects a situation where repeated use of $VIEW(-1,pid) causes process to hang.

Category: System
Platforms: All
DevKey: SAP1492
Summary: Fix core during shutdown

Description:

This chage corrects a situation that could cause the shutdown process to provoke a core dump.

Category: System
Platforms: All
DevKey: SAP1493
Summary: Fix accvio in a job server

Description:

Under some circumstances a jobserver that receives a sigusr1 signal while in the process of halting can generate an <ACCVIO>. This change prevents that from happening.

Category: System.Cluster Specific
Platforms: OpenVMS
DevKey: SAP1479
Summary: Fix cluster recovery runs even though cluster is up on VMS

Description:

This change corrects a situation where cluster recovery may be initiated after the cluster is up.

Category: System.Journaling
Platforms: All
DevKey: HYY1675
Summary: Disallow ^JRNSTOP on a system set to freeze on journal error

Description:

Stopping journaling via ^JRNSTOP is NOT allowed when the system is set to freeze on journal error (that is, FreezeOnError=1 in Config.Journal or the "Journal" section of cpf etc.), as the system is going to freeze shortly after journaling is stopped.

This change will disallow any attempts to stop journaling in those conditions.


Category: System.Journaling
Platforms: All
DevKey: HYY1677
Summary: Release lock on journal log upon error in purging journal log

Description:

This fix addresses an issue that could cause journal switch to hang after an error in purging the journal log, for example, an error resulting from insufficient disk space in the manager directory (where journal.log resides).

Category: System.Licensing
Platforms: All
DevKey: RJW1935
Summary: Sessionless SOAP requests with user login consume license for too long a period

Description:

This change corrects a problem that would cause too many license units to be consumed by SOAP requests when SOAPSESSION=0 and a username/password login was performed.

Category: System.Localization
Platforms: Windows
DevKey: JCN1211
Summary: Fix localization reference handle and x64 resource loading

Description:

This correction addresses a circumstance where CacheODBC resources were not being loaded in 64-bit Windows environments, but worked OK on 32-bit systems.

Category: System.Mirroring
Platforms: All
DevKey: JO2450
Summary: Clear Mirror NoWrite and ActivationRequired when removing a mirrored db

Description:

The process of removing a mirrored database on a non-mirror member has been updated so that a restart is no longer required before the database can be mounted read/write.

Category: System.Mirroring
Platforms: All
DevKey: JO2454
Summary: Remove the async from the primary's active configuration when the async member stops tracking the mirror

Description:

When an async mirror member stops tracking a mirror, it is now removed from the active configuration on the primary so that it will no longer remain in the mirror monitor. This change has both server and client components so it only takes effect when both the primary and the async member are running a version which includes this change.

Category: System.Mirroring
Platforms: All
DevKey: JO2457
Summary: Correct code which restores journal file prefix when primary startup fails after switching to a mirror journal file

Description:

A problem which prevented a mirror member from recovering when it failed to become the primary and the system was configured with a journal file prefix has been resolved. If, for example, $$CheckBecomePrimaryOK^ZMIRROR() returned 0 and the system was configured with a journal file prefix, it would fail to recover properly and shut down. The console log would contain a series of error messages ending with "PrimaryAbort failed, shutting down instance".

Category: System.Mirroring
Platforms: All
DevKey: JO2463
Summary: Update sfn translation table in journal during jrnswitch without reading database blocks

Description:

This change prevents a rare situation where the write daemon and the journal daemon may find themselves in a deadly embrace during the interval a system is in the process of establishing itself as the primary mirror member.

Category: System.Mirroring
Platforms: All
DevKey: SML1355
Summary: Fix backup failed to start when journal file was purged

Description:

This change corrects a situation where a backup member failed to reconnect to primary if the journal file pointed to by the system had been purged.

Category: System.Mirroring
Platforms: All
DevKey: SML1360
Summary: Fix mirror failed to start when journal files are purged and ^MIRROR is killed

Description:

This change corrects a circumstance where a backup member might fail to reconnect to the primary after upgrade killed ^MIRROR global.

Category: System.Mirroring
Platforms: All
DevKey: SML1362
Summary: Honor the DaysBeforePurge for async member to keep mirror journal files around

Description:

This change allows an async member to keep the mirror journal file for days configured by users. The ^MIRROR routine could configure the 'days' before the mirror journal file be purged. When it is zero, then it will be purged after the journal file is fetched from server and restored to databases.

Category: System.Mirroring
Platforms: All
DevKey: SML1368
Summary: Skip purged journal file when finding first valid journal file

Description:

This change fixes a problem where the backup node reconnect to a primary member could fail when the value in ^MIRROR(mirname,"LastJrnfileValidated") points to a purged journal file.

Category: System.Mirroring
Platforms: All
DevKey: SML1371
Summary: Support Activate/Deactivate mirror set on backup/async members

Description:

This change adds support for users to activate/deactivate (start/stop) specific mirror set on backup or async members.

It adds the SYS.Mirror.IsMirrorStarted() method to detect whether the specific mirror set is started or not; and adds 'Activate Mirror' to the menu option in ^MIRROR routine.


Category: System.Shadowing
Platforms: All
DevKey: HYY1666
Summary: Ensure only one job gets jobbed off to copy journal files from a source cluster node

Description:

This change addresses an issue of cluster shadowing in certain rare circumstances (such as CPU shortage) where multiple jobs might get JOBbed off to copy journal files from one source cluster node, (over)writing to the same destination file and causing cluster shadow dejournaling job to get an error such as <ZQUIT> ExitOnErrorGetRec+3^SHDWX.

Category: System.Trans. Proc.
Platforms: All
DevKey: HYY1665
Summary: Fix TROLLBACK failure at the time of jrnswitch

Description:

This change fixes an issue that could cause TROLLBACK to fail with the (false) error "journaling is disabled" in certain rare circumstance involving an ongoing journal switch.

Category: Utilities
Platforms: All
DevKey: STC1969
Summary: Allow users to log in if lock table full

Description:

This change fixes a problem where, if the lock table is full, a new user cannot log in.

Category: Utilities.Configuration
Platforms: All
DevKey: SML1378
Summary: Fix stale SLM mapping when DB location changed in CPF file

Description:

This change fixes a possible stale SLM mapping when the destination database location is updated in the CPF file before Caché is started.

Category: Zen
Platforms: All
DevKey: DLP2833
Summary: ZEN - Fix metadata retrieval in %DrawTable method of TablePane

Description:

This corrects an error that caused a <INVALID OREF> error when drawing a ZEN Table Pane that uses dynamic SQL.

Category: Zen
Platforms: All
DevKey: SAM140
Summary: Add flag to selectively enable toggle behavior in tablePane row select

Description:

A previous enhancement enabled the user to unselect the current row by clicking on it, making the row click option effectively a toggle and allowing the user to 'select nothing' without having to reload the page. This was a departure from the prior behavior where subsequent clicks on the selected row were ignored and the only way to clear the current selection was to either select something else or go through the API.

This fix adds a flag to tablePane, effectively making the previous enhancement optional.



© 2011, InterSystems Corporation. All rights reserved.