InterSystems Documentation 
Caché Maintenance Kit Release Notes


This document provides a list of the changes between versions 2011.1.1 and 2011.1.2 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:

  • Routines

    Compiled routines are upward-compatible from version to version and do not need to be recompiled unless specified otherwise in the upgrade notes for a specific release.

    Because most versions contain improvements in the routine compiler, in the generated code, and/or efficiencies in the runtime support, customers may decide to recompile their routines to take advantage of new features and meta-routine information. Those customers whose actions implicitly access this underlying information must recompile their routines. An example of such access is source-level debugging on version X of code compiled on version earlier than X.

    If you recompile routines, they should be recompiled after classes are recompiled.

  • Classes, SQL, Projections, Proxy Classes

    InterSystems requires that all classes be recompiled after an upgrade. The following command will upgrade and compile the class dictionaries in every namespace:

        Do $SYSTEM.OBJ.CompileAllNamespaces("u")
    

    You must regenerate any proxy classes used in the upgraded instance by following the instructions in the appropriate guide(s) in the Caché Language Bindings set. You must also purge any cached queries in any upgraded namespace by issuing the command:

        Do $SYSTEM.SQL.Purge()
    

    in that namespace.

  • Exported XML

    vUnless specified in the upgrade notes for a specific release, exported XML files can be imported into later releases.

    The reverse is NOT true. Later versions could be using new features not present in earlier versions, and could have a different class dictionary version number which alters how these classes are stored internally that can not be undone when importing to a previous version.

  • Debugging

    InterSystems also recommends recompiling routines and classes for applications under development. This synchronizes the debugger with the expected format of the compiled code.

  • Caveat

    Because recompiling necessarily updates system data associated with the routine, users who recompile classes or routines must have write access to this data (^ROUTINE) in each namespace where the object being compiled is mapped. Failure to observe this requirement will result in
    ERROR #302: the database is read-only.

Upgrading ECP Configurations
The following guidelines apply to the process of upgrading ECP configurations:
  • Unless explicitly noted for a particular version, the protocol used to communicate among ECP systems is fully compatible across versions.
  • For ECP configurations consisting of stateless, independent database and application servers, an ECP configuration may be updated incrementally, system by system.

    The application servers should be upgraded to the new version first. Once all application servers have been upgraded, the database servers can be serially upgraded.

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: MgtPortal
Platforms: All
DevKey: YSD2663
Summary: SMP - Fixed ProdLog #93037: Include Remote Namespaces in Switch Namespace dialog

Description:

This change will pass the "Remote" argument to the query so that the Switch namespace dialog will include remote namespaces.

Category: Migration.TSQL
Platforms: All
DevKey: DLP2858
Summary: TSQL - Add support to dynamic SQL for DROP INDEX for MSSQL/Sybase dialects

Description:

A defect that prevented DROP INDEX from working properly in dynamic SQL and DDLImport when the dialect is either MS SQL Server or Sybase is now fixed.

Category: Migration.UltiMumps
Platforms: All
DevKey: CDS2017
Summary: Compile default null string for U2 $PIECE fifth argument

Description:

This change implements the following behavior: if a fifth argument is indicated but omitted for $PIECE in U2 mode, the compiler will provide a default value of a null string.

Category: Networking.ECP
Platforms: All
DevKey: GK957
Summary: ECP recovery to ignore dismounted remote DBs

Description:

This change corrects a rarely-occurring failure in ECP recovery or remote database dismount that manifests itself as an access violation during ECP recovery.

Category: Networking.ECP
Platforms: All
DevKey: GK959
Summary: ECP recovery may drop some partially processed requests

Description:

In very rare cases, when the network and the host service is very fast, ECP recovery may lose partially processed requests during a connection outage. This is now corrected.

Category: Networking.ECP
Platforms: All
DevKey: GK960
Summary: ECP Rollback request may not include the correct len

Description:

In very rare cases, if an app-server with many ECP active jobs, and one job with an open transaction is halted, the queued asynchronous rollback request may not be valid and may not rollback the open transaction.

In this instance. the following message would appear in the console log:

TROLLBACK from client did not find matching transaction on ECP server.
This situation has now been corrected

Category: Object.C++
Platforms: All
DevKey: IYB744
Summary: C++ binding, fixed a bug in Unicode conversion code involving strings > 32k

Description:

