|
|
|
InterSystems Documentation
|
|
Caché Maintenance Kit Release Notes
|
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
Release notes from prior kits are combined in the file: \relnotes\cache\relnotes.htm
This document provides a list of the changes between Caché
2007.1.4
and Caché
2007.1.5.
Topics 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.
After each upgrade step, the following conditions apply:
- Routines
Unless specified in the upgrade notes for a specific release, routines
are upward-compatible and do not need to be recompiled. However,
customers may decide to recompile them to take advantage of new
features, improvements in generated code and the corresponding
efficiencies in runtime support.
- Classes, SQL, Projections, Proxy Classes
InterSystems requires that all classes be recompiled after an
upgrade. This is accomplished by running the following command in each
namespace where application classes reside:
Do $system.OBJ.UpgradeAll("c")
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 documentation.
-
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.
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 database
servers and application servers, InterSystems recommends that the
application servers be stateless and independent.
- A server is stateless when it treats each
request as an independent transaction that is unrelated to any prior
or future request. It does not need to preserve data for use in a
later transaction or worry about freeing it if a client dies in
mid-transaction.
- A server is independent when it does not
depend on the internal state of another application
server.
Assuming that these conditions are met, 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.
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 evaulating 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
- Installation.Windows
- Networking.ECP
- Security
- Studio
- System
- System.Licensing
- Utilities
- Utilities.Routines
Category: Installation.Windows
Platforms: All
DevKey: ALE1472
Summary: Detect Windows cluster environment on Windows 2008 server
Description:
Windows installation will detect when it is running
on a Windows 2008 or later cluster and install and register cluster
resources.
Category: Networking.ECP
Platforms: All
DevKey: GK652
Summary: ECP hang on ECP server recovery during long string set
Description:
In rare conditions, ECP recovery may hang if there
is an ECP server or network outage during a long string SET.
Category: Networking.ECP
Platforms: All
DevKey: GK654
Summary: Adjusted the ECP client heartbeat interval
Description:
This change adjusts the ECP application server
heartbeat interval to detect an idle system network outage more
accurately. A large number of async packets originated by the
database server may prevent it from sending heartbeats. Decreased the
app-server heartbeat interval to keep the db-server pending heartbeat
count more accurate.
Category: Networking.ECP
Platforms: All
DevKey: GK659
Summary: Ensure requests include correct database number after ECP recovery
Description:
In a very rare condition during the ECP server recovery window, if the database server failed
and if the remote databases were not mounted in the same order as at startup,
then ECP synchronous requests (that is, $DATA, $GET, $INCREMENT) that were being formulated
at the time of the database server failure might have referred to the incorrect database number.
This has been corrected.
Consequences of an incorrect database number vary (in part depending on the Caché release):
the ECP daemon may crash or the request may not be directed to the correct database. In the latter case,
unexpected application errors may result or (in rarer cases) incorrect data may be fetched.
Category: Networking.ECP
Platforms: All
DevKey: SML1026
Summary: Fix $D(g,v) over ECP with Unicode data returned bad data
Description:
This change fixes an error when using the
expression $DATA(global, target)
over ECP when the data in the global
has Unicode characters in it.
Without this fix, the value of <target>
could be set to an invalid string.
Category: Networking.ECP
Platforms: All
DevKey: TR995
Summary: Long string set across ECP may leave the ECP client cache out of date
Description:
Prior to this fix, if a string in excess of approximately 64Kbytes
were modified by the application server while the block which will
contain the string was being sent to the same client as a consequence
of an earlier request, the app server and database server would end up
with different versions of that block.
Category: Security
Platforms: Windows
DevKey: RJW1552
Summary: Console terminal user cannot write to cconsole.log on Windows 2008 server
Description:
An incorrect permission issue prevented a Cache Terminal
console login from writing messages to cconsole.log on Windows Server
2008. The problem was caused by a change in the default ACL on the
\intersystems\cachesys\mgr\cconsole.log file on Windows Server
2008. This is now fixed.
Category: Studio
Platforms: Windows
DevKey: RAW728
Summary: Studio editor: repaint loop in Japanese output window
Description:
When running Studio in a Japanese locale, when a
class is compiled the output window may go into a recursive loop
resizing slightly, which causes continuous repaints. This change
corrects this.
Category: System
Platforms: All
DevKey: CDS1395
Summary: Long strings were not correctly returned from $SYSTEM functions
Description:
This change corrects an issue where a function such
as $SYSTEM.Encryption.Base64Decode, when it returned a long string,
could cause a memory access violation.
Category: System
Platforms: All
DevKey: CDS1396
Summary: Prevent buffer overrun with encryption functions
Description:
When the output of Base64Decode was longer than 32K characters, the
length of an internal buffer was sometimes erroneously calculated
leading to a potential buffer overrun.
Category: System
Platforms: All
DevKey: CDS1404
Summary: Display full 64-bit pointers in cstat
Description:
This change corrects an issue where cstat displayed
pointers as eight hexadecimal digits. This showed only the lower-half
of the 64-bit pointer value. Cstat now displays the full pointer value.
Category: System
Platforms: All
DevKey: CDS1408
Summary: Fix access violation after <STORE> error
Description:
This change addresses an issue
with running an error trap after a <STORE> error. In some situations, the
trap routine was not loaded correctly, resulting in a memory access violation.
Category: System
Platforms: All
DevKey: CDS1409
Summary: Fix loop or access violation after exclusive NEW when partition is full
Description:
This change corrects an issue that could have arisen
when there was a small amount of memory available in the partition and an
exclusive NEW command was issued. In that situation, there was a possibility for the memory queue
to become corrupt, resulting in a CPU loop or an access violation at some
later point.
Category: System
Platforms: Solaris
DevKey: JLC1168
Summary: Fix Solaris core counting algorithm
Description:
This change fixes a problem in the algorithm that
counts the number of CPUs and cores on Solaris. In particular, when
running on some Sun Fire T1000 and T2000 configurations, counting an
incorrect number of cores could result in license restrictions.
Category: System
Platforms: All
DevKey: JLC1178
Summary: Detect end of destination buffer earlier in xlt functions
Description:
This change fixes a problem in the UnicodeLittle and
UnicodeBig NLS translations that, when used with fixed length READs in
TCP devices, could lead to some bytes being dropped in the connection
if the translation type were changed on the fly between different
records.
Category: System
Platforms: All
DevKey: JLC1183, JO2231
Summary: Change AL modules to do a GETTOP after COMX and set pap->at=0 when dropping an OREF
Description:
This change corrects a problem with reloading stack registers after
certain types of function calls involving OREFs. Because of this
Caché
could halt under seemingly random circumstances.
Category: System
Platforms: HP64
DevKey: JLC960
Summary: Fix comparison with floats on HP64
Description:
This change corrects an error in
comparing floating-point values. In certain rare circumstances, the
comparison of different types would not first convert them to
a common type.
Category: System
Platforms: UNIX
DevKey: JO2222
Summary: Fix Write Daemon hang after cachetemp filefull and filesystem expansion (on UNIX)
Description:
A problem was resolved on UNIX systems where
CacheTemp fills the disk and subsequently space is made available so
that the delayed writes can complete.
If Caché became idle for 5
minutes or more, the control process might incorrectly decide that the
write daemon was stuck because
the internal counts of how many blocks needed to be written had gotten
out of sync with the number of blocks which actually needed to be
written.
Category: System
Platforms: AlphaVMS, TRU64
DevKey: JO2228
Summary: Fix Clnotcnd bug on AlphaVMS and Tru64
Description:
A longstanding error affecting AlphaVMS and
Alpha/Tru64 platforms has been resolved.
The issue involved an internal stack discipline problem which,
under rare circumstances, could cause problems such as
spurious <STRINGSTACK> errors in extrinsic function
calls, or seemingly random access violations.
Category: System
Platforms: Windows (64-bit)
DevKey: JO2233
Summary: Disable LTCG for 64-bit Windows x86 builds
Description:
A problem has been resolved on 64-bit Windows
machines where loading a large number of XML files sometimes caused an
exception resulting in the closure of the terminal window.
Category: System
Platforms: All
DevKey: RFD370
Summary: Fix version check in CacheHung.sh for UNIX
Description:
This change corrects an issue in the CacheHung.sh script, which
displays different cstat options based on the Cach%eacute; version
number. The script did not properly recognize the year-based release
naming format.
Category: System.Licensing
Platforms: All
DevKey: RJW1546
Summary: Correct handling of maximum number of database allowed by license
Description:
A problem has been corrected that prevented creating
the permitted number of databases with an Entree license.
Category: System.Licensing
Platforms: All
DevKey: RJW1553
Summary: Ensemble infrastructure databases should not count toward licensed database limit
Description:
The built-in databases of an Ensemble installation
are no longer counted as part of the database limit for E2 (Entree)
and E4 (Elite) license keys.
Category: System.Licensing
Platforms: All
DevKey: RJW1556
Summary: Account for ensemble infrastructure databases when creating databases
Description:
Databases that implement the Ensemble product are no
longer counted toward the database limit imposed by E2 and E4 Ensemble
licenses.
Category: Utilities
Platforms: All
DevKey: STC1404
Summary: $SYSTEM.Security.AddRoles() cannot be called from programmer mode or debugger
Description:
The
function, $SYSTEM.Security.AddRoles() can no
longer be called from the command line, or from within the
debugger. Doing so could allow a user to inadvertently leave their
process with elevated roles when the call returns. Calling the method
in this way will fail to elevate the roles, and the
error
ERROR #940: Insufficient privilege for operation
will be returned as the value of the function.
Category: Utilities.Routines
Platforms: All
DevKey: NGA152
Summary: Add routine cache miss counter to mgstat
Description:
The counter for Routine Cache Misses has been added
to the mgstat monitor utility.