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 routine 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
- Caché Direct
- CSP.Gateway
- Ensemble
- Ensemble.HL7/EDI
- Ensemble.ManagementPortal
- Installation
- Installation.UNIX
- Installation.Windows
- Networking.ECP
- Object.LanguageBindings
- SQL.Query Processing
- Studio
- System
- System.Callin/Callout
- System.I/O
- System.Journaling
- System.Licensing
- System.Lock
- Terminal
- Utilities
- Utilities.Configuration
- Zen.ZenReports
Category: Caché Direct
Platforms: All
DevKey: RAW821
Summary: Caché Direct client: recognize user cancel in server dialog, and report properly
Description:
If the user cancels in the server selection dialog,
the error code was misreported. This has been fixed.
Category: CSP.Gateway
Platforms: All
DevKey: CMT781
Summary: Improve the protection in, and resilience of, the code responsible for determining the requested file type in the Apache DSO modules
Description:
This change improves the protection in, and resilience of, the code
responsible for determining the requested file type in the Apache DSO
modules. It enables the CSP module to cleanly reject requests
destined to be processed by the WebLogic module (provided the 'CSP On'
directive is not specified for the path).
Category: CSP.Gateway
Platforms: All
DevKey: CMT787
Summary: Add protection to prevent the Gateway exceeding the current maximum file size in force for the Event Log file (CSP.log)
Description:
This change adds protection to prevent the Gateway exceeding the
current maximum file size in force for the Event Log file (CSP.log).
Failure to do this check can result in the CSPnsd process terminating
abnormally during normal operation and/or at
initialization (since it cannot write the startup entry in the
log).
Category: Ensemble
Platforms: All
DevKey: MC1016
Summary: Remove killing of ^ERRORS from Ens.Purge:PurgeAll
Description:
This change prevents the removal of errors
when ##class(Ens.Purge).PurgeAll() is called.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP888
Summary: Fix message browser support for body property queries with . and () in them
Description:
This change quotes the characters ".", "(", and ")" in Message
Browser generated queries against message body fields. This allows
sub-properties and array elements to be specified without generating
invalid SQL field names.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP929
Summary: Improve HL7 Parser's handling of corrupt segment data
Description:
This change prevents an infinite loop that would
occur if HL7 input was malformed and random data in the message happened to contain
the sequences "MSH", "BHS" or "FHS" which the HL7 parser looks for in
attempting to recognize HL7 data with unspecified "Flexible"
framing.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP934
Summary: Fix use of $ZTime in X12 and EDIFACT NewReply... methods
Description:
This change fixes an error that resulted in invalid
time codes being constructed for timestamp fields in EDI reply
documents. The 4-digit time was always generated as "1708" instead of
the actual time.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: TAP908
Summary: Add support for SQL -> syntax in Message Browser for msg body persistent sub-properties
Description:
This change adds support for SQL -> syntax in the
Message Browser when using detailed filter conditions of type Body
Property. When the selected message body class has properties whose
type is a persistent object class, the Message Browser's Value
Selector popup dialog box shows the values of all the nested
sub-properties, with a dot ('.') separating them from their respective
main parent properties.
Formerly, selecting one of these nested sub-properties would cause
invalid SQL to be generated and thus cause a page error upon clicking
the Search button.
This change causes the Message Browser to generate SQL arrow
('->')syntax for references to such sub-properties, resulting in
SQL that is valid if the sub-property belongs to a persistent class
type.
This change also generates a valid SQL 'AS' name for the column
displaying the sub-property values. It does this whether the
sub-property is named using a dot separator or if it is named using an
arrow separator entered by hand.
Category: Installation
Platforms: All
DevKey: ALE1816
Summary: Do not allow to install Caché server on Windows if CPU does not support SSE2 instructions
Description:
Windows installation will now check for SSE2 support
in the underlying
CPU and will display a warning that only client components will be
installed. It will enforce a "client" setup role if the SSE2 instruction
set is not available.
Category: Installation.UNIX
Platforms: All
DevKey: TRW714
Summary: Avoid jam deletion of packages in the installer
Description:
Before this change, interrupting an install via
Ctrl-C on some Unix platforms could corrupt the install kit if it was
on a writeable file system. The interrupt behavior is now correct.
Category: Installation.Windows
Platforms: All
DevKey: ALE1834
Summary: Properly register mscomctl.ocx when any feature using it is installed
Description:
In previous releases, the "InProcServer32" default
registry value for all classes exported by mscomctl.ocx was not
populated when the "activex" feature was not installed. This isnow fixed and
this value is populated whenever the mscomctl.ocx component is
installed.
Category: Networking.ECP
Platforms: All
DevKey: GK771
Summary: Recover app-server "Connection in Progress" state
Description:
CP 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 a couple of issues with long string set 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 Q-ed 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's endian
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
propagated to 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.LanguageBindings
Platforms: All
DevKey: IYB627
Summary: Binding server, increased the buffer size to store variables for output redirection
Description:
This change corrects a situation
that caused memory corruption when the binding server was used by Java.
Category: SQL.Query Processing
Platforms: All
DevKey: AK740
Summary: Find correlated fields in noagf/lvtree search
Description:
This change corrects a situtaion where the SQL processor would ignore
fields that could be used to optimize the query processing when those
fields occurred in subqueries.
Category: SQL.Query Processing
Platforms: All
DevKey: AK759
Summary: Get uncollated field if collated needed
Description:
This change fixes a situation where an <UNDEFINED>
error could occur while running a query that involves collection
fields or when row-level-security is used.
Category: SQL.Query Processing
Platforms: All
DevKey: BJB426
Summary: Make sure %READERLIST is added to mt and mts array in pre parser
Description:
A problem has been corrected that would cause an
<UNDEFINED> error if you did an OUTER JOIN into a table that had
Row Level Security
Category: SQL.Query Processing
Platforms: All
DevKey: JLF301
Summary: Test and clear viewSpConds(joinLog) in removeUnnecessaryStreams
Description:
This devlog fixes an error that caused a
<SUBSCRIPT> error to be raised at prepare time when DISTINCT was
used in combination with an ON clause, as exemplified by this query:
SELECT DISTINCT b.id AS id
FROM sample.person b
LEFT OUTER JOIN sample.employee v ON b.id = v.spouse
LEFT OUTER JOIN sample.employee uv ON v.id = uv.id
AND uv.home_state =
(select office_state from sample.employee where v.id=uv.id)
Category: SQL.Query Processing
Platforms: All
DevKey: JLF310
Summary: Reduce max subscript length in buildCanonical to 85 characters
Description:
This change fixes an issue internal to the SQL
compiler where a string was stored that exceeded the maximum
subscript length on an array.
Category: SQL.Query Processing
Platforms: All
DevKey: JLF323
Summary: Restrict redirectRef to transform only val ("v") type operands
Description:
This change fixes a defect in SQL optimization
that, though rare, could
potentially occur in any moderately complex query resulting in
incorrect results.
Category: SQL.Query Processing
Platforms: All
DevKey: PVA192
Summary: Inhibit 'removal of unnecessary distinct' in cases likely to make performance worse
Description:
Certain quantified or EXISTS subqueries involving
aggregation within a FROM clause subquery of the given subquery could
have much worse performance in later releases compared to Caché 5.0.4. This
rare regression is fixed by this change.
Category: Studio
Platforms: All
DevKey: DVU2565
Summary: Changes to temporary dir name for class cache files
Description:
This correction changes Studio behavior on start up
to remove class cache files with different build numbers. These files
was caused a problem if two Studios from different builds were run
simultaneously in the same instance.
Category: Studio
Platforms: All
DevKey: MAK2750
Summary: CSP templates could run in the wrong namespace on initial page
Description:
Studio passes the namespace the Studio template page
should run in as a URL parameter on the initial page. This is then
stored in the %session object and used to set the
'RunNamespace'.
However, the code that then switched this page into
this namespace was not using the value passed in, but the value from
the %session.RunNamespace which was incorrect at
this point. This change uses the correct value.
It appears when you have password authentication this is
not a problem, but it does effect systems that are using the
Unknownuser.
Category: System
Platforms: Windows
DevKey: JLC1336
Summary: Fix unwinding information for narrow() on winx64
Description:
This change fixes a problem in Caché for Windows/x64
Unicode that could cause the process to crash if the user tried to set
a global whose name included a wide character. The correct behavior is
to get a <WIDE CHAR> error.
Category: System
Platforms: OpenVMS
DevKey: JO2298
Summary: Update ld_sys_data() for OpenVMS 8.3 so we correctly handle terminal disconnection events
Description:
Some internal OpenVMS data structures changed between
OpenVMS 8.2 and 8.3. This in turn prevented the Caché handler which deals with
process termination when a connection is lost (eg. telnet window is
closed) from properly dealing with this condition. The
result would be a process stuck in Caché in a COM state at priority
zero. This change resolves this problem.
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: OpenVMS
DevKey: SML1143
Summary: Work around a OpenVMS compiler optimization bug
Description:
This correction fixes a possible access violation crash during
Caché upgrade on OpenVMS alpha platform if an empty 'Z' routine exists in
the CACHESYS database.
Category: System
Platforms: All
DevKey: SML1172
Summary: Fix cluster failover error
Description:
This changes correct a situation where a
new ECP master could hang while waiting for slave to establish the ECP
connection.
Category: System.Callin/Callout
Platforms: All
DevKey: JO2290
Summary: $ZF() for OpenVMS 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.I/O
Platforms: All
DevKey: RFD484
Summary: Fix <ACCVIO> when a process HALTs with an open XDEV device
Description:
This corrects a situation where a process that HALTs could generate
an access violation error if there were XDEV devices open at the time
the process stopped.
Category: System.Journaling
Platforms: All
DevKey: HYY1491
Summary: Fix journal restore when switch 10 is set
Description:
This submission addresses an issue that caused journal restore to
fail if switch 10 is set (e.g., as continuation from database restore
where switch 10 is set).
Category: System.Journaling
Platforms: All
DevKey: HYY1498
Summary: Fix journal restore with selected globals on Unicode systems
Description:
This change addresses an issue where journal restore with
selected globals on Unicode systems fails to restore the specified
globals.
Category: System.Licensing
Platforms: All
DevKey: RJW1752
Summary: Correct error in %SYSTEM.License.LicenseServerKeyList query
Description:
This corrects a situation that could cause the
%SYSTEM.License.LicenseServerKeyList() query to fail.
The
problem was reproducible the first time the query was run following
system startup, but could not be reproduced on subsequent
invocations.
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: Terminal
Platforms: Windows
DevKey: RJW1770
Summary: Caché Windows LAT daemon does not process config file settings
Description:
The [LAT] section of the config.cpf file is incomplete in Caché
versions 2009.1 and 2010.1. The System Management Portal does not
configure the advertised services (ServiceName, ServiceDescription,
ServiceRating). This change alters the LAT daemon (lat.exe) so it
reads its startup parameters from a lat.ini file in the installation
directory instead of from the cache.cpf configuration file.
Users can
copy the [LAT] section from an existing cache.cpf file into the new
lat.ini file or you can enter the information with a text editor.
The LAT service will be deprecated in Caché 2010.2.
Category: Utilities
Platforms: All
DevKey: STC1683
Summary: Handle $$$OSDelegatedAuthenticationFailed error correctly
Description:
When using OS authentication in combination with
delegated authentication and Caché Password authentication, if the
ZAUTHENTICATE routine returns the error
$$$OSDelegatedAuthenticationFailed, the security subsystem is supposed
to NOT continue on and prompt for username/pw using Caché
Authentication. It is supposed to audit the login failure, and
halt. This was not happening, the user was then getting prompted for a
username/pw.
This change implements the correct behavior.
Category: Utilities
Platforms: All
DevKey: STC1684
Summary: Update CPF Validator to allow for a "." in a routine mapping range
Description:
This change allows a valid routine name range
mapping to end in a ".". For example,
When converting to 2009.1.x, it could cause an installation to fail as
mappings could be generated in the CPF file to remove overlapped
mapping ranges.
Category: Utilities
Platforms: OpenVMS
DevKey: STC1694
Summary: Fix &SQL(SELECT * FROM %SYS.ProcessQuery) on OpenVMS
Description:
This change fixes a problem with using embedded SQL
on OpenVMS only when using it with the %SYS.ProcessQuery class. For
example, the embedded SQL command
&SQL(SELECT * FROM %SYS.ProcessQuery)
would fail on an OpenVMS system, but would work fine on
Windows and Unix.
Category: Utilities
Platforms: All
DevKey: STC1696
Summary: Fix com port login and mnemonic namespaces
Description:
This fixes a problem when logging in on a com port,
that the W /mnemonics commands would not work, and would cause a
<MNEMONICSPACE> error to occur.
Category: Utilities
Platforms: All
DevKey: STC1703
Summary: Fix CPF conversion problem with routine mappings
Description:
This fixes a bug in the CPF conversion routine where
if there is an overlapping routine mapping as follows:
The mapping is not converted to
%Z:%ZDTOOL==>DB2
%ZDTOOL==>DB1
%ZDTOOL.:%a==>DB2
Category: Utilities
Platforms: All
DevKey: STC1704
Summary: Hang maximum of 20 seconds on login failure
Description:
When Caché is configured with an invalid
login limit set to something other than 0, if a user account hits
this login failure limit, Caché would cause the process to
HANG for invalidloginattempts-loginfailurelimit seconds.
Thus for
every failed login attempt, Caché would hang 1 second longer, until a
valid login attempt would occur. On an account that could generate
hundreds of invalid login attempts, the hang could last a long
time. The code has been updated to hang for a maximum of 20
seconds.
Category: Utilities
Platforms: All
DevKey: STC1705
Summary: Handle end of % range mappings better
Description:
This updates the routine mapping conversion at the
end of the "%" range so that if you have a routine mapping such as:
%zquiet* -> DB1
%z* -> DB2
It will convert this to
%zquiet* ->DB1
%z:%zquiet ->DB2
%zquietu:&->DB2
rather than
%zquiet* ->DB1
%z:%zquiet ->DB2
%zquietu:.->DB2
When the last mapping was loaded it would be ignored by the system,
and the mappings would go to the CACHESYS database rather than
DB2.
Category: Utilities
Platforms: All
DevKey: STC1706
Summary: Process config file setting for Caché Windows LAT daemon
Description:
When converting to 2009.1, the configuration
settings for the Windows LAT daemon are now stored in the lat.ini file
rather than in the CPF file. Users who wish to customize their LAT
setting should now edit this file.
Category: Utilities
Platforms: All
DevKey: STC1708
Summary: Shell access no longer blocked by auditing
Description:
When auditing is turned on, and direct mode commands
are being audited, if the user entered a "!" at the command prompt,
they would be blocked from entering the Unix or OpenVMS shell. This
problem has been fixed.
Category: Utilities
Platforms: All
DevKey: STC1716
Summary: Activate all namespaces when Config.CPF.Activate() called
Description:
This change fixes a problem where, when calling the
API method Config.CPF.Activate(), not all the namespaces would get
activated, only the one last modified.
Category: Utilities.Configuration
Platforms: All
DevKey: SML1173
Summary: Fix remapping %* routine could get wrong DB location
Description:
This change fixes a situation where %-routine re-mapping could
result in the wrong destination database.
Category: Zen.ZenReports
Platforms: All
DevKey: JSL2880
Summary: Allow truly big Report Displays
Description:
This change corrects a situation where
a report display that compiled in
2008.2 failed to compile in 2009.1.