|
|
|
InterSystems Documentation
|
|
Caché Maintenance Kit Release Notes Archive
|
Welcome and thank you for using Caché.
The current maintenance kit is Caché 2008.2.2.
This document is only part of the available maintenance kit documentation.
The full set of documents is available in the
\Docs subdirectory of your Caché installation
as follows:
-
Late-breaking information about the release: \relnotes\cache\readme.1st
-
Release notes for Caché 2008.2.2: \relnotes\cache\relnotes.htm
-
Release notes for the previous maintenance kits since 2008.2: \relnotes\cache\prenotes.htm (this document)
This document is a historical archive of changes in Caché since the original 2008.2 release, but prior to the current maintenance kit.
Changes unique to the current maintenance kit are described in relnotes.htm.
Note: If you have installed Caché in the course of installing Ensemble,
please also see the release notes for the
Ensemble installation. These are in the \Docs directory
under the subdirectory \relnotes\ensemble.
This document includes the following sections:
InterSystems advises all users to recompile their Application classes as part
of the upgrade process so as to take advantage of all the performance
improvements as well as other changes that may affect them in this release.
Anyone
upgrading from a Caché release at or before 5.0
will need a new license key.
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 Web site.
Users should check this list periodically to obtain the latest information on
issues that may have an effect on the operation of their site.
As a convenience to our users, InterSystems provides
online access to documentation for recent product versions at the
InterSystems Web site.
From the home page’s
Products menu, choose
Caché. On the Caché page, choose
Product Specifications & Documentation, then
Documentation.
Then select the specific version and type of documentation you are interested in.
Version 2008.2.1 of Caché included the following changes:
- CSP.Gateway
- Languages
- Languages.COS
- MgtPortal
- Networking.ECP
- Object.C++
- Object.CacheProvider
- Object.Class Compiler
- Object.LanguageBindings
- Object.Macro Preprocessor
- Object.Stream
- Object.XML
- Security
- SQL
- SQL.Query Processing
- Studio
- System
- System.Lock
- Utilities
- Zen
Category: CSP.Gateway
Platforms: All
DevKey: CMT688
Summary: Fix a problem in the code responsible for replacing 'old with new' session IDs in previously cached pages
Description:
When CSP caches a page returned from Caché it is usually
the case that the page is cached with the session ID (either as a
CSPSESSIONID cookie or CSPCHD form variable) of the user that first
requested the page. On subsequent retrievals of this page
from the cache for other users, CSP must replace all instances of the old
session ID with the ID of the current user accessing the page.
This change corrects a problem where the replacements were done even
in places where they should not be, such as embedded Javascript in the
page.
Category: Languages
Platforms: PPC
DevKey: SOH098
Summary: Fix ppc incnum/decnum
Description:
In the 2008.2 releases of Caché, the
optimizations for (a+1) and (a-1) do not work on 32-bit Power PC
systems when A is an expression of the IEEE double-precision binary
floating-point type. The compiler special cases increment-by-1 and
decrement-by-1 and evaluates these operations using special routines
written in assembly language. The 32-bit Power PC version of these
assembly language routines do not properly implement
increment/decrement of $DOUBLE values.
Category: Languages.COS
Platforms: All
DevKey: CDS1470
Summary: Fix crash after empty ZLOAD
Description:
An argumentless ZLOAD with an immediate end
of file leaves the partition empty. In this situation an access violation could occur
on a subsequent DO command. This is now fixed.
Category: Languages.COS
Platforms: All
DevKey: SOH091
Summary: Fix $LISTSAME with string and negative integers
Description:
This change corrects a problem where $LISTSAME could
give erroneous results for lists involving strings and negative
numbers.
Category: MgtPortal
Platforms: All
DevKey: YSD2066
Summary: MgmtPortal - Task Manager - Add prompts Start Date and End Date for Daily definition
Description:
On the Task Manager wizard, new prompts have been
added for Start Date
and End Date for Daily definition, similar to that of Monthly and
Monthly by Day.
The default for the Start Date is today.
Category: MgtPortal
Platforms: All
DevKey: YSD2082
Summary: MgmtPortal - Task Manager - Add prompts Start Date and End Date for Weekly definition
Description:
On the Task Manager wizard, new prompts have been
added for Start Date
and End Date for Weekly definition, similar to that of Monthly and
Monthly by Day.
The default for the Start Date is today.
Category: Networking.ECP
Platforms: All
DevKey: GK668
Summary: Modified the ECP server session shutdown to cleanup any queued background pre-fetching.
Description:
The ECP server shutdown has been changed to cleanup any queued
pending pre-fetch requests.
If not cleared properly, in very, very rare
conditions, the ECP server may receive a msg while the same
session's write daemon is shutting down, and leave the background
pre-fetcher in a confused state.
Category: Networking.ECP
Platforms: All
DevKey: GK669
Summary: Removed the journal file number/count dependency in the ECP server
Description:
To provide its guarantees, the ECP server depends on
the durability of its activities. Durability tracking was dependent
on the journal file number, which is not updated and tracked in
parallel with the journal offset. This change modifies the durability logic not to
depend on the journal file number.
Category: Object.C++
Platforms: All
DevKey: IYB553
Summary: Correct conversion error between client and server
Description:
This change corrects an error in exchanging strings between the client and server.
When receiving strings from the server, the C++ binding now converts them to Unicode unless the client has
the same locale. When sending strings to the server, the binding now converts strings to Unicode and
then to the server locale, unless the client and the server have the
same locale.
Applications that didn't check the d_string type descriptor (get_type()) may need to check it now in order to
interpret the data correctly.
Category: Object.CacheProvider
Platforms: All
DevKey: IYB556
Summary: CacheActiveX, put back string to number conversions when returning data from running a method
Description:
This change converts strings back to numbers when they are returned
from methods. Previously, this was not done in all circumstances.
Category: Object.Class Compiler
Platforms: All
DevKey: MAK2415
Summary: Remove class compiler dependency on the collation of '~' symbol
Description:
The class compiler had a dependency on '~' collating
in a certain order which was not true on a specific Czech locale. This
caused an error like:
ERROR #5355: Method generator dependency unresolved: ,,,,,
ERROR #5030: An error occurred while compiling class User.Test
when compiling a class.
This has been changed so that the code now uses an integer value which will
always collate the same way regardless of locale.
Category: Object.Class Compiler
Platforms: All
DevKey: MAK2472
Summary: When normalizing class names in a generator method use the import list from current class and not origin
Description:
When the class compiler processes something like ##class(Name).Method(),
it normalizes this classname based on the import list or the origin of
this method, that is, the class where this method was defined.
However,
generator methods are treated as if they were implemented in each subclass. So
this changes
the compiler to normalize names in this case relative to the current
class
rather than the class where this generator was initially
defined.
Category: Object.Class Compiler
Platforms: All
DevKey: MAK2496
Summary: Dynamic and SqlRoutinePrefix keywords were no longer used but should still be able to be imported
Description:
The class keywords, Dynamic and SqlRoutinePrefix, are
no longer used, but this change still allows them to be imported in
XML files.
Category: Object.LanguageBindings
Platforms: All
DevKey: IYB545, IYB548
Summary: %SYS.BINDSRV bug fix in output redirection
Description:
When sending the cached output in a redirection, an error could occur
if the redirection was executed in a context that made bindserver
variables unavailable. This has been fixed.
Category: Object.Macro Preprocessor
Platforms: All
DevKey: DPV3308
Summary: MPP: Do not pre-expand include files that have #execute in their code
Description:
A problem has been corrected where an include file
was stored in a precompiled state but the include code contained a
#execute MPP directive that needed to be executed for each routine
where the
include file was used.
Category: Object.Stream
Platforms: All
DevKey: MAK2485
Summary: <prop>GetObject for new stream classes was not returning the correct OID
Description:
If a class defined a property of type
%Stream.GlobalCharacter or %Stream.GlobalBinary and then called the
<prop>GetObject method to return the stream OID, the OID was
not correctly formed. This caused the delete of a stream
to silently fail in those
cases where it used the OID from <prop>GetObject to call %Delete on
the stream class.
This has been corrected.
Category: Object.XML
Platforms: All
DevKey: MXT1091
Summary: Fix bug: Canonicalize method of %XML.Writer loses definition of multiply-defined prefix
Description:
This change makes sure that the element prefix is
always defined
and thus fixes an error
in the Canonicalize method of %XML.Writer that lost the
element prefix when there were multiply-defined prefixes.
Category: Object.XML
Platforms: All
DevKey: MXT1092
Summary: Fix XML Canonicalization bug which causes invalid signing
Description:
This change corrects
a signing error with elements that have a prefix different from
that of the default namespace defined in that element. The symptom of
the error was extra
xmlns="..." in child elements.
Category: Security
Platforms: All
DevKey: STC1485
Summary: Fix <SUBSCRIPT> error in Security.Applications.Modify() during install
Description:
This changes fixes a problem with a <SUBSCRIPT> error when calling
Security.Applications.Modify(). The error occurred when the list of target roles for the
application definitions exceeded 255 characters in length.
Category: SQL
Platforms: All
DevKey: DPV3306
Summary: MV/SQL: Correct FOR SOME %ELEMENT with multi-valued fields
Description:
A problem has been corrected where "FOR SOME %ELEMENT"
on a MV multivalue field might encounter a <LIST> error at
execution time.
Category: SQL
Platforms: All
DevKey: DPV3310
Summary: SQL: Foreign Keys and mapped packages
Description:
This change corrects the behavior of package mapping.
For example, assume
- namespaces exist called N1 and N2;
- there is a package PK in namespace N1, and it has been mapped to N2 via
package mapping;
- a package FK exists in namespace N2.
If there is a foreign key in N2.FK.Class that references N2.PK.Class,
the application
must make sure package FK is also mapped to namespace N1. Failure to
do so will cause
any SQL INSERT/UPDATE/DELETE or Object saves/delete on class table PK.Class in
namespace N1 to fail with a
<NOROUTINE> error.
Category: SQL
Platforms: All
DevKey: DPV3318
Summary: SQL: Correct literal type reporting when literals in SELECT and FROM clause
Description:
A problem has been corrected where some literal
values used in a SELECT query via xDBC may not report the correct
datatype value if literal values appear in both the SELECT clause and the
FROM clause of the query (such as in a sub-query in the FROM clause of
the main query).
Category: SQL.Query Processing
Platforms: All
DevKey: AK710
Summary: Move ANYOF collection element looping inline
Description:
This change optimizes the processing of queries involving arrays of
elements.
The processing for the elements was moved to be inline rather than
processed in routine calls.
Category: SQL.Query Processing
Platforms: All
DevKey: AK711
Summary: Convert some OR to IN after parsing
Description:
This change corrects the handling of a condition of
the form:
to avoid causing a <FRAMESTACK> error when it
contains hundreds of terms.
Category: SQL.Query Processing
Platforms: All
DevKey: AK718
Summary: Fix IDKEY value order in old OR optimization
Description:
This change corrects an error in the handling
of queries in the style generated by MS/Access. Such queries
contained conditions in the WHERE clause that occurred in an order different from the
field order of the row. Under some circumstances,
this caused incorrect code to be generated for the query.
Category: SQL.Query Processing
Platforms: All
DevKey: JLF180
Summary: Check for FROM clause correlations in subquery transformations
Description:
This change corrects an error that can occur with
FROM clauses and subqueries. Under some circumstances, queries
involving nested IN queries within WHERE clauses in conjunction with HAVING clauses could disable
important optimizations.
Category: Studio
Platforms: All
DevKey: DVU2434
Summary: Include MAINTVERSION in calculation version number
Description:
Studio was calculating version based on MAJORVERSION
and MINORVERSION. This caused a problem in connecting to 2008.2.1.
The calculation has been corrected so that it now satisfies the
requirement
that the client should have a
version not lower than the server.
Category: Studio
Platforms: All
DevKey: JN708
Summary: Fix wrong byte count in utlAutoBSTR::AsAString(), AsXString()
Description:
This change fixes the methods AsAString() and
AsXString() used by Studio to determine the length of a string to be
converted. Prior to this, under some circumstances,
calculation could result in an access violation.
Category: Studio
Platforms: All
DevKey: RAW771
Summary: Studio editor: printing: extra blank page is printed at end
Description:
Beginning with 2008.1, Studio printing added
an extra blank page at the
end of a print job.
This is now fixed.
Category: System
Platforms: All
DevKey: GK667
Summary: Re-enabled 2K database float support which was disabled accidentally
Description:
This change re-enables support for float-point that was disabled
accidentally for 2K databases. The symptom of the problem was that
errors
occurred when attempting to KILL a floating-point node in a 2K database.
Category: System
Platforms: All
DevKey: JLC1223
Summary: Add missing table descriptors to NLS files
Description:
This change adds two missing cp1250 table descriptors that
prevented 8-bit locales based on this character set (for example, csw8, plw8,
huw8) to be installed.
Category: System
Platforms: All
DevKey: JLC1230
Summary: Avoid potential <WIDE CHAR> error during NLS upgrade
Description:
This change avoids a potential <WIDE CHAR>
error during the NLS phase of Caché upgrades running on 8-bit locales
that use non-Latin1 character sets such as CP1251-based Russian (ruw8).
Category: System
Platforms: All
DevKey: JLC1231
Summary: Allow digits in custom locale names
Description:
This change allows digits in the middle characters
of locale names (for instance, "yt8w"). These were prohibited by
^NLS, but could be produced by cnls.exe in older versions and
therefore are valid.
Category: System
Platforms: All
DevKey: JO2250
Summary: Correct internal stack violation when loading routines > 65311 bytes
Description:
This change corrects an internal stack management problem when loading a
routine larger than 65311 bytes.
Before the change this situation could lead to the stack overwriting
other memory structures which could, in turn, lead to memory exceptions and
process dumps.
This issue occurs on any system where a process loads a
routine larger than 65311 bytes more than 255 times.
Category: System
Platforms: OpenVMS
DevKey: RFD412
Summary: Fix terminal margin handling for VMS Itanium
Description:
The 'margin' parameter of the terminal USE command
(e.g. USE 0:(270) ) was handling values >255 differently on OpenVMS
Alpha and Itanium. The documentation says "Values from 1 to 255
set the right margin for output; any other value disables the right
margin".
However, on OpenVMS Alpha, Caché handled values up to 511. On OpenVMS
Itanium, Caché internally truncated the value to one byte,
essentially acting as a #256 on values between 255 and 512.
This change makes OpenVMS Itanium act like OpenVMS Alpha.
Category: System
Platforms: All
DevKey: SAP1112
Summary: Correct startup test lock
Description:
A callin program that tries to start an instance
before the instance is fully initialized locks the instance and prevents startup
while the callin program exists.
This change corrects that situation.
Category: System
Platforms: All
DevKey: SML1090
Summary: Fix missing database protect checking in reverse order
Description:
This change fixed a database security hole that
allowed a user who did not have access to a global to successfully
execute a $ORDER on such a
global.
Category: System.Lock
Platforms: All
DevKey: SML1086
Summary: Fix ECP lock recovery might casue inconsistent lock tables between client and server.
Description:
This change fixes a possible lock table
inconsistency between client and server when an ECP server shuts down
and
is
restarted.
In this situation, some "cancelled" locks might stay in the client's lock table
even though they did not exist in the ECP server.
This problem exists on big
endian platforms.
Category: Utilities
Platforms: All
DevKey: STC1467
Summary: Fix index corruption when using %R to compile
Description:
This change corrects a problem
where a missing "^" before a reference to rINDEX caused
Caché to rebuild the routine index
incorrectly with a bad length.
Category: Utilities
Platforms: All
DevKey: STC1491
Summary: Fix %ER deleting errors when default of "NO" is taken
Description:
This change corrects a situation where the default answer of "NO"
might be interpreted as "YES" in %ER.
Category: Utilities
Platforms: OpenVMS
DevKey: STC1501
Summary: Let Backup.General.ExternalThaw in if switch 13 is set
Description:
This change allows Backup.General.ExternalThaw() to complete in an
OpenVMS cluster environment. Prior to this, it would hang.
Category: Zen
Platforms: All
DevKey: JMD487
Summary: Extra columns displayed within tablePane
Description:
This change corrects an error where extra
columns may be displayed in Zen table panes under certain
circumstances. This can happen when (1) dataSource is set to "columns", (2)
there are more columns in the source data than there are columns
defined by the tablePane, and (3) table uses "snapshot" mode.
Category: Zen
Platforms: All
DevKey: JMD488
Summary: Correct an issue where the Zen calendar component may show the wrong date
Description:
If the current day is the 31st of the month, and you
select a date in a month with less than 30 days, then the calendar
will display the wrong month.
This is now corrected.
Category: Zen
Platforms: All
DevKey: JMD489
Summary: Correct an issue where the Zen calendar has trouble with daylight savings time
Description:
This corrects an error where client is using
daylight savings time, close to the end of the day the date used
by calendar may be off by one day.