|
|
|
InterSystems Documentation
|
|
Caché and Ensemble Maintenance Kit Release Notes
|
The release notes are available in the
\Docs subdirectory of
your installation.
Late-breaking information about this kit can be found
in: \relnotes\readme.1st
Release notes from prior kits are combined in the
files: \relnotes\cache\prenotes.htm
and/or
\relnotes\ensemble\prenotes.htm
This document provides a list of the changes between versions
2008.2.2
and
2008.2.3
for Caché and Ensemble.
Topics include:
General Announcements
Upgrading From Prior Released Versions
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.
After each upgrade step, the following conditions apply:
- Routines
Unless specified in the upgrade notes for a specific release, routines
are upward-compatible and do not need to be recompiled. However,
customers may decide to recompile them to take advantage of new
features, improvements in generated code and the corresponding
efficiencies in runtime support.
- Classes, SQL, Projections, Proxy Classes
InterSystems requires that all classes be recompiled after an
upgrade. This is accomplished by running the following commands in each
namespace where application classes reside:
Do $SYSTEM.OBJ.UpgradeAll()
Do $SYSTEM.OBJ.CompileAll("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 documentation.
-
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.
Upgrading ECP Configurations
The following guidelines apply to the process of
upgrading ECP configurations:
- Unless explicitly noted for a particular version,
the protocol used to communicate among ECP systems is fully compatible
across versions.
- For ECP configurations consisting of database
servers and application servers, InterSystems recommends that the
application servers be stateless and independent.
- A server is stateless when it treats each
request as an independent transaction that is unrelated to any prior
or future request. It does not need to preserve data for use in a
later transaction or worry about freeing it if a client dies in
mid-transaction.
- A server is independent when it does not
depend on the internal state of another application
server.
Assuming that these conditions are met, an ECP configuration may be
updated incrementally, system by system. The application servers
should be upgraded to the new version first. Once all application
servers have been upgraded, the database servers can be serially
upgraded.
-
Debugging
InterSystems also recommends recompiling routines and classes for
applications under development. This synchronizes the debugger with
the expected format of the compiled code.
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
- Ensemble
- Ensemble.Adapter
- Ensemble.DTL
- Ensemble.HL7/EDI
- Object.Library
- Security
- SQL
- System
- System.Cluster Specific
- System.Journaling
- System.Shutdown
- System.System Tray
- Utilities.Tasks
Category: Ensemble
Platforms: All
DevKey: MC857
Summary: Increase locked range in EnQueue
Description:
Under some infrequent circumstances, a race condition
could occur between a queue being deleted and the insertion of
an entry into that queue resulting in an
<UNDEFINED> error.
This has been corrected.
Category: Ensemble
Platforms: All
DevKey: MC871
Summary: Fix <STORE> error in CSPX.EnsHomeSummary:GetJobSummary
Description:
This change corrects a problem where a request for
job summary information could result in a <STORE> error
when there were many (>1000) unfinished business processes.
Category: Ensemble
Platforms: All
DevKey: MC879
Summary: UnRegister job to proceed on failure to lock
Description:
This change increases the amount of time allowed for
a lock attempt to succeed. It also improves the job cleanup when the
lock attempt fails which assure that future jobs will always have
properly initialized global data.
Category: Ensemble
Platforms: All
DevKey: MC894, MC895
Summary: Keep times in Ensemble in uniform time resolution
Description:
This change assures that the various parts of the
Ensemble scheduler use the same time resolution. A failure to do so
in prior releases caused some Alarms to be ignored as already having
been acted on because they were being measured against
a clock with lower resolution.
Category: Ensemble
Platforms: All
DevKey: MC896
Summary: Ensure lock is released in Queue:EnQueue
Description:
This change fixes a condition that would cause an invocation of
Queue:EnQueue to exit without properly releasing a lock.
Category: Ensemble
Platforms: All
DevKey: TAP765
Summary: Add NoLock option in SearchTable RemoveIndex(), use it from VDoc Delete triggers
Description:
This change adds an option to do SearchTable
RemoveIndex() operations with the %NOLOCK SQL option. This prevents
the table lock threshhold from being reached on the SearchTable when a
virtual document instance is deleted that has many SearchTable entries
associated with it.
When the table lock threshhold is exceeded during an SQL DELETE
operation, the whole table is locked. For HL7 services, this prevents
new SearchTable entries from being stored during the time it takes for
the DELETE to complete.
In order to ensure that new SearchTable entries don't fail to insert
when a Purge operation is executed during normal operation of the
Production, this change also makes the delete triggers in the document
classes invoke the SearchTable's RemoveIndex method using this new
option
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP706
Summary: Fix File Passthrough Service to use Sync if ArchivePath is not same as WorkPath
Description:
The File Passthrough Service (unlike the FTP
passthrough service) moves the file to the ArchivePath (if any) after
ProcessInput() returns. If ProcessInput does an Async call forwarding
the filename, then a race condition would occur where the target
Operation would look for the file in the WorkPath while the Service
was moving it to the ArchivePath.
This change fixes the behavior of the EnsLib.File.PassthroughService
to use the correct determination of when to use an Async call and when
to use a Sync call, in order to avoid this race condition.
This change also modifies the File Inbound Adapter to make it skip
renaming the file to ArchivePath if ArchivePath=FilePath. This avoids
a problem where the renamed archive file is picked up by the adapter
as if it were a new file because it appears in the FilePath input
directory.
This change also adds the stream size to the trace messages in both
the FTP and File Passthrough Services.
Category: Ensemble.DTL
Platforms: All
DevKey: TAP751
Summary: Remove check for existence of <prop>NewObject method before calling - just rely on error trap
Description:
This change removes an expensive internal check for
specific properties in the DTL target class. The check has been
replaced with an error trap that is more efficient than the check.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP720
Summary: Fix X12 buildRuntimeIndexFromPath() to properly parse paths that include HL segments with required key fields
Description:
This change allows the method
EnsLib.EDI.X12.Document.buildRuntimeIndexFromPath() to successfully
parse segment paths that include a required key field
(e.g. HL!3=22-12) for content-sensitive segment map parsing.
In
particular, this affects field 3 of HL (Hierarchical Level) segments.
Depending on the value in field 3, an HL segment can identify any of
several different possible loop structures within a document schema.
When attempting to assign or save documents that are constructed in
"PathMap" mode, e.g. by an ordinary DTL transform, this allows
documents that contain HL segments to be created.
This change also strips the 'key field' specifier (e.g. !3=22) out of
the segment type declaration stored as part of the node data in the
segment map array that gets created when a new X12 schema is imported
from a SEF file into Ensemble.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP721
Summary: Fix X12 SEF parser to not crash when SEF file omits required value for HL:3 field
Description:
An X12 HL segment (Hierarchical Level) is used to
distinguish nested loops that may contain similar types of segments.
To do this it requires a fixed value in field 3 (Hierarchical Level
Code). However, there is no ambiguity when an X12 document structure
contains only a single loop with an HL segment; therefore, it is OK for
a SEF file to have an HL segment specified without specifying a
specific value for HL:3.
This change also prevents a possible crash
should this circumstance occur.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP722
Summary: On Immediate reply in X12 service, fix DocType assignment and header object suppression
Description:
This change fixes the behavior of the X12 Service
classes when ReplyMode=Immediate. This mode requires that child
documents not be forwarded until the entire inbound document is
received and parsed. Otherwise, it could be rejected while portions of
it have already entered the Ensemble system.
This change also fixes a condition where
this class would lose the assignments of DocType to each child
document based on the value of the DocSchemaCategory setting.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP737
Summary: Fix X12 handling of U field (InterchangeControlStandards/Repetition Separator)
Description:
This change corrects and simplifies the logic used
to determine when to show a non-separator character in field ISA:11
(defined as InterchangeControlStandardsIdentifier/"U" under Control
Versions before 00403, Repetition Separator in later versions).
When
the value of field 11 is a character or number, that value is
displayed. Otherwise, the display value is the repeat separator in
effect for the current display of the segment. The control version is
not taken explicitly into account in this determination; any character
that is not a number or a digit or a different separator is a valid
Repeat Separator.
For documents input with a "U" or other
alphanumeric character in field 11, there is an implied Repeat
Separator equal to the default X12 repeat separator which is Ascii 30
(RS/Record Separator), an invisible control character.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP828
Summary: Fix mapping of X12 HL segments
Description:
This change fixes mapping of X12 schemas that use HL (Hierarchical Level)
segments containing key values to distinguish different loops in the document
structure. The schema importer generates special decorated segment names of
the form such as "HL!3=22-12" where HL is the segment name, !3=22 means that field 3 of this HL segment
is required to contain the value 22, and -12 denotes its ordinal position in the schema.
This change allows the segment type name to match in the buildRuntimePath...
method by stripping out the ! clause from the segment path name.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP829
Summary: Fix ASTM parsing of Manufacturer DocTypes
Description:
This change fixes ASTM parsing of M (Manufacturer) message types, that is, message
types that contain manufacturer-defined M segments with field 2 containing the
type of manufacturer segment (and by implication the type of manufacturer
message). Formerly, this type of message would get a schema error.
Category: Object.Library
Platforms: All
DevKey: MIT899
Summary: Enforce conversion to $DECIMAL in %Numeric.Normalize()
Description:
This change makes sure that numeric values are
converted to $DECIMAL before being stored. In prior releases, it was
possible to store a double value in a %Numeric field.
Category: Security
Platforms: All
DevKey: STC1571
Summary: Allow %SS to be run by someone with READ access to CACHESYS
Description:
This change makes it possible for someone
with read access to the CACHESYS database to run %SS.
In previous versions, write access or %Admin_Manage:USE were
required.
Category: SQL
Platforms: All
DevKey: DPV3117
Summary: Fix <UNDEFINED> when field in mapsub expression swapped with RowID erroneously
Description:
A problem has been corrected where a single-field
IDKEY field defined in a Map Subscript expression, for example,
$$Tag^Routine({MyIDKeyField})
specified for the map subscript
expression in a child table would cause an <UNDEFINED> error.
Category: SQL
Platforms: All
DevKey: DPV3276
Summary: SQL: Correct code generation problem with null subscript replacement and into variables
Description:
This change corrects a problem where, in certain
rare cases, a syntax error would be generated for a SELECT query. The
occurrence of the error depended on what names were used in the
variable list of the INTO phrase.
Category: System
Platforms: All
DevKey: JLC1283
Summary: Fix cstat display of resource wait list
Description:
This change fixes a problem in cstat in Caché 2008.2.x
versions where the list of processes waiting for a resource would not
be shown.
Category: System
Platforms: All
DevKey: SAP1058
Summary: Fix mailbox race condition that causes timeout to be ignored
Description:
This change corrects a situation where multiple
processes examining the JOB queue at the same time
could
cause system
degradation, and continually get NOJOB errors.
Category: System
Platforms: All
DevKey: SAP1163
Summary: Jobserver loops forever after getting a <STORE> error
Description:
This change corrects a situation where a simple
routine to exhaust memory, for example,
will cause
a JobServer to loop forever.
Category: System
Platforms: All
DevKey: CDS1547
Summary: Fix for 2-digit date processing in $ZDATEH
Description:
Addressed an issue where
$ZDATEH() with date format 3 (ODBC format) and a two-digit year would
return an error result instead of the correct value.
Category: SQL
Platforms: All
DevKey: DPV3276
Summary: SQL: Correct code generation problem with null subscript replacement and into variables
Description:
A problem has been corrected where in certain rare cases a code generated
syntax error would occur on a SELECT query depending on what names were used in
the INTO variable list.
Category: System.Cluster Specific
Platforms: OpenVMS
DevKey: JO2255
Summary: Cluster fixes to update jrnwdpass when joining a cluster/after failover
Description:
InterSystems internal testing uncovered a small window in OpenVMS
clusters where the failure of a cluster member within a minute or two
of a new member joining could result in a cluster crash. This change
resolves that issue.
The problem was introduced in 2007.1 and can be recognized
because there will be a message in the console log of the cluster
master that the wdpass values in the
write-image journal files differed by more than
1, or there were more than 2 distinct values found.
Category: System.Journaling
Platforms: 1
DevKey: HYY1459
Summary: Address an issue causing WD to hang
Description:
This change corrects an error that could cause the
write daemon to hang. The circumstances triggering the error include
frequent journal file switches, heavy journal activity, and a system
interruption.
Category: System.Shutdown
Platforms: All
DevKey: SAP1159
Summary: %ZSTOP causes shutdown to hang due to switch 19
Description:
This changes corrects a situation where routines
that need to start a transaction (for example, to modify an object or
execute an SQL query)
would hang if called via %ZSTOP during shutdown.
Category: System.System Tray
Platforms: All
DevKey: RJW1662
Summary: 'Access denied' trying to start Caché through the cube on Non-English Windows Vista
Description:
A problem has been corrected that could cause starting a Caché
instance from the cube to fail with an "Access Denied" error message.
The problem occurred on Windows Vista and possibly Windows Server 2008
with a non-English locale. The problem was reported with Brazilian
Windows Vista.
This problem was present on all Windows Vista capable
versions of Caché (2007.1 forward).
Category: Utilities.Tasks
Platforms: All
DevKey: JB509
Summary: TaskManager - Fix upgrade issue
Description:
This change corrects an issue during an upgrade
where the upgrade code was referencing the wrong version value.
Category: Utilities.Tasks
Platforms: All
DevKey: JB510
Summary: TaskManager - Upgrade Issue from 5.0
Description:
This change corrects three issues with upgrades
from
Caché version 5.0:
- The code was checking for version 1.4 not 1.3
- The code was not returning a %Status value
- The code was not properly handling an old bug
where tasks could get miscategorized
Category: Utilities.Tasks
Platforms: All
DevKey: TRW648
Summary: Upgrade task database before scheduling inventory task
Description:
Upgrades from 5.0 to 2008.2 require that the Task Manager be upgraded before
new tasks can be created. This change ensures that the Task Manager is upgraded
before the installation creates the system Inventory task.