|
|
|
InterSystems Documentation
|
|
Caché and Ensemble 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
files: \relnotes\cache\prenotes.htm
and/or
\relnotes\ensemble\prenotes.htm
This document provides a list of the changes between versions
2008.2.5
and
2008.2.6
for Caché and Ensemble.
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.
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. This is accomplished by running the following commands in each
namespace where application classes reside:
Do $SYSTEM.OBJ.UpgradeAll()
Do $SYSTEM.OBJ.CompileAll("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 documentation.
You must also purge any cached
queries in any upgraded namespace by issuing the
command
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.
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.
-
Debugging
InterSystems also recommends recompiling routines and classes for
applications under development. This synchronizes the debugger with
the expected format of the compiled code.
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
- Ensemble
- Ensemble.DTL
- Languages
- Networking.ECP
- Object.Java
- Object.Library
- System
- System.Callin/Callout
- System.Journaling
- System.Lock
- System.Shutdown
Category: Ensemble
Platforms: All
DevKey: MC1016
Summary: Remove killing of ^ERRORS from Ens.Purge:PurgeAll
Description:
This change prevents the call to the PurgeAll
method of the Ens.Purge class from removing the error history. Users
who wish to clear this must do so explicitly by deleting the global, ^ERRORS
Category: Ensemble
Platforms: All
DevKey: MC986
Summary: Restore $tlevel in user error traps
Description:
This change corrects an error that did not properly adjust the
transaction level in error traps invoked during a transaction
rollback.
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 the 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: Languages
Platforms: Intel
DevKey: SJ2588, SJ2589
Summary: Fix a problem in assembly language optimization with addition
Description:
This corrects an error that occurred when adding two
numbers where:
- Each number consisted of 19 significant
digits.
- Each number had one digit after the decimal
point.
- The sum of the two numbers would not fit in 64 bits.
In this case, a <SYSTEM> or
other error wold result when trying to save or use the result.
Category: Languages
Platforms: All
DevKey: SJ2590
Summary: Fix problem on some platforms when converting 10 digit fractional numbers between 0 and .01
Description:
This fixes a problem with dealing with multiple
subscripts where:
- The subscript is a number between 0 and
.01.
- The value has an odd number of
leading zeroes before the first non-zero digit.
- There are 10 digits after the leading
zeroes.
- The value of the non-zero digits considered as an
integer lies between 1000000001 and 4294967295, inclusive.
- The value is encoded as a number
instead of as a string (that is .0001220703125 rather than
".0001220703125").
This only occurred on 32-bit
platforms that do not support 64-bit arithmetic.
Category: Networking.ECP
Platforms: All
DevKey: GK771
Summary: Recover app-server "Connection in Progress" state
Description:
ECP establishes its connection on the first
reference to any remote global. While establishing a connection,
if the ECP client daemon creation fails, it may leave the connection
in "in progress" state.
This change detects the errors associated with this
situation and attempts to recover from it.
It also attempts to
fix itself when daemon creation fails.
Category: Networking.ECP
Platforms: All
DevKey: GK778, GK779
Summary: Fixed long string recovery across ECP
Description:
This change fixes a rare condition where a
long string could be dropped or lost if the database server was restarted right
after the last data transmission, but before the journal became
durable.
It also fixes issues with long string SET command
recovery across ECP. If the server or connection fails in the middle
of a SET involving a long string, the assignment may fail with
<NETWORK> error
or the SET may be dropped altogether.
Category: Networking.ECP
Platforms: All
DevKey: GK780
Summary: ECP session cleanup to invalidate any queued activity
Description:
In rare cases, when the ECP work daemons cannot keep up with activity,
and there are many activities queued, the session that
originated the work in the background may go away.
It may also reconnect with leftover activity from the previous
session.
This modification prevents any old or stale work from being processed
after a disconnect (and/or reconnect)
by removing it from the work queue during session cleanup.
Category: Networking.ECP
Platforms: All
DevKey: GK788
Summary: Unicode strings are not converted to the ECP client endianness
Description:
Under very rare conditions, if
- The ECP server is a
different endianness than the application server;
- There is a SET in the process of being
propagatedto the client;
- The SET involves a
non-compact Unicode string;
- The block that the SET will modify has
arrived at the client;
then the cache may be updated with the wrong endian value.
Category: Object.Java
Platforms: All
DevKey: MAB836
Summary: Fix deadlock in collections for Full Java Binding
Description:
This change corrects a deadlock occuring between the
finalizer of
com.intersys.classes.CacheRootObject.releaseInternal()
and
com.intersys.cache.DatabaseWithReferenceMap.releaseFromMap()
when using connection pooling in TomCat.
Category: Object.LanguageBindings
Platforms: OpenVMS
DevKey: IYB627
Summary: Binding server, increased the buffer size to store variables for output redirection
Description:
This change fixes a memory corruption when the
binding server was used by Java on OpenVMS. The symptom was a
<NULL VALUE> error reported on %SYS.BINDSRV
Category: Object.Library
Platforms: All
DevKey: MIT927
Summary: Fix normalization code for %Currency and %Decimal
Description:
This corrects an issue where a number in $DOUBLE
format could be stored in these datatypes.
Category: System
Platforms: All
DevKey: SAP1197
Summary: If Event.Signal with message fails, the message is not deallocated
Description:
This corrects an issue where signalling a message
for an undefined event, or
undefined
process id will cause the event to be allocated but never used. This
could cause a memory leak.
Category: System
Platforms: All
DevKey: SAP1221
Summary: Correct message timeout handling
Description:
This change corrects an error in handling message timeout conditions
that can occur when starting a remote ECP database from the
Management Portal.
Category: System
Platforms: All
DevKey: SJ2577
Summary: Fix core dump with $zu(70,4,"")
Description:
This fixes a problem where a core dump can occur when running INTEGRIT.
Category: System
Platforms: All
DevKey: SML1165
Summary: Namespace re-activation protection
Description:
This change fixed a possible <NAMESPACE> or
<DIRECTORY> error that can occur if the system is re-activating the namespace
table while a namespace is being edited.
Category: System
Platforms: All
DevKey: SOH120
Summary: Fix loop bound in LocToUTC, $ZU(193,xxx,1)
Description:
$ZUTIL(193,x,1) converts date to UTC. If the date
represents the first day of the year, where (year mod 4) = 1, the result
might be incorrect. This error has been fixed.
Category: System.Callin/Callout
Platforms: OpenVMS
DevKey: JO2290
Summary: $ZF() for VMS was calling routines with instead of without privs
Description:
This changes corrects a problem where $ZF functions were calling out
to external routines at the wrong privilege level.
Category: System.Journaling
Platforms: All
DevKey: HYY1461
Summary: Address a case of WD hang
Description:
This change corrects a situation where, in rare cases, the write daemon could hang if
it attempted to start while license-related queries were being run.
Category: System.Lock
Platforms: All
DevKey: SML1168
Summary: Fix ECP recovery could send extra lock request on lock_pending lock
Description:
This change corrects an ECP lock inconsistency during ECP
recovery when ECP server restarted.
Category: System.Shutdown
Platforms: All
DevKey: SAP1128
Summary: Callin longjumps to wrong place (outside the current entrypoint) after shutdown
Description:
This corrects a problem that can occur when Caché is shutdown
while a callin invocation is active. Control returns to the callin
program, but not at the point where the callin was made. Further
execution is unpredictable.
If the callin program was updating a global when the forced return was
made,
there is the added possibility of database
corruption.