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
- CSP.Gateway
- DeepSee
- Ensemble.Adapter
- Ensemble.HL7/EDI
- Installation.UNIX
- Migration.TSQL
- Networking.ECP
- Object.CacheProvider
- Object.LanguageBindings
- SQL.Query Processing
- Studio
- System
- System.Cluster Specific
- System.I/O
- System.Journaling
- Utilities
Category: CSP.Gateway
Platforms: UNIX
DevKey: CMT736
Summary: Ensure that the contents of the Gateway's shared memory block are not reset in the event that Apache re-reads its configuration
Description:
This change prevents the reset of the contents of
the Gateway shared memory block in the case where an Apache web server
re-reads its configuration file.
The reset only occurs on UNIX-based Apache installations.
Category: CSP.Gateway
Platforms: All
DevKey: CMT800
Summary: Fix a problem that could result in the
Apache DSO module 'mod_csp' hanging and erroneously timing-out when
processing response messages containing empty content
Description:
This change fixes a problem that could result in the Apache DSO module
hanging and erroneously timing-out when processing response
messages containing no content body.
Category: DeepSee
Platforms: All
DevKey: DPV3542
Summary: DeepSee: Multiple corrections
Description:
This change represents multiple corrections to DeepSee involving:
- Changes in roles causing established filters and subject areas to
be lost
- Increases in the limitations on the number of globals that can be
imported
- Pivot table handling that prevented details from
being properly printed
- Premature session timeouts and subsequent logouts
and other miscellaneous fixes.
Category: DeepSee
Platforms: All
DevKey: DPV3564
Summary: DeepSee: Remove %BI.SOAP classes
Description:
This change removes the classes, %BI.SOAP, from the
product as a fix to a security hole.
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP917
Summary: Fix SQL adapter handling of JDBC return values from execProc() and execUpdate() and getUpdateCount()
Description:
This change corrects problems in the SQL Adapter JDBC
support arising from failure to handle return values from the
underlying JDBC method invocations other than 0 or -1. In fact, these
methods return values indicating row counts and the presence of Stored
Procedure output ResultSet data.
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP950
Summary: Fix SQL Adapter to not drop the statement
while iterating through stored procedure results
Description:
This change corrects behavior in the SQL Adapters that
resulted in erroneous errors when checking for multiple stored
procedure results.
Previously, the adapter would drop the current statement handle prematurely.
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP951
Summary: Fix SQL Adapter calling a stored procedure
over JDBC when configured with a named management portal SQL Gateway
Connection
Description:
The SQL Adapter supports JDBC configurations either
by specifying a JDBC URL in the DSN config value, or by configuring
the DSN value as the name of a "SQL Gateway Connection" configuration
block configured in the System Management Portal.
When calling a Stored Procedure via an adapter whose DSN value is
configured using a named configuration block, the SP would fail with
<INVALID OREF> zgetProcColumnsJ+3^EnsLib.SQL.CommonJ.1. This
change corrects that problem.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP965
Summary: Fix getReplyCode() handling in HL7
Description:
This change fixes an erroneous but syntactically
legal construction in the getReplyCode() method of the class
EnsLib.HL7.Service.Standard. This bug resulted in an <ILLEGAL
VALUE> error when an HL7 service is configured with
NackErrorCode=ContentE.
Category: Installation.UNIX
Platforms: UNIX
DevKey: SAP1259
Summary: Install sets wrong permissions on cconsole.log
Description:
This change corrects behavior by the
upgrade installer that makes existing cconsole.log files
rw-rw--- (no one but owner and cacheusr can access). The correct
permission is rw-rw-r-- (everyone can read the file).
Category: Migration.TSQL
Platforms: All
DevKey: DPV3569
Summary: TSQL: Correction for statement level triggers
Description:
A problem has been corrected that occurred
- when a row was deleted from a table with
a statement level AFTER DELETE trigger with TSQL code, and
- the trigger
code deleted a row in other table which did not have a TSQL statement
level AFTER DELETE trigger, but did have a TSQL statement level AFTER
UPDATE trigger.
The error may have resulted in the DELETE in the
trigger code returning an error, most likely SQLCODE=-29, field not
found.
Category: Networking.ECP
Platforms: All
DevKey: GK801
Summary: Prevent ECP data loss during recovery
Description:
In a rare condition, ECP recovery dropped a series of
client requests. It may happen if the server processed a partially
received request buffer with many requests and the state
synchronization between the app-server and the db-server was
wrong.
This is now corrected.
Category: Object.CacheProvider
Platforms: All
DevKey: JCN1087
Summary: Fix connection pooling performance in multithreaded applications
Description:
Connection pooling was critically slowed down in
multithreaded situations, due to excessive locking.
The locking has been changed to improve performance.
Category: Object.LanguageBindings
Platforms: All
DevKey: JSL2908
Summary: Fix concurrency issue in Java binding due to lost locks
Description:
This change corrects an error in the
Java binding. Under some circumstances, the binding code could
release locks that it should have held.
Category: SQL.Query Processing
Platforms: All
DevKey: JLF272
Summary: Reorder final DISTINCT when the driving map is a collection map
Description:
The semantics of FOR SOME %ELEMENT have an implicit DISTINCT BY %ID
for the corresponding stream. The parser inserted the implied DISTINCT,
but the location of this code caused it to
apply only when the master map was also accessed for some reason. The
code has now been moved, ensuring that it will be
executed in this case, and whenever a single-collection-map strategy
is chosen for a stream by the optimizer.
Category: Studio
Platforms: All
DevKey: MC1055, MC1056
Summary: Change handling of class indexes
Description:
The Caché version 2008 server only supports version 1 of the class index cache which
does not contain class timestamps in the class index. This means Caché is unable
to detect a class has been changed on the server. This change forces a reload of the class definition once
when an attempt is made to load a class definition. The change also causes Caché to
properly handle locked classes.
Category: Studio
Platforms: All
DevKey: MC976
Summary: GetClassDefinition to check for index up-to-date first
Description:
GetClassDefinition now checks whether the class index
is up-to-date before beginning processing of the class in Studio.
Category: Studio
Platforms: All
DevKey: SAP1269
Summary: Studio hangs accessing Stack variables in Watch window
Description:
On a Unicode system, clicking on
Call Stack to get variables causes Studio to hang forever. This is now fixed.
Category: System
Platforms: All
DevKey: CDS1658
Summary: Fix <SYSTEM> error after CATCH of nested error
Description:
If a TRY/CATCH construct catches an error in a
subroutine or method that is invoked
as part of building the argument list
for another subroutine or method, there would be a <SYSTEM> error
when the subroutine with the CATCH quits. This has been corrected.
Category: System
Platforms: All
DevKey: CDS1651
Summary: Fix vulnerability when classes are closed during HALT
Description:
This change fixes a rare condition that could cause
a memory access violation when a process halts after using many
objects.
Category: System
Platforms: All
DevKey: JLC1346
Summary: Avoid <ACCVIO> during MERGE
Description:
This change corrects a problem that could cause a crash when
executing a MERGE command in low memory conditions, especially on
64-bit Windows platforms.
Category: System
Platforms: 64-bit Windows
DevKey: JLC1349
Summary: Fix class compilation issue on 64-bit Windows
Description:
This change fixes a problem on 64-bit Windows that
could cause a system crash when compiling a very large number of
classes.
Category: System
Platforms: OpenVMS
DevKey: JO2302
Summary: Fix terminal disconnect handling on OpenVMS 8.3
Description:
This change corrects a problem that occurs on OpenVMS where
an asynchronous terminal disconnect was not handled properly possibly resulting in a process termination.
Category: System
Platforms: All
DevKey: JO2308
Summary: Fix handling of GIFs via CSP interfaces
Description:
A bug has been resolved in loading a GIF file
through a CSP interface, or code which emulates a CSP interface, which
sometimes reported a <DATABASE> error. There
was no underlying database error, the code improperly referenced a
process-private global when a normal global shold have been accessed.
Category: System
Platforms: All
DevKey: RJW1762
Summary: Unable to resolve existing <STORE> error
Description:
This change fixes a problem where an attempt to enlarge the symbol
table size following a <STORE> error failed to increase the memory
available to the process because there was no location to hold the new memory.
The change ensures that there is always at least one location
available for this purpose whenever memory is expanded.
Category: System
Platforms: All
DevKey: SML1182
Summary: Fix reverse $ORDER() error on subscript-level mapped global
Description:
This change fixed a problem that reverse $ORDER on a
subscript-level mapped global could return a wrong answer.
Category: System.Cluster Specific
Platforms: All
DevKey: JO2304
Summary: Correct write-image journal recovery during cluster failover
Description:
A problem has been resolved which could result in
some databases not being restored from the write-image journal during cluster
failover. This does not affect the restore during Caché startup, just
during the recovery performed by the cluster master during
failover.
Since the journal data is also restored during cluster failover this
problem does not result in data loss. However, it can result in
database degradation which could show up during the journal restore
phase of cluster failover. It also could show up some time later
such as when
the degraded block(s) later referenced in
circumstances involving block splitting.
Category: System.I/O
Platforms: All
DevKey: RJW1777
Summary: SSL connection hangs Caché with retained buffer
Description:
A problem has been corrected which could cause TCP
communication with SSL to hang the system if the SSL connect or accept
blocks while the process holds a global block, and the write daemon
requires that block to continue.
Category: System.Journaling
Platforms: All
DevKey: HYY1507
Summary: Address issues of transaction rollback performed at the end of journal restore
Description:
In releases prior to 2009.1, if open or incomplete transactions
were detected during a journal restore, the operator would be asked at the
end of the journal restore whether to have the open transactions
rolled back.
This behavior has been changed. Now, the operator is not given the
rollback
option.
Transaction rollback is not performed, even if there are open
transactions detected during the journal restore.
Category: Utilities
Platforms: All
DevKey: STC1720
Summary: Fix <UNDEFINED> error in ^INSTALL
Description:
This fixes an undefined error in ^INSTALL when
upgrading from version 5.0. It would only occur if the first database defined
in the CPF file (in alphabetical order) was either an ECP or DCP
database.
Note: This does not interrupt the install.
It will complete with
the error message written to the cconsole.log. However, all user
databases will not be labeled with their database resource, but will
get the default %DB_%DEFAULT database resource instead.