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.
-
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:
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
- Languages.COS
- Networking.ECP
- Object
- Object.LanguageBindings.LCB
- Object.LanguageBindings.MDS
- Object.Gateway
- Object.Library
- SQL.GateWay
- SQL.ODBC
- Studio
- System
- System.Mirroring
- Utilities.Configuration
Category: CSP.Gateway
Platforms: HP-UX
DevKey: CMT886
Summary: Restructure the main control block in the shared memory sector to avoid a BUS error on 64-bit HPUX systems
Description:
This change modifies the control block to align data items so that
references to them do not cause bus errors on 64-bit systems.
Category: Ensemble
Platforms: All
DevKey: MC1161
Summary: Fix bug where alarm requests are lost during production suspension
Description:
This corrects a serious situation that occurs during shutdown. At
this time, all outstanding alarm requests are lost. On subsequent
startup and resumption of the production, the processes that are
waiting on their alarm requests will not receive them.
The change is to save the alarms, preserving them across the
shutdown/startup
and make them available to the applications when they resume
operation.
Category: Ensemble
Platforms: All
DevKey: TAP1076
Summary: Write only complete LOB chunks to stream global from SQL Adapter
Description:
This change causes the class
EnsLib.SQL.GatewayResultSet used by the SQL Adapters to write only
complete LOB chunks to the underlying stream global rather than
storing each sub-chunk as it arrives over the xDBC channel. This
prevents journaling of the partially completed chunk multiple times
which reduces the total amount of journaled data to the minimum
necessary.
Category: Ensemble
Platforms: All
DevKey: TAP1097
Summary: Increase top 1m to top 100m in Purge query
Description:
This change increases the TOP clause in the SQL used
to purge messages from 1,000,000 to 100,000,000.
Category: Ensemble
Platforms: All
DevKey: TAP1100
Summary: Make SQL Adapters recognize JDBC network disconnect when prepareStatement() fails with no additional error info
Description:
When the JDBC Gateway's JVM is restarted while a Production is running and SQL
Adapter activity is in progress, it can happen that the Adapter has an open
connection instance that is no longer viable. In this case, when the Adapter
attempts to prepare a statement, the prepareStatement() command to the JVM will
fail. The adapter needs to interpret this as a disconnect event so that it will
jettison its connection instance and establish a new one.
This change makes the Adapter detect the failure and interpret it as a disconnect
event.
Category: Ensemble.Adapter
Platforms: All
DevKey: DMC802
Summary: Ensemble/ebXML: Support versioning of CPA instances
Description:
This changes adds support for versioning of CPA instances. CPA
instances are now stored using an IDKEY of the CPAId and the Version
property. A new instance method BumpVersion() will find the next
highest Version number for the specified CPAId. CPA instances can
also be "disabled" by setting the new Status property to disabled. A
new helper method has been added:
This will locate the CPA instance by CPAId and find the highest version that is marked as active.
Category: Ensemble.Adapter
Platforms: All
DevKey: DMC804
Summary: Ensemble/ebXML: Support custom XML in ebXML manifest
Description:
Some external situations require that additional XML
tags be present in the ebXML Manifest, in this specific case, it is a
Payload tag. The existing implementation allowed for this, but would
capture the XML as a string in an "any" property. However, this turns
out to be useless because the original namespace information was
included in the SOAP envelope and unavailable to the user.
This change captures the Payload tag properly.
Category: Ensemble.Adapter
Platforms: All
DevKey: DMC805
Summary: Ensemble/ebXML: CPA TimeToLive should be a string not an integer
Description:
This change modifies the TimeToLive property of the
CPA so it is treated as a string, in an XSD duration format.
Category: Ensemble.Adapter
Platforms: All
DevKey: DMC806
Summary: Ensemble/ebXML: Only call SendDeferredResponse() if response has been pre-fetched
Description:
Not all users will track messages or associate a
deferred response with a message in the message tracker. In this
case, where tracking is needed, but responses are not pre-fetched,
this modification ensures that Ensemble does not call
SendDeferredResponse() unnecessarily.
Category: Ensemble.Adapter
Platforms: All
DevKey: JN928
Summary: Handle Empty Transfer Syntax In DICOM Association Negotiation
Description:
Some DICOM client software sends empty instances of
DICOM transfer syntax specification in the association negotiation
phase. While this is confusing, it is not specifically prohibited in
the standard. This correction changes the TCP adapter to just ignore
the irrelevant data.
Category: Ensemble.DTL
Platforms: All
DevKey: DMC803
Summary: Ensemble/ebXML: Add VDoc/DTL support for TimeCreated property
Description:
The "time created" timestamp was needed for auditing
purposes, which was in fact present in the implementation, but wasn't
visible to DTL. This change makes it visible.
Category: Languages.COS
Platforms: All
DevKey: GGC455
Summary: Correct ptrie arrays under boundary conditions
Description:
This corrects a situation where $ORDER or $QUERY
would return incorrect results under certain boundary conditions, for
example, finding the first item in a newly created local array.
Category: Networking.ECP
Platforms: All
DevKey: GK883
Summary: Unexpected routine or class load error across ECP
Description:
This correction fixes an error where a class load or
save across ECP may raise an unexpected error (<ROUTINELOAD> or
<STORE>), when the routine object global cache is empty and the
load/save references a routine > 32656 chars.
Category: Object
Platforms: All
DevKey: MC1159
Summary: Redefine /checkuptodate qualifier in Export group to make it compatible
Description:
This change redefines /checkuptodate qualifier in
Export group to make it compatible with that of the Compiler group,
but still accepts the older values of 0 and 1.
Category: Object.LanguageBindings.LCB
Platforms: All
DevKey: JMM414
Summary: LCB correctly read %Time fields that were stored via SQL
Description:
This change fixes two problems with the the
projection class for the Cache %Time datatype in the C++ binding and
Light C++ Binding.
The first problem was that
d_time::operator!=(const d_time&) always returned true. The
second problem (in Light C++ Binding only) was that it
stored d_time in a different format ("hh:mm:ss")
from the format used by SQL and other object APIs (which store time as
a string representation of the number of seconds elapsed since
midnite).
Thus, times stored by LCB could not be correctly read
by SQL, and vice-versa. With this change, times are stored in the
same format used by SQL, and can correctly read times that were stored
in either format.
Category: Object.LanguageBindings.MDS
Platforms: All
DevKey: JMM411
Summary: MDS correctly ignore interface field for which no actual type is provided
Description:
This change causes MDS to correctly ignore object
fields which are defined as interfaces, and do not have any actual
type specified. Prior to this change, MDS got an access violation
within MDSNodeReference.setTypeInfo if called for a class containing
such a field.
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: Object.Library
Platforms: All
DevKey: DLP2657
Summary: Object Library - add SELECTMODE parameter to %Library.Query
Description:
The SELECTMODE parameter can now be specified for
class queries of type %Library.Query. For these queries, SELECTMODE is
declarative and it is the responsibility of the query author to
properly format the column values according to the SELECTMODE
parameter setting. If that setting is RUNTIME, then the current runtime
SELECTMODE can be retrieved from $system.SQL.GetSelectMode().
The default value for SELECTMODE for queries of type %Library.Query is
LOGICAL. If existing queries are having problems with client software
and data formats then the existing query might have to be updated to
specify a different SELECTMODE value so that the values as formatted
by the query are properly recognized.
Category: SQL.GateWay
Platforms: All
DevKey: MIT1027
Summary: Avoid <SUBSCRIPT> error in JDBC Gateway if it was restarted
Description:
This change avoids a situation where
an attempt to restart the JDBC Gateway could result in a
<SUBSCRIPT> being generated.
Make SQL Adapter compensate for JDBC Gateway bug where $C(0) is returned when a LOB chunk should be empty
Category: Object.LanguageBindings.LCB
Platforms: All
DevKey: JMM414
Summary: LCB correctly read %Time fields that were stored via SQL
Description:
This change fixes two problems with the d_time class (the projection class for the Cache %Time datatype) in C++ binding and Light C++ Binding. The first problem was that d_time::operator!=(const d_time&) always returned true. The second problem (in Light C++ Binding only) was that Light C++ Binding stored d_time in a different format (a string in "hh:mm:ss" format) from the format used by SQL and other object APIs (which store time as a string representation of the number of seconds elapsed since midnite). Therefore, times stored by LCB could not be correctly read by SQL, and vice-versa. With this change, LCB now stores times in the same format used by SQL, and can correctly read times that were stored in either format.
Category: SQL.GateWay
Platforms: All
DevKey: TAP1041
Summary: Make SQL Adapter compensate for JDBC Gateway issue where $C(0) is returned when a LOB chunk should be empty
Description:
This change makes the SQL Adapter JDBC LOB logic
ignore $C(0) (Ascii NUL) if it appears as the sole content of a block
of data that is not the first block. This works around an error in
the lower levels of the JDBC Gateway that causes such a NUL character
to be returned if there is no more data after retrieving a full
chunk.
Category: SQL.ODBC
Platforms: Windows 64-bit
DevKey: JCN1177
Summary: Make sure kernel API calls use the same locale Code Page as C runtime library
Description:
This change corrects a situation in SQLServer on 64-bit Windows
where different code pages could be used for character translations
by the kernel and the ODBC driver resulting in "?" being
displayed for unrecogniized characters.
The change causes the regional setting defined as the code page for character
trranslations.
Note: This change only affects Windows applications that do not use
Unicode, and require ODBC to convert to Multibyte values.
Category: Studio
Platforms: All
DevKey: DVU2812
Summary: Fix problem loading package information
Description:
This change modifies the Studio client to support
loading package information by explicitly specifying the package name
when using %Dictionary.PackagDefinition.
Category: Studio
Platforms: All
DevKey: DVU2821
Summary: Remove unneeded calls to COM_ITNodeManager2::CheckClassIndexUpToDate
Description:
This change corrects a memory leak that occurred when importing a
large number of files in one operation.
Category: System
Platforms: All
DevKey: CDS1758
Summary: <WIDE CHAR> or invalid name with <SUBSCRIPT> or <UNDEFINED> error
Description:
When using private variables within a procedure, a
<SUBSCRIPT> or <UNDEFINED> error could be reported as
<WIDE CHAR> or could show an incorrect variable name in the
error text.
This situation is now corrected.
Category: System
Platforms: All
DevKey: GK882
Summary: Improved resource utilization during routine and class component loading
Description:
This change modifies Caché to load the
routine and object components in batch mode; after being loaded they
are cached in routine buffers and not used again. It also modifies
Caché to release the retained buffers after loading a routine.
Category: System
Platforms: All
DevKey: JLC1441
Summary: Fix handling of surrogate pairs in modal translations
Description:
This modification fixes a problem that could cause
an access violation on 64-bit Windows if an application tried to
submit a string with surrogate pairs for output translation with a
table that does not support this feature (for example, JIS instead of
JIS2004).
Category: System
Platforms: All
DevKey: SAP1375
Summary: Fix to clean daemon for freeing gfowner
Description:
This change causes the clean daemon to free gfowner
resource properly. Previously, the resource was not properly returned.
Category: System
Platforms: DECUNIX
DevKey: SAP1377
Summary: Fix SIGUSR2 handling
Description:
SIGUSR2 appears blocked on DECUNIX clusters. This
change restores its functionality.
Category: System
Platforms: HP-UX
DevKey: TRW890
Summary: Kill ISCAgent processes on HP-UX with -9
Description:
This change corrects a timing issue which prevents a single kill command
from killing both ISCAgent processes on HP-UX when sent a SIGTERM. The
remaining process was preventing the ISCAgent from being upgraded.
Category: System.Mirroring
Platforms: All
DevKey: JO2363
Summary: Resolve troubles with backup moving journal files to the alternate directory when the disk is full
Description:
This change corrects several known problems that
occurred if the backup ran out of space to store a journal file from
the primary system.
Category: System.Mirroring
Platforms: All
DevKey: JO2370
Summary: Adjust console log severity of mirror [dis|re]connect messages
Description:
When the system is configured to do so, mirroring generates the
following email level alerts (severe log messages) for:
- a node becomes the primary
(in the future this could be modified to exclude situations where the
backup becomes the primary after the primary is shut down gracefully,
but for now Caché generates an alert any time a node becomes the primary.)
- backup disconnects from primary and fails to
either become the primary or reconnect as a backup
- system starts up and fails to become the primary
or a backup. This includes async members which fail to connect to the
primary at startup.
In addition there are less severe cconsole messages for:
- backup disconnects (warning)
- backup connects (info)
- backup demoted from active (warning)
- backup promoted to active (info)
Category: System.Mirroring
Platforms: All
DevKey: JO2372
Summary: Include ping answers when tracking time of last contact with primary
Description:
A problem has been resolved where a backup might
fail to take over when agent contact required is set to no and the
mirror is idle at the time of the failover.
Category: System.Mirroring
Platforms: All
DevKey: SML1255
Summary: Don't purge primary node's mirror journal files if they are needed by the backup node
Description:
This change fixes a situation where when the backup
node has been down more than 14 days, the primary node might purge
the journal files needed by the backup node to catchup.
Category: System.Mirroring
Platforms: Oracle Solaris
DevKey: VRN006
Summary: Fix real/effective group/user ID retrieval
on Oracle Solaris, and VIP assignment on SunOS
Description:
This change corrects a problem in adding and deleting VIP scripts on
SunOS where the check for running as root was improperly done.
Category: Utilities.Configuration
Platforms: All
DevKey: STC1864
Summary: Save memlock parameter correctly
Description:
When modifying the LockSharedMemory or
LockTextSegment parameters in the management portal and setting the value to True,
the values written to the memlock= parameter in the CPF file were
incorrect. This could cause the memory to not be locked upon a
subsequent restart of the system. This has been corrected.
© 2010, InterSystems Corporation. All rights reserved.