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 routines 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
- Ensemble
- Ensemble.Adapter
- Ensemble.HL7/EDI
- Installation.Windows
- Languages.MVCommands
- Migration.TSQL
- Networking.ECP
- Object.ActiveX
- Object.CacheProvider
- Object.Gateway
- Security
- SQL
- SQL.GateWay
- SQL.SQLFiler/TableCompiler
- Studio
- System
- System.Callin/Callout
- System.I/O
- System.Journaling
- System.Lock
- System.Mirroring
- System.Monitoring
- System.Shadowing
- Terminal
- Utilities
Category: CSP.Gateway
Platforms: All
DevKey: CMT892
Summary: Strengthen the validation of incoming multipart MIME payloads (particularly relevant to IIS v7 and later)
Description:
This build strengthens the validation of incoming multipart MIME
payloads. It was recently discovered that malformed requests
could precipitate an exception (memory access violation) in the
function responsible for reading multipart content.
Category: CSP.Gateway
Platforms: 64-bit Linux
DevKey: CMT896
Summary: Resolve an issue that can result in the connection table not being initialized correctly if the '-O2' level of code optimization is used on 64-bit Linux systems
Description:
This change resolves an issue that could result in the connection
table not being initialized correctly on 64-bit Linux systems. The
symptom of this problem was spurious entries appearing in the Gateway
connection table (as seen in the system status) together with
connectivity problems to Caché.
Category: Ensemble
Platforms: All
DevKey: MC1166
Summary: StopProduction to call CleanUpDeadJobs after StopAll
Description:
Under some circumstances, when trying to stop all the jobs involved in
a production, a job could fail to shutdown properly leaving Ensemble
in an inconsistent state. This is now corrected.
Category: Ensemble
Platforms: All
DevKey: MC1167
Summary: Ens.Job:Start to check if Production is running
Description:
This change corrects a situation that occurs when
a spawned TCP job does not do any TCP activity. In this instance, it
becomes dormant and invisible to the production that spawned it.
If the production is shut down, it shuts down the spawned job, but
when it is restarted, it encounters an <UNDEFINED> error.
Category: Ensemble.Adapter
Platforms: All
DevKey: JN945
Summary: Do not copy entire list of RemoteAETs to incoming DICOM document
Description:
When matching a list of Remote AETS in the DICOM
adapter, the whole list was being copied to the incoming DICOM
document instead of the specific one which matched. Now only the
matching document is copied.
Category: Ensemble.Adapter
Platforms: All
DevKey: JN947
Summary: Handle some instances of invalid DICOM data sent to us by buggy peers
Description:
The open source PACS, sent by Conquest, incorrectly forms
data items of type UID padded with NUL bytes. This correction strips
them
when the item is fetched by the Ensemble virtual document function, GetValueAt().
Category: Ensemble.Adapter
Platforms: All
DevKey: JN949
Summary: Show meaning full tag info for GroupLengths in Message Browser
Description:
Before this change, DICOM tags which represent group lengths were not
being displayed in the Ensemble Message Browser. Now they are.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: JN941
Summary: DICOM simple routing operation and demo
Description:
This change addresses the need for a simplified
routing scenario where the only requirement is that DICOM messages are
received and routed to storage destinations.
A new operation class EnsLib.DICOM.Operation.TCP.Storage has been
developed which performs a single storage operation within the context
of a single association. It eschews flexibility for simplicity.
The Demo.DICOM.Production.Router, Demo.DICOM.Process.RouterDispatcher,
and Demo.DICOM.Process.RouterFiler classes provide a simple
demonstration of a receive, dispatch and file storage scenario. The
demo is intended to present the simplest possible implementation of
such a scenario and is designed to be a model for the user to copy or
extend.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: JN943
Summary: Guard against invalid DICOM association accept messages
Description:
InterSystems has discovered that
some DICOM peers send invalid ASSOCIATION-AC
messages. This change works around that issue.
Category: Installation.Windows
Platforms: Windows
DevKey: ALE2023
Summary: Fix a problem with Caché installation on Chinese (PRC) Windows
Description:
This change prevents a Caché installation on a
Chinese (PRC) Windows locale from getting an error message box.
Category: Languages.MVCommands
Platforms: All
DevKey: JPL1386
Summary: Fix MVIMPORT (Universe) bug where certain block sizes and alignments would cause segment mark not found errors
Description:
This change corrects a situation where an MVIMPORT
of Universe data fails occasionally by adjusting the import block size
or synthesizing an extra file.
Category: Migration.TSQL
Platforms: All
DevKey: DLP2716
Summary: TSQL - fix HAVING clause generation
Description:
This corrects an error that caused the HAVING clause to be
inappropriately placed after the ORDER BY clause.
Category: Networking.ECP
Platforms: All
DevKey: GK886
Summary: Fixed a false $d return value across ECP
Description:
In a very rare condition, if a subscript-level
mapped (SLM) reference is
killed or doesn't exist, and there is a SET which requires a disk read
and $DATA to the "Set" parent reference, and the $DATA occurs in a conditional
expression, the $DATA may return a false result. This is now fixed.
Category: Networking.ECP
Platforms: All
DevKey: GK887
Summary: Fixed a small window when a lock was granted to some other app-server, the ECP data durability guarantee wasn't honored
Description:
In very rare circumstances, when Caché
attempts to execute a SET before an UNLOCK
requiring disk read for the SET to complete, if there is a system failure
after granting the lock to some other application server, the data might be
overwritten during ECP recovery. This change prevents that from happening.
Category: Networking.ECP
Platforms: All
DevKey: GK903
Summary: Long string set may raise a network error during the server failover or restart
Description:
When there are two jobs attempting to SET a long string, there is a
very small window when the second job attempts to start sending a long
string. If the network/server goes down in that window, the attempt
will be rejected and an error raised. This change closes that window.
Category: Networking.ECP
Platforms: All
DevKey: GK908
Summary: Fixed an ECP error handler timing issue
Description:
In some situations, ECP could leave a request (for
example, $DATA or $GET) in
its queue and not process it. This could happen in a very small window
while it was queuing the request to be processed, but it failed to pre-fetch the
required disk block(s). This is now fixed.
Category: Object.ActiveX
Platforms: All
DevKey: IYB710
Summary: CacheActiveX, set ThreadingModel to Free
Description:
This correction changes the threading model of
CacheActiveX to allow the use of proxy objects in any thread.
Based on available information, there are few/no applications using
CacheActiveX with multiple threads, so most applications will not run any
differently. Those applications that do use multiple threads must
already have the proxy objects isolated to a specific thread
(otherwise they would see the problem that this change fixes).
Category: Object.CacheProvider
Platforms: All
DevKey: IYB714
Summary: CacheProvider, made MetaInfoContainer thread safe
Description:
In conjunction with IYB710, this correction makes
access to the dynamic meta information for proxy classes thread-safe
as well.
Category: Object.CacheProvider
Platforms: Windows
DevKey: JCN1181
Summary: Fix threading issue with RecycleInUseConnections and improve performance
Description:
In DotNet 4.0 and Visual Studio 2010 on fast machines, threading
issues with connection pooling could have occurred. This change fixes
a hang that can occur when RecycleInUseConnections is called.
Category: Object.Gateway
Platforms: All
DevKey: TAP1114
Summary: Force %Net.Gateway Closed flag =1 if error connecting or disconnecting
Description:
The Remote Gateway has a "closed" flag that indicates
whether its TCP connection to the JVM is open or not. This change
ensures that, in disconnecting or failing to connect the Gateway when
the connection is unexpectedly lost, the closed flag is correctly
updated.
Category: Security
Platforms: All
DevKey: STC1862
Summary: Use NEW $namespace in %Library.Routine
Description:
This change fixes a problem where, when you try to
import a routine using %RI into an implied namespace, you might raise
a <NOROUTINE> error.
Category: Security
Platforms: All
DevKey: STC1863
Summary: Remove calls to $$$SaveNamespace and replace with NEW $NAMESPACE
Description:
This change fixes a security hole where a user with
programmer mode privileges could purposefully corrupt the saved
namespace stack from the programmer prompt. This could then cause an
error, and leave the user with the %All privilege.
Category: SQL
Platforms: All
DevKey: AK792
Summary: Fix computed field retrieval order opt
Description:
Query conditions on fields with SqlComputeOnChange
were sometimes causing incorrect code-generation, resulting in
<UNDEFINED> errors when the query was run. This has been
fixed.
Category: SQL.GateWay
Platforms: All
DevKey: MIT1043
Summary: Correct a potential invalid memory access in SQL Gateway narrow to wide conversion
Description:
This change prevents the SQL Gateway from
generating an error when converting narrow (8-bit) characters to Unicode.
Category: SQL.SQLFiler/TableCompiler
Platforms: All
DevKey: DPV3769
Summary: SQL: Correct polymorphic dispatch for tables with stream columns
Description:
This change corrects a problem that occurs during a
SQL UPDATE where the row on a table contains a
stream field. If the stream being used to supply data for the update
differs in type from the stream currently representing the field,
the update could fail to occur with no report of the failure.
Category: Studio
Platforms: All
DevKey: DVU2825
Summary: TNodes. Fix memory leak in CTNodeManager::convertClassIndexVersionTwo2ClassIndexSummary
Description:
This change fixes a memory leak that could
eventually lead to a crash.
Category: Studio
Platforms: Windows
DevKey: RAW871
Summary: Studio editor: crash deleting contracted block
Description:
This corrects a situation where a crash may occur if
a block of text whose length had been shortened was deleted.
Category: System
Platforms: All
DevKey: CDS1820
Summary: Subscript in <UNDEFINED> error was garbled
Description:
This change corrects a situation where
an <UNDEFINED> error message could show a
garbled subscript value when the error involved local arrays.
Category: System
Platforms: All
DevKey: GK906
Summary: Added rtn target cache protection
Description:
In rare conditions, a routine target cache was getting
freed while it was being constructed. This caused the cache manager
to randomly corrupt memory leading to a crash. This is now fixed.
Category: System
Platforms: All
DevKey: JLC1447
Summary: Read full $zobjioexport header in objiogetnextbuf()
Description:
This correction fixes a problem in exporting objects
where, in rare circumstances, an outbound packet could be ignored. This
could happen most often when editing in Studio a routine bigger than 32K
bytes.
Category: System
Platforms: All
DevKey: JLC1450
Summary: Fix access violation in $zobjexport(12)
Description:
This corrects a problem in exporting objects that, under rare
circumstances, could cause an access violation.
Category: System
Platforms: All
DevKey: JLC1455
Summary: Use dmovb() when compacting index table in ptrie node
Description:
This change fixes a problem where the action of
compacting a ptrie node could cause corruption of the table leading to
an access violation.
Category: System
Platforms: All
DevKey: SML1280
Summary: Fix access violation when merge two local arrays
Description:
In rare cases, MERGE of local variables to the same local array could
crash Caché because of improper memory handling.
Category: System
Platforms: AIX
DevKey: WDS378
Summary: Fix buffer allocation when defined(USEWIJENCJOBS) && defined(ASYNCWIJ)
Description:
Category: System.Callin/Callout
Platforms: Windows
DevKey: SAP1385
Summary: Fix CacheAbort
Description:
In prior releases, issuing CacheAbort on Windows
terminates the process. This is now corrected; it aborts the
activity in progress.
Category: System.I/O
Platforms: HP HP-UX RISC
DevKey: RJW1871
Summary: Login to Cache via csession from a telnet connection to HP/UX could be slow
Description:
A problem has been corrected that could cause login
to Caché via csession from a telnet connection to 64-bit HP/UX
to be very slow.
Category: System.Journaling
Platforms: All
DevKey: HYY1616
Summary: Update WIJ transaction information while WD is busy
Description:
This correction addresses an issue that could prevent journal
files from getting purged when they should, and also result in a prolonged
scan of journal files for open transactions at system restart after a
crash.
Category: System.Lock
Platforms: All
DevKey: SML1297
Summary: Fix lock upgrade from shared to exclusive could hang
Description:
This change fixes a problem that could cause a job
to get into a spin when attempting to upgrade a lock from a shared mode to
exclusive mode.
Category: System.Mirroring
Platforms: All
DevKey: JO2375
Summary: Ensure we use mirror journal file sequence # when we switch journal files to become the primary
Description:
This change corrects a rare problem where, if the backup mirror member
is writing to a journal file with a prior date, and the primary fails
so the backup takes over, the backup will ignore the current sequence
# of the file being generated by the former primary and will start
over at 001.
Category: System.Mirroring
Platforms: All
DevKey: JO2376
Summary: Mirror dejournal needs to ensure it processes entire file
Description:
If the mirror dejournaling process on the backup
runs into corruption in a journal file, it will not move past that
point until either the issue is resolved or the instance is shut
down. Previously, when the mirror switched journal files the process on
the backup could move on to the new file, skipping the data which was
not restored due to the corruption. This situation is now corrected.
Category: System.Mirroring
Platforms: All
DevKey: JO2384, GK894, GK910
Summary: Correct mirror dejournal so it does not skip records when a db is activated
Description:
A problem has been resolved where a mirror backup
could skip dejournaling a record when a newly activated database on
the backup is linked into the active system. This only occurs when
dejournaling on the backup is behind the end of the current journal
file at the time the newly restored database is activated.
Category: System.Mirroring
Platforms: All
DevKey: JO2386, GK894, GK910
Summary: Adjust mirroring startup when using ECP
Description:
These changes implement versioning in ECP to assist
with proper start up of mirrored systems:
-
ECP now implements versioning to help in
implementing the ECP cluster server rolling upgrade support. By use of
versioning, the ECP session will be dropped if an
older/incompatible version takes over.
-
ECP recovery
uses the ECP session version of the old primary during mirror
failover. The approach is that during failover, if the ECP session of
the new primary is older than the previous primary, do not recovery
the ECP sessions.
-
When a failover mirror member downloads ECP session data from the
existing/former primary, it now also retrieves a version number. If a node
becomes the primary and the existing ECP sessions have an incompatible
version number, they are dropped. A version with this change is
required in order to correctly inter-operate with 2011.1 (and later)
releases.
Category: System.Mirroring
Platforms: All
DevKey: JO2389
Summary: Make $SYSTEM.Mirror.GetInfo() public
Description:
Prior to 2010.2 only %Admin_Oper was required to
look at journal files in the portal. With 2010.2, this was accidentally
changed to require %Admin_Manage as well. This has been resolved and
%Admin_Manage is no longer required, only %Admin_Oper.
Category: System.Mirroring
Platforms: All
DevKey: JO2396
Summary: Backup could think primary was down when status message returned an error
Description:
A problem in mirroring has been corrected where the
backup might take over without retrieving the end of the former
primary journal file when the former primary was shutdown.
While the operating system was terminating processes, it was possible for
the backup to enter its failover state and make contact with the agent
on the primary. Shortly thereafter, the agent process would get terminated by the
system. In this case the backup mistakenly thought the primary told it
that it was down.
The backup could continue and take over for the
primary if this occured within the trouble timeout.
However if the
write daemon on the former primary was not terminated by the system
within the trouble timeout period, it could update its copy of the mirrored
databases with a journal position past the last point the backup had
retrieved. The consequence of this is that the next time the primary
is started, it will refuse to join the mirror because it will detect
the inconsistency.
Category: System.Mirroring
Platforms: All
DevKey: SML1256
Summary: Fix failed to add/edit/remove Virtual IP address for Mirror Edit Configuration
Description:
This change fixes a situation involving the
deletion
of Virtual IP address in a
mirror configuration. Now it will not delete the VIP from the OS when the VIP
is removed from configuration.
Category: System.Mirroring
Platforms: All
DevKey: SML1290
Summary: Support restoring mirror journal record for non-mirror system
Description:
This change corrects ^JRNRESTO so when restoring a mirrored DB in a
mirror journal file on a non-mirror system, or a mirror member if a
different mirror set, the user needs to enter the mirror DB alias name
instead of the directory path at the "Directory to restore [? for
help]:" prompt and be redirected to a local database.
Category: System.Monitoring
Platforms: All
DevKey: RFD592
Summary: Fix accvio when using %SYS.MONLBL
Description:
This change prevents a process crash
(<ACCVIO>) caused by using ^%SYS.MONLBL to monitor routines
generated by class methods. The crash occurred if a process is already
running some class methods before %SYS.MONLBL is started.
Category: System.Shadowing
Platforms: All
DevKey: HYY1619
Summary: Address a data integrity issue in shadowing
Description:
This change corrects an issue in shadowing that, in
rare circumstances, could result in
data discrepancy on the shadow.
Category: System.Shadowing
Platforms: All
DevKey: HYY1621
Summary: Restoring an old fix of a cluster shadowing issue
Description:
This change restores a fix to remove unnecessary journal state changes
inside cluster shadow source process.
Category: Terminal
Platforms: Windows
DevKey: RJW1865
Summary: Caché internal failures in cconsole.log
Description:
This corrects a situation that could case a
potential exception when a Caché process serving a telnet
connection on Windows halts. The problem is limited to Windows and
has only been observed while running automated tests that repeatedly
connect to Caché via the %Net.TelnetStream class.
Category: Utilities
Platforms: OpenVMS
DevKey: JO2381
Summary: VMS:Correction to journal disk full on mirror backup handling
Description:
A problem which prevented a mirror backup on a VMS
system from moving the journal file being retrieved from the primary
to the alternate journal location when the original location becomes
full has been resolved. This affected all attempts to recover from
this situation.
© 2011, InterSystems Corporation. All rights reserved.