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
- CSP.Gateway
- Ensemble.Adapter
- Ensemble.HL7/EDI
- Languages.COS
- Networking.ECP
- Object.CacheProvider
- Object.Class Compiler
- Object.Library
- Security
- SQL.GateWay
- SQL.Query Processing
- SQL.Statement
- Studio
- System
- System.I/O
- System.Journaling
- System.Lock
- System.Mirroring
- System.Shadowing
- System.StartUp
- Utilities
- Utilities.Globals
- Zen.ZenReports
Category: CSP
Platforms: All
DevKey: KJK029
Summary: Redirect URLs must be UTF8 encoded on output
Description:
These changes will allow proper usage of filenames
with Japanese characters.
Pages with non-ASCII characters in the URL aren't served when Caché un+pass
is specified in the URL.
Category: CSP.Gateway
Platforms: Unix
DevKey: CMT898
Summary: Fix a problem that could result in an access violation if state-aware mode (preserve mode 1) is used with the Apache Unix DSOs
Description:
This change fixes a problem that could result in an access violation
if state-aware mode (preserve mode 1) is used with the new
multi-process Apache Unix DSOs (CSPa[n][Sys].so).
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP1061
Summary: Don't set FTP directory if FilePath is blank
Description:
This change modifies the Connect() method of FTP Inbound and Outbound Adapters so
that if the configured FilePath is blank it does not attempt to set the working
directory on the remote FTP server.
Previously, it would issue a SetDirectory() / "CWD" command to the server with no
argument. On some servers this would result in an error "Invalid number of
arguments", and on others the CWD command can be disallowed resulting in a
permissions error even when no arguments were given. The new approach
has the server do nothing which is the desired result.
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP1123
Summary: FTP Adapter bugfixes
Description:
This change fixes several errors in the FTP adapters
implementation:
- resolve conflicts between FileListStream/FileSizeStream internal
properties , especially for VMS with ConfirmComplete=Sizere-enable the LegacySSL (*) mistakenly disabled
- mark internal properties as Internal
- correct OutboundAdapter methods Delete() and Rename() for SFTP mode
- fix <UNDEFINED> file path on VMS when VMSLatestVersionOnly=true and
DeleteFromServer=true
- ensure that FTP error codes are present in the error generated when the
InboundAdapter fails to retrieve a file
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP1128
Summary: Fix UNDEFINED upon error in FTP Inbound setFilePath() and restoreFilePath()
Description:
This change corrects an <UNDEFINED> error in methods setFilePath() and
restoreFilePath() of class EnsLib.FTP.InboundAdapter when the underlying FTP SetDirectory command fails.
This change also fixes instances in classes EnsLib.FTP.Common and
EnsLib.FTP.OutboundAdapter of reporting the <Ens>ErrFTPDirectoryChangeFailed error
with an inaccurate path.
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP1130
Summary: Fix FTP Inbound fixServerPath() to make it occur after connecting successfully
Description:
This change swaps the order of statements in EnsLib.FTP.Common:FileListExecute()
and EnsLib.FTP.CommonSSH:FileListExecute() to make the call to fixServerPath()
occur after a successful Connect() call instead of before. This allows the FTP
Inbound Adapter to discover what sort of server it is dealing with and use the
appropriate type of normalization on its directory path string.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP1157
Summary: Restore back-compatible escaping for HL7 Name property
Description:
This change reverses the escaping of secondary separators in the
Message Type field as it is reported in the HL7 Name property.
Category: Languages.COS
Platforms: All
DevKey: CDS1761
Summary: $TEXT(entrypoint) could return text of next line
Description:
This change corrects an issue where, if there is no
command on a line that starts with an entry point with formal
parameters, and there is a ;; comment on a following line before any
other command, $TEXT of the entry point line will return the line with
the ;; comment instead of the entry point line.
Category: Languages.COS
Platforms: All
DevKey: GGC479
Summary: Improve ptrie memory utilization when killing subscripts
Description:
This change forces a compaction of a local array when it
detects that the array is becoming fragmented with redundant
space.
Category: Languages.COS
Platforms: All
DevKey: GGC484
Summary: Fix ACCVIO for $ZU(160)
Description:
This correction prevents a situation where an access
violation could occur when Caché is running on very large
memory systems.
Category: Networking.ECP
Platforms: All
DevKey: GK914
Summary: The ECP server may lose the client cache state
Description:
Due to a very rare circumstance involving the
order in the database mount timing,
the ECP server may lose the knowledge of blocks cached on the
app-server, and the app-server may not see the latest changes on the
server. This is now fixed.
Category: Networking.ECP
Platforms: All
DevKey: GK915
Summary: Fixed ECP recovery of transactions across multiple server restarts
Description:
This change corrects a situation where ECP Recovery
may not register transactions properly, and if there is another server
failover/restart before the transaction is closed, it may lose tracking
of the open transaction.
Category: Networking.ECP
Platforms: All
DevKey: GK916
Summary: Fixed $ORDER and $DATA of a subscripted mapped global to handle the returned long string values across ECP
Description:
For $ORDER or $DATA of a subscript mapped global, if the
global value was requested and the value was a long string, ECP did not
handle the returned value properly. This caused unexpected behavior
(for example, the requesting application may crash, or return an incorrect
value)
This change prevents that possibility.
Category: Networking.ECP
Platforms: All
DevKey: GK922
Summary: Prevent partially mounting of remote DBs when cachetemp is full
Description:
If cachetemp is full, ECP may fail to mount any
unmounted or new remote DB and may leave the internal structures in a
partially mounted state. Leaving the structures in a partially mounted
state may cause access violations or an incorrect DB mount if the connection
is dropped and the ECP client has to go through recovery.
Note, if
cachetemp is full the ECP client may fail to allocate the blocks
required for internal cache tracking, drop the connection, and go
through recovery; the app-server would be exposed to this.
This change corrects that circumstance.
Category: Networking.ECP
Platforms: All
DevKey: TR1001
Summary: Fixed a false $DATA return value across ECP
Description:
This change corrects a rare situation
where a $DATA of a value accessed via ECP may return a 0 or a 1 when
it should return a 10 or 11.
Category: Object.CacheProvider
Platforms: All
DevKey: IYB725
Summary: CacheProvider, made runtime update and dynamic meta info thread safe
Description:
This change corrects a situation where a client
program that tries to access runtime meta information on the same
server in different threads can cause random errors inside the
provider.
Category: Object.Class Compiler
Platforms: All
DevKey: MAK3170
Summary: Increase dummy space in splitting code to avoid routine too big errors
Description:
If a routine is too big to save, Caché attempts to split
it. The splitting code needed to have a little more dummy space
allocated to avoid a situation where a block appears to fit but,
in fact, when the final fixup is done it is very slightly too
big.
Category: Object.Library
Platforms: All
DevKey: JN957
Summary: Handle exception in XSLT extension
Description:
If a Caché Exception occurs in an isc:extension()
handling function, Xalan would crash the cache process. This is now fixed.
Category: Security
Platforms: All
DevKey: SAP1404
Summary: Using an invalid command line on cuxsession tricks Caché
Description:
This corrects a situation where a user can get
escalated to the cacheusr groupid, while validating against his own
database's security.
Category: Security
Platforms: All
DevKey: STC1929
Summary: New variables in LDAP server
Description:
When using the LDAP server to authenticate, several
LDAP variables were left in the processes partition after the user
logged in, including variables which held the username and
password. These variables could be examined from another job using
^JOBEXAM. This problem has been fixed such that these variables are no
longer left in the user's partition.
Category: SQL.GateWay
Platforms: Windows, Linux
DevKey: MIT1022
Summary: Remove extra separator from the class path in JDBC Gateway
Description:
This change corrects a situation that could lead to
an incorrect classpath parameter being generated.
Category: SQL.Query Processing
Platforms: All
DevKey: DPV3777
Summary: SQL: Improve performance of queries using non-standard date types
Description:
This change improves the inserting, updating or
selecting fields where the field type is %Library.FilemanDate,
%Library.FilemanTimeStamp, or %MV.Date, and the insert value or
comparison value against these fields is CURRENT_DATE or
CURRENT_TIMESTAMP.
For example, suppose you have the query:
SELECT DOB, %ID FROM MyTable WHERE DOB = CURRENT_DATE
where DOB is of type %Library.FilemanDate and there is an index on
DOB. Prior to this change, the index would get chosen by the query
optimizer, but the entire index would have been traversed looking for
the row(s) that matched. Now, the index will be chosen using the given
value of CURRENT_DATE for DOB.
Category: SQL.Statement
Platforms: All
DevKey: DLP2735
Summary: SQL Statement - adjust stream OREF initialization in %Next()
Description:
A bug in dynamic SQL SELECT processing caused a
stream column value to be retained from one row to the next. This bug
is now fixed.
Category: Studio
Platforms: All
DevKey: RAW878
Summary: Studio editor: eliminate Ctrl/Alt key combos
Description:
On keyboards with AltGr key, it can't be
distinguished from Ctrl/Alt key combinations; Windows doesn't make
the distinction. These key combinations have been removed from Studio.
Category: System
Platforms: All
DevKey: GK902
Summary: Goto in and out of a method to setup the object execution context properly
Description:
From a method, control flows via a goto to another routine or tag
in the method procedure block, the object context was
getting popped to the previous level, and if the tag was in the same method
the context was not correctly set. This is now corrected.
Category: System
Platforms: All
DevKey: GK911
Summary: Fixed private and class method validation
Description:
In some rare cases, if the class method was
invalidated, the dispatcher did not detect the change on the next
reference, but it did on the following reference after that. Also if
a super class was invalidated, private method context validation
did not detect the invalidated super class, and could raise <PRIVATE
METHOD> error. Both of these situations are now fixed.
Category: System
Platforms: All
DevKey: GK924
Summary: Protect the error msgs from overflowing
Description:
This change corrects a situation where an error
message longer than 255 characters could cause an error message buffer
overflow with unpredictable side-effects.
Category: System
Platforms: All
DevKey: JLC1471
Summary: Add missing descriptors for Caché standard collation to Thai locales
Description:
The 8-bit Thai locales (tha8 and thw8) were missing
the descriptors for the Caché standard collation, which prevented them
from being installed. This is now fixed.
Category: System
Platforms: All
DevKey: JO2408
Summary: Call GRETRELEASE before any system calls in iodopen()
Description:
This change corrects a rare circumstance where
opening a file may experience a noticeable performance delay.
Category: System
Platforms: All
DevKey: SAP1397
Summary: Caché process crashes when target of multiple JOBEXAM requests on Windows
Description:
This change corrects an error where a Caché
process crashes when it is the target of multiple processes making
JOBEXAM requests.
Category: System
Platforms: All
DevKey: SML1301
Summary: Fix ACCVIO when more than 2 GB Shared Memory Heap is configured
Description:
This change fixed a circumstance where a system may
generate a core dump when more than 2 GB memory is configured for
gmheap in CPF file. The job will get core dump when it calls
$System.Config.SharedMemoryHeap.GetConfigSize() or
$System.Config.SharedMemoryHeap.MaxCount().
Category: System
Platforms: All
DevKey: SML1309
Summary: Fix possible deadlock if SMH page is under stage 1 threshold
Description:
This change corrects a situation where
a lack of available pagable memory could result in a deadlock
among jobs.
Category: System.I/O
Platforms: HP-UX
DevKey: RJW1882
Summary: Exception setting $zio on HP-UX with I/O redirection
Description:
This change fixes a problem introduced in
Caché 2010.2.3 on HP/UX that can cause an exception when
Caché is started with I/O indirection. The problem is present
only on HP/UX.
Category: System.Journaling
Platforms: All
DevKey: HYY1620
Summary: Fix an <UNDEFINED> error in journal restore
Description:
This change addresses an issue that resulted in the
"<UNDEFINED>FULLPATH+3^JRNRESTB" error during journal restore
after one answered "No" to the question "Check for missing journal
files?" (default is "Yes") at journal restore setup.
Category: System.Journaling
Platforms: All
DevKey: HYY1624
Summary: Ensure journal recovery is performed after Caché restarting from a failed startup
Description:
This change corrects a situation where Caché
startup would abort if recovery failed to mount a database that is
specified as "mount required" in cache.cpf.
Category: System.Journaling
Platforms: All
DevKey: HYY1626
Summary: Addressed a dejournaling issue when gmheap > 2GB
Description:
This change addresses potential issues (such as
access violations) in
dejournaling (including journal restore, shadowing and mirroring) when the
allocated amount of Caché generic memory heap exceeds
2GB.
Category: System.Journaling
Platforms: All
DevKey: HYY1628
Summary: Addressed a data integrity issue of journal restore when using a filter
Description:
This correction addresses an issue of journal restore when a
user-specified filter is used that could result in target databases
missing the last few updates selected by the filter. The problem is
present in 2009.1 and later.
Category: System.Lock
Platforms: All
DevKey: SML1319
Summary: Surrender cached lock memory in every job when lock memory exhausted
Description:
This change addresses a situation when
memory available for locks is low due to locks being held in other
processes.
The lock will wait for sufficient memory to become available.
Category: System.Lock
Platforms: All
DevKey: SML1330
Summary: Fix PPG lock with lock mode could lock regular global
Description:
This change fixes circumstance where a per-process
global (PPG) lock with lock mode specified could turn into a
regular global lock instead of a no-op.
Category: System.Mirroring
Platforms: All
DevKey: JO2367
Summary: Minor correction in agent code which determines earliest journal file required for mirror recovery
Description:
In rare circumstances, a mirror member could think a
journal file was required for transaction rollback when it was
not. The result is that purging the journal file would be
unnecessarily delayed. This is now fixed.
Category: System.Mirroring
Platforms: All
DevKey: JO2391
Summary: Correctly limit mirror journals purged when start point is a file which doesn't exist
Description:
A problem where the mirror journal purge code might
purge files before they "expire" according to the local journal file
retention policy has been resolved. The problem occurred when
##class(SYS.Mirror).PurgeJournalFiles() was called with a "StartFile"
that did not exist.
Category: System.Mirroring
Platforms: All
DevKey: JO2400
Summary: Correct problems with ECP Client transactions crossing multiple mirror failovers
Description:
A problem with mirroring has been resolved where
rollback would fail if there were two mirror failover events since the
transaction was opened.
Category: System.Mirroring
Platforms: All
DevKey: JO2401
Summary: Don't automatically retry becoming the primary after problems during ECP recovery
Description:
Previously, if a mirror member failed to complete
ECP recovery it would retry over and over, creating a series of mirror
journal files until either it succeeded or it was shut down. As these
problems are fairly rare, and since the process is not likely to
succeed on retry without some other intervention, this has been
changed so that if ECP recovery fails, the instance reports the
failure and then waits until either the other failover member becomes
the primary, at which point the current instance becomes the backup,
or until it is shut down.
If the trouble with ECP recovery is resolved the instance can be
restarted and it will attempt to become the primary again.
In the future this may be revised to wait for the trouble with ECP
recovery to be resolved so the node can become the primary in that
situation without being restarted. If the current instance does become
the backup, it will retry the ECP recovery should the primary
terminate.
Category: System.Mirroring
Platforms: All
DevKey: SML1326
Summary: Fix primary member could delay sending block to async member
Description:
This correction fixes a situation where an async
member might fall behind the primary's journal point, and
when no journal activity on primary the async member could still
slowly catch up.
Category: System.Shadowing
Platforms: All
DevKey: HYY1615
Summary: Address a case of persistent <ZFILE> error in shadowing
Description:
This change corrects an error in shadowing that
could cause shadow to get stuck with a persistent <ZFILE>
error.
Category: System.Shadowing
Platforms: All
DevKey: HYY1640
Summary: Addressed an issue of shadowing when a copying process disconnects and reconnects
Description:
This correction addresses an issue that could cause
a cluster shadow to abort when a copying process disconnected (for
example, due to network problem) and reconnected.
In the case of a non-cluster shadow, the issue was a performance
one -- although it didn't abort, the shadow had to wait until the
copying process re-copied everything in the file it was working on
when it disconnected.
Category: System.Shadowing
Platforms: All
DevKey: HYY1645
Summary: Avoid <ENDOFFILE> error in %Save() of a shadow object
Description:
This correction addresses an issue that caused a %Save() of a shadow
object to return <ENDOFFILE> error.
Category: System.StartUp
Platforms: OpenVMS
DevKey: SAP1402
Summary: Change maximum number of Jobservers on VMS
Description:
The maximum number of jobservers is limited to the
initial pidtab size on OpenVMS. This change increased that number.
Category: System.StartUp
Platforms: Windows
DevKey: SAP1406
Summary: Allow unlimited small page allocations on Windows Version 6 (2008) and above
Description:
Windows failover clusters cannot get the same shared
memory allocation on failover node as was running on the main node.
This change allows unlimited small page allocations on Windows Version 6 (2008) and
above.
Category: Utilities
Platforms: All
DevKey: STC1914
Summary: Fix loop in $System.Encryption.Base64Decode()
Description:
This fixes a problem in
$System.Encryption.Base64Decode() where a process could get into an
infinite loop and hang.
Category: Utilities.Globals
Platforms: All
DevKey: GGC481
Summary: Add utility to display PPG variables
Description:
This change adds a new utility to display the
per-process globals (PPG)
variables on the system. It has the added benefit of writing the
output to a specified CSV so that the application may use other tools
to display the data.
The routine name is ^GETPPGINFO and it is called with 3 optional
parameters as follows :
do ^GETPPGINFO([inpid] , [options] , [outputfile] )
where:
- inpid:
The process ID to query. Can also be "*" for all processes, which
is also the default.
- options:
A string containing options to control the query. The default
is "" for no options. The options string can be one or more of the
following characters:
- b - Display the output in bytes (the default is blocks).
- Mnn - Filter display to only those processes using bb blocks or
more for PPGs.
- S - Suppress output to the screen. Useful when using the 'outputfile'
parameter because you only want to create a CSV file.
- T - Display process totals only. Using this option can speed up the
query substantially as it avoids having to chase chained blocks
of data containing PPG information.
- outputfile:
This option allows you to specify a file name where the
data can be stored in CSV format. The first line of the output file is
always the column header.
This utility must be run from the %SYS namespace.
For example ...
%SYS> do ^GETPPGINFO("*" , "STM1000" , "/home/myspace/ppgout")
displays all processes on this Caché
system. The output is in CSV format to file
/home/myspace/ppgout. The output is restricted to only those jobs whose
total PPG block count is 1000 blocks or more. The "T" option further
specifies to output only the process totals, and the "S" option means
there is no screen output.
Category: Zen.ZenReports
Platforms: All
DevKey: JSL3401
Summary: In 2010.2 use of for non-breakable space was broken
Description:
This change fixes a regression 2010.2 that
incorrectly generated the entity reference for a non-breaking space
which caused unusual characters to appear in the HTML version of a
report.
© 2011, InterSystems Corporation. All rights reserved.