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.
-
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
Unless 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.
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:
- Title to and ownership of the software and documentation shall
remain with the Contractor.
- Use of the software and documentation shall be limited to the
facility for which it is acquired.
- 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.
- 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
- CSP.Gateway
- Ensemble
- Ensemble.Adapter
- Ensemble.DTL
- Installation.Windows
- Languages
- Networking.ECP
- Object.C++
- Object.DotNet
- Object.Java
- Object.LanguageBindings
- Object.Library
- Object.XML
- SQL.GateWay
- SQL.Server
- SQL.SQLFiler/TableCompiler
- Studio
- System
- System.Cluster Specific
- System.I/O
- System.Monitoring
- System.Shadowing
- Utilities
- Utilities.Configuration
Category: CSP.Gateway
Platforms: Macintosh
DevKey: CMT762, CMT763
Summary: Build universal bundles for the x86-64 Mac OS X platform
Description:
This change modifies the compiler/link settings such that universal
bundles will be built for the x86-64 Mac OS X platform.
The previous settings prevented the Management Portal from working
properly on 64-bit systems.
Category: Ensemble
Platforms: All
DevKey: MC986
Summary: Restore transaction level in user error traps
Description:
This change restores the transaction level in user
error traps.
When application code errs with a transaction level > 0,
Caché does a TROLLBACK in
the error trap. Otherwise, the transaction level will never go down to
0 and this will cause inconsistencies in processing afterwards.
This change added TROLLBACK for the user callback in Business
Services, Processes and Operations.
Category: Ensemble
Platforms: All
DevKey: TAP874
Summary: Fix SQL queries used in MessageHeader Purge() when KeepIntegrity = true
Description:
This change fixes the SQL queries used in the
Ens.MessageHeader Purge() method when that method is called with the
argument KeepIntegrity = 1. Because of a subtle SQL syntax problem
the previous form of the query did not correctly identify rows to
purge that should be purged.
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP842
Summary: Account for long key subscripts that may contain Unicode in SQL Adapter cache tables
Description:
This change improves the previous truncation algorithm
used for turning query strings into cache table keys. It now uses a
shorter truncation limit in order to avoid <SUBSCRIPT> errors
even when the allowed subscript length is halved due to the text
containing Unicode characters.
This change also fixes three other places where similar cache table subscripts are
used.
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP882
Summary: Fix SQL adapter Large Object issues
Description:
This change fixes three issues with SQL Large Object
support:
- Large Object detection was not recognizing
certain SQL Server types properly.
- JDBC calls to the removeLOB() cleanup function were missing an
argument and therefore failing.
- The Large Object byte position appendage to the field ID in
GetData/GetDataW() was not being tested properly, causing a failure to
fetch all field data.
This change also adds Java type definitions to EnsSQLTypes.inc and
adds new methods each to EnsLib.SQL.GatewayConnection and
EnsLib.SQL.Snapshot:
- GetColumnSQLType - Returns the SQLtype integer of column 'pColumn'
in the result set.
- GetColumnIsLOB - Returns whether column 'pColumn'
is a LOB (Stream) column.
- GetColumnIsBinary - Returns whether column
'pColumn' contains binary data.
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP892
Summary: Fix SQL Adapter ExecuteProcedure with both OutputParam and Result Snapshot nullifies Snapshot list
Description:
This change fixes a bug that causes the SQL Adapter
to eliminate some or all output result snapshots generated from a
stored procedure call if the SP also had any scalar output
parameters.
Category: Ensemble.DTL
Platforms: All
DevKey: DDP030
Summary: Don't modify %session.AppTimeout for Ensemble SVG in Studio
Description:
This changes forces Ensemble to respect the default
CSP application timeout when opening DTL in Studio. Previously,
this was overridden to be set to "never", which caused CSP session
licenses to be held in perpetuity; only manual intervention or an
Ensemble restart would release the licenses.
Category: Installation.Windows
Platforms: All
DevKey: ALE1809
Summary: Correct name for Caché startup shortcut created on non-English systems
Description:
In version 2009.1, a Windows installation on non-English systems
would create a Start Menu shortcut in the Startup folder as "Launcher"
rather than <INSTANCENAME>. As a result, after a reboot users could
have two cubes for the same instance, if it was an upgrade from 2008.2
or below. This change
fixes the problem.
Category: Languages
Platforms: x86
DevKey: SJ2588, SJ2589, SJ2590
Summary: Fix a problem in assembly language optimization on Intel x86 platforms with addition
Description:
This change corrects a problem when adding two large
numbers. If each number has 19 digits, and each has
a single digit after the decimal point, and the sum will not
fit in a 64-bit signed number, the application can get a <SYSTEM> or
other error when trying to save or use the result.
Category: Networking.ECP
Platforms: All
DevKey: GK713
Summary: Fixed an ECP hang
Description:
This change corrects an issue where, in rare
conditions, ECP daemons might be out of sync and search for locally
cached blocks. This caused an unexpected delay in responding to
various requests.
Category: Object.C++
Platforms: All
DevKey: IYB607
Summary: C++ binding, mark all zobjval client nodes as valid after the zobjval client value gets updated from the server
Description:
Sometimes, when processing a client request, the server did not send
cache updates for properties that were modified on the client. Thus
resulted in excessive calls to the server instead of getting the value
from the cache.
This change forces the client to assume that after a
roundtrip to the server the client cache must be valid, even if the
server didn't send any updates. As a result, the client should not send
extra messages to the server.
Category: Object.DotNet
Platforms: All
DevKey: IYB610, IYB611
Summary: CacheProvider, don't use Shadow in Open() methods of generated VB code
Description:
VisualBasic and C# have slightly different rules regarding how methods
are shadowed and/or overloaded. This change adjusts for the
differences in the two languages thus removing VisualBasic compiler errors.
Category: Object.DotNet
Platforms: All
DevKey: IYB612
Summary: Dotnet_generator: report compiler errors when generating an assembly
Description:
Prior to this change, the .NET code generator did not report compiler errors
when generating an assembly; it always reported a successful completion even
when an assembly was not generated. With this change, any errors or
warnings that
occur
are reported back to the user.
Category: Object.Java
Platforms: All
DevKey: MAB836
Summary: Fix deadlock in collections for Full Java Binding
Description:
This change corrects a problem where connection
pooling by multiple Java applications accessing the same Caché
data could result in a deadlock.
Category: Object.LanguageBindings
Platforms: All
DevKey: DMC688
Summary: ObjectiveCache: More precise conversion of NSDecimalNumber to d_decimal
Description:
This correction resolves an issue where large
integer values were not being properly converted from NSNumbers into
d_decimal.
Category: Object.Library
Platforms: All
DevKey: MIT927
Summary: Fix normalization code for %currency and %Decimal
Description:
In some cases $DOUBLE values could be stored in
these datatypes. With this change, the proper datatype is used.
Category: Object.XML
Platforms: HP-UX
DevKey: JN781
Summary: Correct workaround of Virtual Memory Deallocation on HP Itanium
Description:
On HP-UX Itanium, virtual memory was not being
deallocated correctly. This became apparent when using
%XML.Adaptor::XmlExportToString(). This change corrects the
deallocation issues.
Category: SQL.GateWay
Platforms: All
DevKey: MIT933
Summary: Honor delimited id setting for linked tables in joins
Description:
The bug was fixed that the delimited ids setting was
not honored in joins.
Category: SQL.Server
Platforms: All
DevKey: DPV3481
Summary: SQL: Correct problem that did not allow {%row} to resolve properly
Description:
A problem has been corrected where the use
of {%row} in %CacheSQLStorage definitions would cause a class compiler
failure.
Category: SQL.SQLFiler/TableCompiler
Platforms: All
DevKey: DPV3473
Summary: SQL Filer: Perform immediate unlock of shared lock acquired on foreign key referenced row after this row has been filed
Description:
When inserting or updating a row into a table that
has a foreign key, Caché acquires a lock on the referenced row that
is released when the transaction ends. This
lock is required to check the referential integrity of the foreign key
constraint and ensure the row still exists from the time the lock is
acquired until the time this row is inserted or updated.
If there are many rows
inserted or updated in a single transaction and many foreign keys on
the table, this could hold many locks in the lock table.
With this change, Caché will no longer hold the lock for the duration
of the transaction, but will release the lock after the row has been
inserted or updated. By this time the system has ensured referential
integrity and the row in the referenced table cannot be updated or
deleted during the course of this transaction because the referential
action on the foreign key constraint will prevent the update or
delete on the referenced table from occurring.
Category: Studio
Platforms: All
DevKey: ALE1806
Summary: Set blank username/password for Studio server connection in minimal security install
Description:
With this change, Windows installation will set the username and
password to blanks when a minimal security setting is used to install a
product.
Category: Studio
Platforms: All
DevKey: MC988
Summary: Fix memory leak caused by stringlist.cpp
Description:
This change corrects a memory leak that occurred
under certain uses of $LISTBUILD, $LISTGET and $LISTGETNEXT.
Category: System
Platforms: All
DevKey: JLC1321
Summary: Fix hang in terminal read when pasting a UTF-8 string
Description:
This change corrects a problem that could cause a
process to hang when trying to read text pasted into the input stream
that uses a multi-byte encoding such as UTF-8 or JIS.
Category: System
Platforms: Macintosh
DevKey: JLC1323
Summary: Identify Mac OS X with 64-bit kernel in cplatname
Description:
This change allows Caché to properly
recognize when it is running on the MAC OS 10.6 ("Snow Leopard") kernel.
Category: System
Platforms: All
DevKey: JLC1324
Summary: Redirect standard file descriptors to /dev/null in $zf(-2)
Description:
External programs started with $zf(-2,<path>)
on Unix platforms now run with the standard file descriptors 0, 1 and
2 redirected to /dev/null. Previously these three descriptors were
closed before starting the program.
Category: System
Platforms: All
DevKey: JO2274
Summary: Release retained gbuf in use cmd before we issue any system calls
Description:
This correction resolves a defect where a process could get
blocked in a USE command by the operating system and cause
Caché to
hang if it had retained ownership of a global buffer.
Category: System
Platforms: All
DevKey: SML1165
Summary: Namespace re-activation protection
Description:
This change fixes a possible <NAMESPACE> or
<DIRECTORY> error that could occur while
the system is re-activating the namespace
table while a namespace is edited.
Category: System
Platforms: All
DevKey: SOH120
Summary: Fix loop bound in LocToUTC, $ZU(193,xxx,1)
Description:
$ZUTIL(193,x,1) converts a date X to UTC. If X
represents the first day of the year, where (year mod 4)=1, the result
might be incorrect. This bug has been fixed.
Category: System
Platforms: All
DevKey: SJ2577
Summary: Fix core dump with $zu(70,4,"")
Description:
This change fixes a problem where a core dump can
occur when running the INTEGRIT utility.
Category: System.Cluster Specific
Platforms: All
DevKey: RJW1738
Summary: Cluster resource, ISCCres2003.dll, not working on 64 bit Windows clusters
Description:
A problem has been corrected that could cause the
Caché cluster resource to fail.
The symptom is that the cluster
manager would become unresponsive and the Caché cluster resource will
not work. This problem has been seen on 64-bit Windows, but may
also occur on 32-bit Windows clusters.
Category: System.I/O
Platforms: All
DevKey: HYY1485
Summary: Fix stream READs on a device opened with compression/decompression enabled (/GZIP)
Description:
This correction addresses an issue that could cause READs on a
device opened with /GZIP (i.e., with stream compression/decompression
enabled) to fail to read data. The problem is most prominent when the
READ length is 32767, the default for stream READS without
terminators or length specifier.
Category: System.I/O
Platforms: OpenVMS
DevKey: RFD477
Summary: Fix check for OPEN pipe device on OpenVMS
Description:
Trying to OPEN a TCP device with the letter "Q" in
the hostname was failing with an <UNIMPLEMENTED> error. This was
due to a faulty check for a "pipe" on OpenVMS. It has now been corrected.
Category: System.Monitoring
Platforms: HP-UX
DevKey: RFD471
Summary: Fix Caché Diagnostic Report for HP-UX
Description:
The Caché Diagnostic Report was using an unsupported
option for the process list on HP-UX. This has been corrected.
Category: System.Shadowing
Platforms: All
DevKey: HYY1486
Summary: Write shadow copy of journal file in RAW mode on OpenVMS
Description:
This change corrects an issue that could cause a shadow server
to produce corrupted copies of source journal files on OpenVMS if process
default I/O table is not RAW (for example, the I/O table is EUC in locale 'jpuw').
The problem is believed to be present in all supported Caché releases.
Category: Utilities
Platforms: All
DevKey: STC1668
Summary: Delete mappings when deleting a namespace
Description:
When a namespace is now deleted, all the cached
mappings for it are also deleted. Previously, when the same name
mapping was re-added, the cached mappings would be applied to the
namespace.
Category: Utilities
Platforms: All
DevKey: STC1669
Summary: Fix COMM port handling with new config classes
Description:
With this change, the comm port server process now start and will
handle comm port logins. Previously, the comm port server process would
not start.
Category: Utilities
Platforms: All
DevKey: STC1670
Summary: Allow IP address to be used as server name
Description:
When upgrading to 2009.1, if an ECP server name was
defined to be an IP address of the form n.n.n.n (for example,
127.0.0.1, the loopback address), the installation would fail during
the conversion of the CPF file. This has been fixed.
Category: Utilities
Platforms: All
DevKey: STC1672
Summary: Don't fail installation if we can't update the CPF file
Description:
Previously, if there was a problem converting the
CPF file during an upgrade, the installation would fail. The only
recourse was to correct the CPF file, then re-install.
Now the installation will complete, allowing administrators to fix the
CPF file, and restart to be upgraded to the new version.
Category: Utilities
Platforms: All
DevKey: STC1678
Summary: Allow null device name for DDP
Description:
This fixes a problem where the system would not
start if it was using DDP, and the DDP device name was left as null
(which means use the default device.)
Category: Utilities.Configuration
Platforms: All
DevKey: SML1161
Summary: Fix SLM mapping when user defined mapping override system default mapping
Description:
This change fixes an issue where
a user overrode a system default mapping such as %Z* routine
resulting in the wrong destination for the %Z* mapping.
Category: Utilities.Configuration
Platforms: All
DevKey: SML1164
Summary: Fix mapping got <UNDEFINED> error when index needs to be re-aligned
Description:
This change fixes a situation where
an attempt to activate mappings resulted in an
<UNDEFINED> error. This occurred when there were many mapping entries and
internally Caché attempted to re-index the mapping array.