This document provides a list of the changes between versions
2011.1.2
and
2011.1.3
for Caché.
After each upgrade step, the following conditions apply:
-
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
vUnless 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
- Config Mgr
- Object
- Object.CacheProvider
- Object.DotNet
- Object.Gateway
- Object.Library
- Object.Storage
- SQL
- System
- System.Cluster Specific
- System.Journaling
- System.Mirroring
- System.Monitoring
- System.Shadowing
- System.StartUp
- System.Very Large Systems
Category: Config Mgr
Platforms: All
DevKey: STC1999
Summary: LIST^%SYS.NAMESPACE should always return enabled status if type=5
Description:
This change allows the listing of namespaces to
include those on accessible remote systems.
Category: Object
Platforms: All
DevKey: MAK3216
Summary: When releasing locks on ^rINDEX/^rINDEXCLASS use immediate mode
Description:
In order to ensure consistency of the routine and
class index, Caché sometimes locks ^rINDEX and ^rINDEXCLASS.
With this change, when those locks are released, Caché uses
immediate mode to ensure they are released straight away even if the
release takes place in a transaction.
Category: Object
Platforms: All
DevKey: MAK3363
Summary: Correct up to date checking for MAC routines
Description:
Due to a problem caused by a previous change,
when checking if a MAC routine was current, the absence of a
corresponding INT routine, would return true. This is incorect and is
fixed by this change.
Category: Object.CacheProvider
Platforms: All
DevKey: JCN1233
Summary: Only make literals with plain constants inside SQL double parentheses
Description:
SQL standards suggest that simple constants inside
double parentheses should be sent as literals, however, Caché should
continue to substitute constants in more complex situations.
With this change, in the query
select COUNT ((1)), fCQname from QueryTest
the value "1" should be sent to Caché as is. However,
SELECT count(*)
FROM SAMPLE.PERSON
WHERE ((Age = 20 and Name='A') or Age=30)
would be sent as the following:
SELECT count ( * )
FROM SAMPLE.PERSON
WHERE ( ( Age = ? and Name = ? ) or Age = ? )
using parameter substitution.
Category: Object.DotNet
Platforms: All
DevKey: IYB756
Summary: Binding server: use a process private global to turn on/off output redirection
Description:
If a .NET client stopped redirecting input from the
server, this could turn off output redirection in a
future connection that had the same process id or in a connection that
was reused via connection pooling. This change corrects both
problems.
Category: Object.Gateway
Platforms: All
DevKey: HCR238
Summary: OPEN commands in %Net.Remote.Gateway to check for timeout
Description:
This change adds timeout guards to the OPEN
commands used by %Net.Remote.Gateway to prevent hangs.
Category: Object.Library
Platforms: All
DevKey: DMC829
Summary: CacheSSH: Update to libssh2-1.3.0
Description:
This change updates libssh2 to version 1.3.0 to
correct issues seen in 2010.2.x installations in the field involving
SSH packet handling and socket I/O in earlier versions.
Category: Object.Library
Platforms: All
DevKey: MAK3293
Summary: Trap errors in stream object inside %Net.FtpSession
Description:
When using %Net.FtpSession to send or receive data,
Caché uses a stream on its side to put/receive the data.
However, this process was not checking for errors from the stream
class such as it running out of disk space for a file stream.
With this change, Caché will detect this error and report an
error code from the %Net.FtpSession class with the error information
from the stream embedded.
Category: Object.Storage
Platforms: All
DevKey: DLP2895
Summary: Object Storage - fix bug in %Delete that caused a failed referential action to be ignored
Description:
A bug that caused a foreign key constraint failure
to be ignored when deleting an object is now fixed. This bug occurred
when deleting an instance of a class that is targeted by a foreign key
constraint and also contains streams. If the foreign key referential
action fails, then that failure status was not honored and the delete
was allowed to proceed.
Category: SQL
Platforms: All
DevKey: DPV3940
Summary: SQL: Correct class definition optimistic concurrency locking with SQL LockTimeout=0
Description:
This change corrects a problem where compiling an
SQL statement will encounter an <UNDEFINED> error when the SQL
LockTimeout is set to 0.
Category: System
Platforms: X86 64-bit
DevKey: CDS2020
Summary: Fix alignment violation with long property names
Description:
Using long property names within an XECUTE could
cause an access violation on x64 platforms. This is now fixed.
Category: System
Platforms: All
DevKey: CDS2044
Summary: Fix name table issues with low memory
Description:
This change corrects access violations that could
occur when available memory in the process is low.
Category: System
Platforms: All
DevKey: GK969
Summary: Fixed a class cache invalidation race condition
Description:
This change corrects a rare race condition in the
class loader
where recompilation could leave invalidated heap segments exposed and
cause them to be corrupted.
Category: System
Platforms: All
DevKey: GK971
Summary: Fixed large object destruction hang
Description:
A large object hierarchy destruction may take some
time to finish, and moreover if there is any retained block, the
system may hang. This change alters the way this situation is handled to
release the retained block if there are any jobs waiting for it
Category: System
Platforms: All
DevKey: JLC1542
Summary: Preserve mode when editing replacement string of modal translation
Description:
When using ^NLS to edit the replacement string from
a modal translation table (such as JIS), the mode byte was being
lost. This would cause an access violation when the replacement string
was needed in case of a translation error. The mode byte is now
preserved.
Category: System
Platforms: All
DevKey: JLC1544
Summary: Preserve virtual string stack for callin clients
Description:
This change corrects a situation when, under some circumstances,
successive callins would allocate space without freeing it upon return
which would lead to memory exhaustion.
Category: System
Platforms: All
DevKey: JLC1545
Summary: Release virtual string stack in freesstack() for USETHREAD
Description:
This change corrects a situation similar to JLC1544 but involving
job servers and callin clients. The memory exhaustion issue is now
avoided.
Category: System
Platforms: All
DevKey: JO2486
Summary: Fixes to avoid corruption due to interaction between expansion and compaction/defragmentation or $prefetchon
Description:
A problem where database expansion of a database
which is being compacted or defragmented could result in database
degradation has been resolved. The problem occurs when a database is
expanded while the defragment/compaction process is in the process of
reading blocks from the database. The most likely occurrence of this
is on UNIX® systems during a defragment operation which triggers
expansions in order to complete. Windows and OpenVMS systems are less
likely to experience this problem when the defragment process triggers
the expansion as the expansion occurs in a single operation. On UNIX®
the expansion request triggers a series of smaller operations.
Category: System
Platforms: All
DevKey: SAP1516
Summary: Fix possible hang and expansion freeze in create, delete, or dismount database
Description:
This corrects an issue where the handling of disk
i/o in processing database expansion could hang the process.
Category: System
Platforms: All
DevKey: SAP1520
Summary: Fix EXPDMN writing multiple messages to cconsole.log for the same database
Description:
When more than two databases are expanding,
the expansion daemon writes multiple messages to cconsole.log.
With this change, expansions will get at least 2 messages per database, and at most 3.
Category: System
Platforms: All
DevKey: SJ2757
Summary: Put back support for $VIEW options -5 and /-6 for 2K block size for 2011.1.x
Description:
Limited read-only support for 2KB datasets is still
needed in 2011.1, this change reinstates code needed for
SYS.Database.Copy.
Category: System.Cluster Specific
Platforms: All
DevKey: JO2485
Summary: Allow rollback to mount dismounted databases during cluster recovery
Description:
A problem introduced in 2011.1 where transactions
would not be properly rolled back during cluster recovery at startup
has been resolved. The problem could also occur during cluster
failover if the master node has to mount a database during the journal
roll forward phase. This is an unusual situation because the slaves
cannot take out locks in a cluster mounted database which is not
mounted on the master so this (generally) only would occur if the
master has some database mounted which is not mounted by a slave and
then the master fails and the slave performs cluster recovery.
Category: System.Journaling
Platforms: All
DevKey: HYY1660
Summary: Ensure system is frozen on journaling issues in a timely, accurate fashion
Description:
This change addresses a situation on Windows and OpenVMS that a
journaling issue may take 60 seconds for the control process to detect before it
freezes the system as opposed to the advertised 10 seconds.
It also addresses an issue (mostly on Windows and OpenVMS, less likely
on Unix) that could cause the control process to freeze system on
something that does not warrant the freeze (for example, a false
journaling issue), although the control process would unfreeze the
system in 60 seconds. The behavior may result in unnecessary interruption
of system availability or failovers of mirror servers.
Category: System.Journaling
Platforms: All
DevKey: HYY1688
Summary: Fix journal.log corruption caused by failed expansion
Description:
This change corrects an issue that resulted in a
corrupted journal.log when there is no more space in the manager
directory.
Category: System.Journaling
Platforms: All
DevKey: HYY1690
Summary: Adapt JD monitor timeout to WD freeze timeout for backup
Description:
This change corrects a situation where,
during backup, the system may
pause users due to journal daemon inactivity in certain
circumstances such as the journal files are in the same filesystem
as databases and the filesystem is frozen as part of the backup
procedure.
Category: System.Journaling
Platforms: All
DevKey: HYY1694
Summary: Allow user to stop journaling on system set to freeze on journal error
Description:
This action reverts a prior change that changed
the control process monitoring rule such that it did not freeze a system that is
set to freeze on journal error if journaling is stopped (as opposed to
retrying a failed journal I/O operation or stuck in somewhere).
On a system set to freeze on journal error (FreezeOnError=1 in
cache.cpf), stopping journaling, although risking loss of journal
data, is allowed and does NOT cause the system to freeze
thereafter.
Category: System.Journaling
Platforms: All
DevKey: HYY1695
Summary: Prevent WD from consuming 100% CPU when system is frozen on journal issues
Description:
This corrects an issue that caused the write daemon to
consume 100% of the CPU when the system was frozen on journal I/O issues.
Category: System.Mirroring
Platforms: All
DevKey: JO2481
Summary: Correct coordination between mirror dejournal jobs and mirror backup shutdown/disconnection process
Description:
This change corrects several issues with mirroring
where
- a backup would sometimes report the journal file was invalid and
fail to shutdown cleanly after getting disconnected, or
- spurious invalid journal file errors might get logged during
shutdown.
The journal files were not actually corrupt in either case
and apart from failing to exit cleanly, these do not cause issues with
the mirrored databases.
Category: System.Mirroring
Platforms: All
DevKey: SML1404
Summary: Fix problem when failover member was removed and recreated
Description:
This change corrects a possible failure caused
when a failover
member removed itself, and then add itself back into the mirror set as
failover member.
Category: System.Monitoring
Platforms: All
DevKey: SAP1517
Summary: Correct calls in System.Dashboard to prevent SYSLOG errors
Description:
Spurious SYSLOG entries are produced by %MONAPP
every 5 minutes if there are remote (ECP) databases mounted.
Category: System.Shadowing
Platforms: All
DevKey: HYY1699
Summary: Address a shadowing issue with journal file name prefix
Description:
This change addresses an issue in shadowing where a source
journal file name prefix specified is different from
the "canonical" one on the platform (lowercase on Windows and
uppercase on OpenVMS)
could cause shadowing to take up unnecessary network
bandwidth between the source and the shadow.
Category: System.StartUp
Platforms: AIX
DevKey: SAP1490
Summary: Fix locking shared memory (memlock) failure on AIX
Description:
This corrects a problem where using the memlock
config option on AIX, the lock always fails with the message:
*** Warning - Cache was unable to lock shared memory ***
Category: System.StartUp
Platforms: All
DevKey: SAP1522
Summary: Default libpath to "" if not found in .cpf file
Description:
If LibPath is missing in the .cpf file, startup
fails immediately. With this fix, a missing LibPath entry is treated
as a null entry, and startup continues.
Category: System.Very Large Systems
Platforms: All
DevKey: SJ2747
Summary: Change retry logic in Integrity checking when possibly false positives
Description:
This fix changes the way retrying is done in Integrity
checking when blocks are being changed while the global is being
checked. Checking should now give similar numbers of errors found as in
previous versions, but also identify them as possibly being
due to blocks being changed.
Normally, Integrity checking should be
done on quiescent globals.
© 2011, InterSystems Corporation. All rights reserved.