This change corrects a problem that occurs in the C++ binding for Unicode conversions involving strings larger than 32K.

Category: Object.C++
Platforms: All
DevKey: IYB753
Summary: C++ binding, bug fix in string conversions

Description:

If an attempt to convert a long (> 32K characters) Unicode string required allocating a dynamic buffer, a subsequent request to convert a string of less than 32K would re-use the dynamic buffer. Now a smaller buffer is used.

Category: Object.Class Compiler
Platforms: All
DevKey: MAK3304
Summary: Remove incorrect usage of $$$com...Lvar macro where first and second argument are the same

Description:

Classes which used sqlcomputed code with a chained list of properties, where one of the types of the properties in the chain was a subclass of the class that added this property, could generate bad propGet or propCompute method code. This regression in 2011.1 is now fixed.

Category: Object.Library
Platforms: All
DevKey: MAK3292
Summary: Allow global export to XML to handle null subscripts

Description:

This change corrects an error in exporting and importing globals with null subscripts. Now globals with null subscripts will be properly exported if null subscripts are allowed.

This change also corrects the import processing so that it does not report an error on an attempt to import a global with a null subscript and null subscripts are allowed.


Category: Security
Platforms: All
DevKey: RFD648
Summary: Fix error in %Save() when Task is Run

Description:

This change corrects an error in TaskManager where an attempt to update the status of a task could fail because the next time scheduled for the task had already passed.

Category: System
Platforms: All
DevKey: CDS2013
Summary: Fix accvio after <STORE> error

Description:

In some circumstances, attempting to report an error trap for a <STORE> error could cause the process to generate an access violation. This is now corrected.

Category: System
Platforms: All
DevKey: CDS2021
Summary: Fix access violation when large routine line lookup fails

Description:

This change corrects a situation involving routines that are large and implement a user command or function (%ZLANGxxx). If the entry point that implements the user command or function is not found in the routine, Caché could report an access violation.

Category: System
Platforms: All
DevKey: JLC1527
Summary: Fix loading of U2 pattern match table

Description:

This fix affects only 2011.1 and later Unicode U2/M builds using the Arabic locale (u2aw). It fixes a bug that prevented the U2 Pattern Match table to be loaded.

Category: System
Platforms: Windows, Linux
DevKey: JLC1535
Summary: Fix detection of number of x86 chips

Description:

This change corrects a situation on Caché for Windows or Linux x86-32/64 running on systems with a large number of cores (e.g. more than 8). The algorithm that counts threads, cores and chips could detect twice the number of cpus (sockets) actually installed. This number is used for informational purposes only and the incorrect value did not affect licensing.

Category: System
Platforms: All
DevKey: JO2472
Summary: Correct remote job command so new job does not get exception on remote references

Description:

This change corrects a defect in 2010.1 that could result in a process started via the remote job command getting an exception if the new job references a global over ECP.

Category: System
Platforms: All
DevKey: SAP1504
Summary: Eliminate msyslog from mailbox code

Description:

This change corrects a defect that could result in a deadlock within Caché involving attempts to post messages between threads.

Category: System
Platforms: All
DevKey: SAP1511
Summary: Fix infinite loop in global module while doing FileCompact

Description:

This change fixes a situation where an attempt to compact a file causes the process to go into an infinite loop consuming all of the cpu time.

Category: System
Platforms: All
DevKey: SML1377
Summary: Avoid netlog() called in mbx() for Windows

Description:

This change alters the reporting of a network error discovered in a thread so that it does not make a call that would block the thread. The error is queued and reported by the main thread.

Category: System.I/O
Platforms: UNIX
DevKey: SAP1507
Summary: Correct partial write logic for unix writes

Description:

This change fixes a situation involving writes to disk on UNIX® systems. The underlying system could return an indication of partial writes unnecessarily. In some cases where the disk is nearly full, this could result in an improper status code being returned for the write attempt.

Category: System.Journaling
Platforms: All
DevKey: HYY1683
Summary: Prevent database error from freezing system during journal recovery at startup

Description:

This change addresses an issue that could cause system to freeze upon <DATABASE> errors during journal recovery at startup.

Category: System.Journaling
Platforms: All
DevKey: HYY1684
Summary: Eliminate an unnecessary error in scanning for open transactions in journal restore

Description:

This correction resolves an issue that could cause journal restore to think mistakenly that an earlier file that might contain open transactions did not exist.

