-
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:
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
- Installation.Windows
- Languages.COS
- Networking.ECP
- Object.DotNet
- Security
- System
- System.Callin/Callout
- System.Licensing
- System.Mirroring
- System.Monitoring
- Zen
Category: CSP.Gateway
Platforms: All
DevKey: CMT914
Summary: Resolve a bad pointer reference in the function responsible for destroying mutex objects
Description:
This correction resolves a bad pointer reference in the function
responsible for destroying mutex objects. The problem corrected would have
disproportionately affected state-aware sessions since these use mutex
locks to implement request serialization.
Category: Installation.Windows
Platforms: All
DevKey: ALE2028
Summary: Correctly apply WIJ on upgrade on Windows
Description:
Windows installation was trying to apply the WIJ
(Write Image Journal) before Caché was stopped. As a result,
the WIJ was not applied and installation could fail when a custom WIJ
directory was used in the original instance.
Category: Languages.COS
Platforms: All
DevKey: GGC509
Summary: Correct ptrie subscript corruption
Description:
This change corrects a problem where the subscript of an array may be
become corrupted. The circumstances are rare and involve the encoded
form of the subscript being of a different type than the unencoded
form,
as well as having the subscript be killed and then re-inserted.
Category: Networking.ECP
Platforms: All
DevKey: GK930
Summary: Long Unicode strings across ECP may overflow the large string stack when fetching from a different endian db-server
Description:
This change corrects a problem that could cause an overflow on the
string stack when fetching Unicode strings over ECP where the
server and client differ in their endianness.
Category: Object.DotNet
Platforms: All
DevKey: JCN1201
Summary: Use "." as decimal separator in foreign locals
Description:
Belgian and other foreign locales use "," as a
decimal separator, which causes problems when sending parameters to
Caché requiring "." as a decimal separator. This is now fixed.
Category: Security
Platforms: All
DevKey: STC1942
Summary: Don't allow $SYSTEM.Security.AddRoles() be called when ZINSERT active
Description:
Previously a user could subvert the
$SYSTEM.Security.AddRoles() mechanism and gain access to unauthorized
roles at the programmer prompt. This has been
fixed by this correction.
We now disallow adding roles when a ZINSERT has been made into the user's routine call stack.
Category: Security
Platforms: Solaris
DevKey: WDS395
Summary: Eliminate MD5* function name collisions
Description:
The Caché kernel contained internal implementations of the functions MD5Init(), MD5Update(), and MD5Final().
The InterSystems function MD5Final() had a signature (argument list)
that did not match that of the reference implementation in RFC 1321.
Solaris includes implementations of MD5Init(), MD5Update(), and
MD5Final() that do match the reference implementation. Solaris system
functions use these functions internally.
In the Caché kernel, these references resolved to our implementations
rather than to the Solaris ones, resulting in an argument stack
mis-match.
This has now been corrected.
Category: System
Platforms: X86
DevKey: CDS1904
Summary: Multiply <MAXNUMBER> error not caught by TRY/CATCH on x64
Description:
If a multiply operator near the start of a TRY block
results in a <MAXNUMBER> error, the error may not be caught by
the CATCH block on a 64-bit platform. This is now correctly
handled.
Category: System
Platforms: All
DevKey: JLC1480
Summary: Fix crash in $zcvt(string,"I","HTML")
Description:
This change fixes a problem in
$ZCVT(string,"I","HTML") that could cause either a
<TRANSLATE> error or a crash, depending on the platform and on
other circumstances. The problem happened when the source string
ended on a numeric entity without the terminating ";"
(e.g. " ") but the memory position immediately after it did
contain a garbage byte with ";". The problem affected not only
$ZCVT() but also HTML translations done during device input.
Category: System
Platforms: All
DevKey: JLC1481
Summary: Fix pattern match table for CP1252
Description:
In locales based on character set CP1252, two characters had the wrong pattern match attributes.
The fixed behavior is:
$C(215) ?1P (multiplication sign)
$C(223) ?A and ?1L (small letter sharp S)
Category: System
Platforms: All
DevKey: JLC1488
Summary: Fix buffer overflow in xltbyte2str()
Description:
This change fixes a potential buffer overflow that
could happen in rare circumstances when outputting strings with
non-ASCII characters to TCP devices using the UTFJS (UTF-8/JavaScript)
translation.
Category: System
Platforms: OpenVMS
DevKey: JO2432
Summary: Don't create cache.ids file for -cd (single user instance) on OpenVMS
Description:
This change corrects the unnecessary creation of a
file in single-user mode on OpenVMS.
Category: System
Platforms: All
DevKey: SAP1435
Summary: Sporadic failures of daemons causes hung instances
Description:
There are at least four related cases of startup
hangs. In all cases, one of two daemons was found to be absent
(that is, had become <defunct>) when startup hung.
This change corrects a situation where the daemons are exiting
prematurely in the control process daemon creation sequence, because they are the
two that attempt to obtain a lock on the <instance>/bin/clock
file.
Category: System.Callin/Callout
Platforms: All
DevKey: SAP1459
Summary: Fix session hang doing $ZF(-1,"command") where the command is an error in the child
Description:
In 2010.1, a callout to a utility (for example,
Novell Mono) which passes an invalid command can result in a hang of
the child process, and consequently the Caché session to hang.
Now this will be detected and the user given an opportunity to abort
the child process.
Category: System.Licensing
Platforms: All
DevKey: RJW1885
Summary: Exception processing %SYSTEM.License:ProcessList query
Description:
Under certain circumstances the %SYSTEM.License:ProcessList query could encounter an exception, in particular if it is run while a process is running that was started with the emergency diagnostic login argument (-B).
Category: System.Mirroring
Platforms: All
DevKey: JO2434
Summary: Don't require journal files which have been validated by the other node
Description:
This change resolves a problem where a mirror member
may fail to become either the primary or the backup because it has
purged some journal files before it had a chance to verify that they
contained valid ends. The validation code has been enhanced so that
the instance understands that validation of those files is no longer
required.
Category: System.Mirroring
Platforms: All
DevKey: SML1337
Summary: Fix <UNDEFINED> error when journal file did not have rollback point
Description:
If the rollback journal file did
not have the transaction processing rollback point recorded
in its header, it logged a message in cconsole.log with the wrong
variable name. This is now fixed.
Category: System.Mirroring
Platforms: All
DevKey: SML1352
Summary: Avoid long scanning for journal file end when backup node connects to primary node
Description:
After the backup node has shut down and then restarted,
the backup node might fall behind the primary when there are lots of
journal records within the same mirror journal file (current journal
file). This may cause the backup node to take so much time finding the
end of the journal file that it could cause the mirror connection to
time out. As a result the backup could not connect to the primary
until the primary did a journal switch.
This condition has been fixed.
Category: System.Monitoring
Platforms: All
DevKey: SAP1434
Summary: An unexpected error in Monitor causes further errors
Description:
This change corrects a problem where an unexpected error in the system
monitor
caused a cascade of other spurious errors.
Category: Zen
Platforms: All
DevKey: SAM131
Summary: Correct defect in multiSelectSet initialization code
Description:
The multiSelectSet widget had a defect in its
initialization code that could manifest itself if the widget was being
dynamically created or updated from the server side.
The widget would behave fine for an initial value that was a singular
value but would fail to properly check off options if its initial
value is a comma-separated string of values. This resulted in visual
artifacts where the value of widget on record was not properly
reflected on the display and was highly undesirable.
This change traps and corrects this condition, ensuring that the
rendering of the value and the internal representation of the value
remain in sync regardless of how and when the widget was created.
© 2011, InterSystems Corporation. All rights reserved.