Category: System.Licensing
Platforms: All
DevKey: RJW1939
Summary: CSP License will not be released with Web AddOn and %Session.Login()

Description:

This problem is corrected:

  • If a user has a license with Web Add-On, and
  • the application does a CSP connection using %session.Login(), and
  • does not call $SYSTEM.License.PublicWebAppUser() (because it only need this as an UnknownUser),

two Licenses will be allocated. One has the Identifier LicenseId@IPAddress and one has the SessionId. The LicenseId@IPAddress will be released after the Timeout, but the one with the SessionId will never be released.

The same problem exists with SOAP requests.


Category: System.Lock
Platforms: U2
DevKey: SML1387
Summary: Avoid wrong child job took locks from another child job

Description:

This change fixed a problem that when a parent job started one job without lock passing followed by another job with lock passing, the first job might take the locks intended to be passed to the second job.

Category: System.Mirroring
Platforms: All
DevKey: JO2467
Summary: Allow JRNSWITCH to occur during mirror initializion in the transaction rollback phase

Description:

An error has been resolved where a user induced journal switch that happens

  • while a node is becoming the primary mirror member,
  • but after the node has created a mirror journal file,
  • and prior to the start of the ECP Recovery phase,

would cause the system to report a problem and fail to become the primary at startup.


Category: System.Mirroring
Platforms: All
DevKey: JO2471
Summary: Allow "idle" failover mirror members to use ^MIRROR, Management options, Force This Node To Become Primary

Description:

Previously the ^MIRROR management option which tries to force a node to become the primary refused to run if the node was not currently a backup mirror member. This option is now allowed on failover members regardless of whether they are connected as the backup member or not connected at all (eg. idle).

Category: System.Monitoring
Platforms: All
DevKey: RFD625
Summary: Fix user MIB and Config list issues in Windows SNMP DLL

Description:

This change fixes two issues with the Windows SNMP extension MIB DLL (iscsnmp.dll): one problem can cause a user-defined MIB in Cache to not be registered correctly; The other can potentially cause the DLL to crash.

Category: System.Monitoring
Platforms: All
DevKey: RFD626
Summary: Use %Monitor FreeSpace sample for SYS.History.Database

Description:

This change modifies the system data sampling mechanism to manage its data storage needs the same way that SNMP does.

Category: System.Shutdown
Platforms: All
DevKey: SAP1513
Summary: Fix cforce fails, reporting spurious pidtab corruption

Description:

This corrects an error where the cforce command halted with the message:
Cforce failed!!! pid table corrupted: 0 & 0 not killed
The cforce program did not detect any error, and deleted shared memory and cache.ids. Processes were still running.

Category: System.StartUp
Platforms: All
DevKey: SAP1497
Summary: Fix emergency mode startup causing private webserver failure on Unix

Description:

This changes Emergency Mode to run as the owner - not as root. It corrects a circumstance where Emergency Mode startup fails to start the private webserver so the CSP portal is not available to make any necessary config changes. In addition, all subsequent restarts also fail to start the private webserver.

Category: System.TCP Devices
Platforms: All
DevKey: SML1388
Summary: Add ABSTIMEOUT option for TCP devive read timeout behave same as other type of devices

Description:

This change adds a new keyword option /ABSTIMEOUT for TCP devices. It makes the read timeout behavior the same as other types of Caché devices - it accepts whatever data arrived within the timeout period. Without this option enabled, the timeout will be reset to its original value when data arrives.

The default setting of /ABSTIMEOUT is zero (off). Applications need to specify /ABSTIMEOUT or /ABSTIMEOUT=1 key word in the OPEN or USE command to turn on this option.


Category: System.Trans. Proc.
Platforms: All
DevKey: HYY1686
Summary: Address a case of <STORE> error in transaction rollback

Description:

This change addresses an issue of transaction rollback where rolling back open transactions involving a number of global nodes updated via bit SETs could fail with a <STORE> error.

Category: System.Very Large Systems
Platforms: All
DevKey: SJ2746
Summary: Change message if only block changes were detected to warning, instead of Global is NOT OK

Description:

This change affects INTEGRIT. It now does not output a message
****** Global xxx is NOT OK ****** 
if any errors were resolved by retrying, and it detected that the block(s) that initially were detected as having errors changed during the integrity check.


© 2011, InterSystems Corporation. All rights reserved.