|
|
|
InterSystems Documentation
|
|
Caché and Ensemble Maintenance Kit Release Notes Archive
|
Welcome and thank you for using InterSystems products.
The current maintenance kits are Caché and Ensemble 2008.2.5.
This document is only part of the available maintenance kit documentation.
The full set of documents is available in the
docs subdirectory of the product installation
directory. Release notes and related material are available as follows:
-
Late-breaking information about the release: <install-dir>\docs\cache\en-us\relnotes\cache\readme.1st or <install-dir>\docs\cache\en-us\relnotes\ensemble\readme.1st
-
Release notes for 2008.2.5: <install-dir>\docs\cache\en-us\relnotes\cache\relnotes.htm or <install-dir>\docs\cache\en-us\relnotes\ensemble\relnotes.htm
-
Release notes for the previous maintenance kits since 2008.2: <install-dir>\docs\cache\en-us\relnotes\cache\prenotes.htm or <install-dir>\docs\cache\en-us\relnotes\ensemble\prenotes.htm (this document)
This document is a historical archive of changes since the original 2008.2 release, but prior to the current maintenance kit.
Changes unique to the current maintenance kit are described in relnotes.htm.
This document includes the following sections:
InterSystems advises all users to recompile their application classes as part
of the upgrade process so as to take advantage of all the performance
improvements as well as other changes that may affect them in this release.
Anyone
upgrading from a Caché release at or before 5.0
will need a new license key.
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 Web site.
Users should check this list periodically to obtain the latest information on
issues that may have an effect on the operation of their site.
The following are the previous maintenance releases of 2008.2:
- Ensemble
- Ensemble.Adapter
- Ensemble.ManagementPortal
- Installation.Windows
- Languages.COS
- Networking.ECP
- Security
- SQL.GateWay
- Studio
- System
- System.StartUp
Category: Ensemble
Platforms: All
DevKey: MC924
Summary: Ens.Rule.RuleDefinition:PurgeRuleCache does not delete routine pointers
Description:
This correction fixes Ens.Rule.RuleDefinition:PurgeRuleCache to delete
routine pointers. Without this change, it is possible to have two
different rules pointing at the same routine in the rule cache.
Category: Ensemble
Platforms: All
DevKey: TAP719
Summary: Make Msg Browser query %ID instead of ID for message body classes that may have unusual IDKEY fields
Description:
This change makes the queries generated by the
Message Browser use %ID instead of ID in naming the IDKEY field of
message body classes. This allows the browser to correctly retrieve
messages whose IDKEY field is named something other than "ID".
Category: Ensemble.Adapter
Platforms: All
DevKey: TAP716
Summary: Fix SQL Adapter to work properly with error status
Description:
This change modifies %SQLGatewayConnection.Fetch to
properly handle the end-of-data condition when using ODBC stored
procedures
that return dynamic result sets. In this case, the result set
indicates whether more data is available; previously the adapter had
been depending on SQLCODE to indicate this condition.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: HCR035
Summary: Fix message trace when it contains events and the production is not running
Description:
This change corrects the message trace display to function properly
when the production is not running.
Before this, the display depended on the production being in a running
state. When this was not true, events related to the production may
have been omitted from the display.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: HCR036
Summary: Convert time logged from UTC to local time for events displayed in the message trace
Description:
In the details pane, the time logged for events was not being
converted from UTC to local time. This change adds this
conversion.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: HCR076, HCR080, HCR097
Summary: Resolve performance problem with Event Log items in Message Trace
Description:
Users might experience performance problems using the Ensemble
Message Trace when there is a high volume of Event Log entries. This
problem has been resolved. In addition, there are now search filter
criteria that allow users to have more control over the inclusion of
events in the trace diagram.
When a message trace diagram is displayed, if the
user clicks on the canvas a form containing fields with search
criteria appears in the bottom frame.
The control information provided is:
- IncludeEvents:
Check the box to see Event Log items related to the
session included in the trace, or uncheck to omit them. Default is
checked.
- EventsWindow:
Number of seconds, after latest time processed or
EndTime field, whichever occurs first, to look for events to be added
to the diagram. Default is 30 seconds.
- EventsMaxRows:
Maximum number of table rows in table Ens.Util.Log
that will be scanned, within the time limits defined plus
EventsWindow, to look for events that match the session. Default is
1000 rows.
The purpose of this limit is to contain scanning of the Event Log
table. If the upper time limit is reached, the search stops; if not,
in case there is a cluster of intense activity going into the Event
Log, which is very unlikely, Ensemble will stop after searching this
number of records.
If any of the above filter properties is changed, the change will
remain for the duration of the Portal session. The other search
fields affect the current diagram only. Clicking the Reset button
reverts the properties related to events back to their defaults,
reverts SessionId, and clears the other fields.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: HCR078
Summary: Ensemble SVG diagrams to work over HTTPS
Description:
When running the management portal over HTTPS, the
following SVG graphics would fail to render: Production Configuration
diagram, Message Trace diagram, Dashboards and Business Process
diagram. This problem has been fixed.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: HCR089, HCR090
Summary: Workaround problem with IE8 that causes Production SVG diagrams to not be displayed
Description:
In the Production Configuration page of the Ensemble
Management Portal, after sliding the frame dividers, if the user exited the
page and later returned to display another diagram, he would see just
the title frame and nothing else but a blue background.
The reason is that IE8 would set an incorrect size for the title
frame. When it restored the previous sizes it would acquire that wrong
size. This wasn't a problem with IE7 and IE6; it has been corrected
by this change.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: HCR097
Summary: Ensemble Message Trace performance fixes
Description:
This change consolidates all the
fixes to the Message Trace related to performance issues when there is
a high volume of Event Log entries.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: TAP833
Summary: Modify SQL generated by Message Browser page to improve query performance
Description:
This change modifies the SQL generation logic used in the Ensemble Message
Browser. The improvements made with this change are:
- Do not use the TOP phrase when SearchTable terms
are involved or when not using SessionStart
- For a simple equality test of a single SearchTable
property condition, do not use an IN subquery
- For negation operators (!=, DoesNotContain and so
on), generate a NOT IN of the inverse positive operator. This makes it
possible to exclude messages that have several property values
where one of them satisfies the negative condition.
- For = or != an empty-string, use logic that
includes or excludes messages that have no virtual document property
at all of the specified type.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: TAP850
Summary: Do not count disabled conditions in TAP833 MsgBrowser query optimization
Description:
TAP833 modified the queries generated by the Message Browser page when there is
only one simple equality SearchTable condition. This change fixes that
modification to work when there is only one *enabled* SearchTable condition (and
it is a simple equality condition). Disabled conditions no longer count.
Category: Installation.Windows
Platforms: All
DevKey: ALE1567
Summary: Fix platform detection code in Windows installation on Windows 2003 PDC
Description:
This fix corrects an error in the platform detection
logic of InstallShield that would detect a Windows 2003 PDC as Windows XP.
Category: Languages.COS
Platforms: All
DevKey: CDS1571, JLC1303
Summary: Fix breakpoint handling with ;;comments
Description:
If a breakpoint was set on the line immediately
following a ;;comment, the breakpoint would be ignored.
This is now fixed.
Category: Networking.ECP
Platforms: Solaris
DevKey: SAP1192
Summary: Workaround for failure on Solaris zones to get message
Description:
This change corrects an error where an attempt to
start a remote database in ECP via the Management Portal on Solaris
systems caused the ECP server to hang.
Category: Security
Platforms: All
DevKey: SML1129
Summary: Fix checking IP address in security access list
Description:
This change improves the checking of IP addresses to
account for the fact that IPV6 addresses do not support wild card
characters as IPV4 address do (for example, 192.168.*.*).
Category: SQL.GateWay
Platforms: All
DevKey: MIT841, MIT888
Summary: Consume result sets prior to retrieving output parameters in ODBC linked procedures
Description:
Prior to this change, output parameters in ODBC
linked stored procedures were not accessible in the case where
dynamic result sets were returned. This change also modifies the return value of
%SQLGatewayConnection.Fetch. It no longer reports an error if
SQLCODE=100. The user should check SQLCODE for errors when the end of
data is reached.
Category: Studio
Platforms: All
DevKey: AND1051, IYB581, DVU2513
Summary: Open Files dialog did not correctly release used resources
Description:
These changes correct an issue where certain activities in Studio
caused temporary information to be left in CacheTemp. Repetition of
these activities resulted in expansion of the CacheTemp database to
the point where it degraded system performance.
Category: Studio
Platforms: All
DevKey: DVU2542
Summary: Disable syntax-check-related actions
Description:
When a user disables syntax checking
(Options->Editor->Syntax Check and Assist->Enable Syntax
Checking "unchecked"), this change also disables all syntax-check
parser-related actions, including studio assist, tooltips and context
sensitive menu for particular syntax element will be disabled.
Category: Studio
Platforms: All
DevKey: SAP1168
Summary: Do not unpack target output on Unicode systems in Studio Debugger output window
Description:
This change corrects a problem where the output of
Japanese characters is garbled in Studio Debugger output window.
Attempting to write
Japanese : <ASCII(12354)>
would result in
instead of
Japanese : <Japanese symbol>
Category: System
Platforms: All
DevKey: GK722
Summary: Recover the active routine namespace during routine search
Description:
This change assures that the currently active namespace
is properly re-established when a routine search follows mappings to
other databases.
Category: System
Platforms: All
DevKey: JLC1299
Summary: Allow custom i/o tables to use built-in translations
Description:
With this change, Caché now allows the definition of custom i/o
tables at the locale level that use built-in translations for input,
output or both sides. Previously, attempting to use such tables would
cause an access violation.
Category: System
Platforms: UNIX, OpenVMS
DevKey: RFD369
Summary: Fix extension MIB registratation for UNIX/OpenVMS
Description:
Application extensions to the Caché SNMP MIB were
not getting registered on UNIX (or OpenVMS) when the Caché ^SNMP
sub-agent started, and no instances of the user's MIB could be
queried. This is now corrected.
Category: System
Platforms: All
DevKey: SJ2576
Summary: Fix problem decoding compacted Unicode strings with repeating digits at block boundary
Description:
This change corrects a problem where certain Unicode
strings with sequences of repeated digits was stored in a compact
form on the
disk, but then decoded incorrectly in a situation where the encoded
repeat sequence crossed a disk block boundary on disk.
Category: System.StartUp
Platforms: All
DevKey: SAP1191
Summary: Unset LC_COLLATE in scripts
Description:
This change works around an issue on Solaris with
Zones configured.
If
LC_COLLATE is set, translation of strings in scripts fails.
Because of this, an attempt to start a remote database in ECP via
the Management Portal causes the ECP servier to hang.
- 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: 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: 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: All
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.
Version 2008.2.2 of Caché includes the following changes:
- CSP.Gateway
- Ensemble
- Ensemble.Adapter
- Ensemble.HL7/EDI
- Ensemble.ManagementPortal
- Installation.Windows
- Languages
- Languages.COS
- Networking.ECP
- Object.ActiveX
- Object.C++
- Object.Java
- Object.LanguageBindings.Light C++ Binding
- Object.Library
- Object.XML
- Security
- SQL.DDL
- SQL.GateWay
- SQL.ODBC
- Studio
- System
- System.Backup/Restore
- System.Journaling
Category: CSP.Gateway
Platforms: All 64-bit
DevKey: CMT686
Summary: Workaround a new problem with the IIS V7 Native Module Interface that prevented chunked CSP responses displaying correctly
Description:
This change avoids problem with the IIS V7 Native
Module Interface that prevented chunked CSP responses displaying
correctly (that is, responses sent using HTTP chunked transfer).
This
correction only applies to x64 platforms.
Also, this build strengthens the code that checks for systems
management forms: if the PATH_TRANSLATED field for the request is
empty then the Gateway will use the value of SCRIPT_NAME instead to
determine the extension of the requested file.
Category: CSP.Gateway
Platforms: All
DevKey: CMT687
Summary: Fix a problem in the code responsible for sizing the buffer requirements for configurations containing huge numbers of server and application path definitions
Description:
This change corrects a problem in the code responsible
for sizing the buffer requirements for configurations containing huge
numbers of server and application path definitions. The issue could
potentially result in UNIX and OpenVMS based Gateway installations not
loading all the configurations listed in the CSP.ini file at start-up
time. This, in turn, would result in applications not being able to
access the resources that had failed to load (for example, access to
particular Caché servers).
Category: CSP.Gateway
Platforms: Windows
DevKey: CMT693
Summary: Resolve a security problem that prevented the use of Shared Memory under Windows 2003 (and later)
Description:
This change
resolves a security problem that prevented the use of Shared Memory
under Windows 2003 (and later).
The availability of shared memory is not critical to the Gateway and
CSP can function normally without it. Shared memory is currently used
as means for communicating between the Systems Management and Run-time
module. For example, it is used to cache the security tokens used to
protect access to the Gateway management forms for configurations
where the administrator chooses to password-protect them. As a
result, one visible consequence of an inability to access shared
memory is the need to repeatedly log in to the Gateway management
forms.
The Gateway, on failing to secure shared memory under Windows writes
the following message to the Event Log:
cspSHMinit : Startup error
Unable to create a handle to a shared memory block - code: 5 - Access is denied.
Category: CSP.Gateway
Platforms: All
DevKey: CMT698
Summary: Resolve a race condition caused by multiple frames accessing the Gateway data block responsible for registering state-transitions (preserve mode changes) against incoming session IDs
Description:
This change resolves a race condition caused by multiple frames
accessing the Gateway data block responsible for registering
state-transitions (preserve mode changes) against incoming sessions
IDs.
Category: CSP.Gateway
Platforms: All
DevKey: CMT702
Summary: Redesign the functionality responsible for managing the transmission (and caching of) response data between the Cache/CSP engine and the hosting web server
Description:
The functionality responsible for managing the transmission (and
caching of) response data between the Cache/CSP engine and the hosting
web server has been redesigned in order to resolve occasional memory
management issues when GZIP compression is used.
The new design greatly simplifies (without introducing any
extra overhead) the management of memory and the relationship between
the response streams and the Gateway cache. It also simplifies the
processing of response data that must be locally cached for the
purpose of generating a content length field for the HTTP headers.
Category: CSP.Gateway
Platforms: All
DevKey: CMT714
Summary: Ensure that the Apache API module (mod_csp) dispatches the HTTP response headers to the client in cases where no content follows
Description:
A fault in the Apache API module which
could occasionally result in a failure to dispatch HTTP response
headers for which there was no following content has been corrected.
This fault could affect HTTP redirect headers. A failure
to dispatch the headers under these circumstances would typically
occur when KeepAlive connectivity was in use.
Category: CSP.Gateway
Platforms: All
DevKey: CMT716
Summary: Fix a problem that resulted in wildcard requests (*) for all CGI environment variables not being honoured (CSPnsd only)
Description:
This change corrects an issue that resulted in wildcard
requests (*) for all CGI environment variables (as specified in the
Gateway configuration) not being honoured by the CSPnsd module.
Category: Ensemble
Platforms: All
DevKey: MC826
Summary: Do not set multiple alarms for ScheduleHandler
Description:
This change corrects a situation where updating a
production could cause extra, duplicate alarms to be set in the
scheduler for the production. Actively modified productions could
accumulate many, many such alarms.
Category: Ensemble
Platforms: All
DevKey: MC827
Summary: ParseScheduleSpec() to normalize values in ScheduleSpec
Description:
ScheduleSpec is to be specified in $ZDATETIME($H, 3)
format; it can include wildcards ("*") for all fields and "WEEK"
for year value.
ParseScheduleSpec looks at all the ScheduleSpec values, resolves the
wildcards and returns the next closest event in absolute time. In
ParseScheduleSpec, there is code that parses the ScheduleSpec looking
for the special values and copies the non-special values to the output
which is in $ZDATETIME format.
However, when the values in ScheduleSpec are malformed, it could cause
the $ZDATETIME to be malformed. For example, "2008-11-04T*:00:00S" is
such a value with an extra "S" at the end. This would yield a malformed
$ZDATETIME value "2008-11-04T19:00:00S".
This change forces a normalization to numeric
value of each field when constructing the output $ZDATETIME.
Category: Ensemble
Platforms: All
DevKey: MC858
Summary: ParseScheduleSpec() to normalize values of week-count
Description:
Before this change, the week-count value was not
normalized. Now it is.
Category: Ensemble
Platforms: All
DevKey: MC863
Summary: Fix bug that causes race condition in MarkJobDead
Description:
There was a circumstance where the attempt to
identify dead jobs created ghost job nodes with increasingly long
names that eventually led to generating a <SUBSCRIPT> error.
This has been corrected.
Category: Ensemble
Platforms: All
DevKey: MC870
Summary: Fix bug that Ens.MonitorService:Purge was using a wrong global name
Description:
This change corrects an internal error where
Ens.MonitorService:Purge was using the wrong global to search for jobs
to terminate.
Category: Ensemble
Platforms: All
DevKey: MC889
Summary: Fix bug that causes scheduler with WEEK syntax to go into tight loop
Description:
This change corrects a situation where the use of
the WEEK syntax in scheduling events could cause a tight loop that
wasted processor time.
Category: Ensemble.Adapter
Platforms: All
DevKey: DMC647
Summary: Fix problems with constructing reply messages
Description:
This corrects issues in constructing reply messages
that could cause an infinite loop while attempting to contruct a message
reply.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP772
Summary: Fix <UNDEFINED> in HL7 and X12 AckOut business operations
Description:
This change fixes an <UNDEFINED> error
in the code for HL7 and X12 'AckOut'
Operations.
Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP776
Summary: Fix Segment Terminators output in HL7
Description:
This change fixes an issue where
EnsLib.HL7.Segment.OutputToIOStream causes the segment terminator
characters that may optionally be appended to the pSeparators argument
to appear in the MSH:2 field where the field separator characters should
appear.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: TAP708
Summary: Fix bug with IN clauses in SQL generated by Message Browser
Description:
This change fixes an error with IN conditions used in
the Message Browser search criteria. An empty IN condition would
always be generated regardless of the user's specification.
Category: Ensemble.ManagementPortal
Platforms: All
DevKey: TAP785
Summary: Fix mapping of HL7 "leftoversegs"
Description:
This change corrects the segment references used in
"leftoversegs" PathMap entries. Leftover segments are the remaining
ones in an HL7 message after BuildMap() has parsed all the segments it
can parse. Typically they are Z segments, but they can be any kind if
the schema does not match the document.
Category: Installation.Windows
Platforms: Windows
DevKey: ALE1617
Summary: Fix silent client upgrade in old-style Windows installer
Description:
The silent upgrade of an instance which does not have
"Caché Engine" feature installed will no longer result in "dialogs out
of order" error.
Category: Languages
Platforms: All
DevKey: SJ2558
Summary: Release cached line flag tables when running out of space
Description:
This change causes Caché to release its
cached line tables when internal free memory
is low.
Category: Languages
Platforms: All
DevKey: SJ2559
Summary: Free up routine cache entries if we are about to give a <STORE> error
Description:
This change causes Caché to examine
successively higher-level cached routines to free when it is about to run out
of memory in the routine cache.
Category: Languages
Platforms: All
DevKey: SJ2560
Summary: Fix problem with merging two integer type (sub)arrays
Description:
This change corrects an error that could cause
an <ACCVIO> when merging two arrays that had only integer
subscripts.
Category: Languages.COS
Platforms: All
DevKey: CDS1403
Summary: Fix $ZDATEH() with trailing spaces
Description:
This corrects a situation where $ZDATEH() could
return an error when the date ended with a trailing space
character.
Category: Languages.COS
Platforms: All
DevKey: SJ2556, SJ2557
Summary: Fix problem with multiple references to a label on a dotted line or in a procedure
Description:
If a routine has two or more references to a label that
is within a dotted section of code or procedure block, all but the first reference would
be compiled incorrectly, causing them to branch to an incorrect
location in the code. This has been fixed.
Category: Networking.ECP
Platforms: All
DevKey: GK665
Summary: Modified ECP server not to wait for journal sync when the request buffer does not insert any journal entry
Description:
To support ECP recovery the database server syncs
its activities in the journal before the client can drop them. This
change modifies ECP to not perform the synchronization when the
request does not insert any journal entry.
Category: Networking.ECP
Platforms: All
DevKey: GK666
Summary: Modified ECP client request flushing rule
Description:
In rare conditions in low load environments, the ECP
client may delay flushing pending requests. This modifies the client to flush as soon
as possible.
Category: Object.ActiveX
Platforms: All
DevKey: JSL2597
Summary: Return server type of "%Library.Decimal" for decimals in ActiveX binding
Description:
This change forces the ActiveX binding to use %Library.Decimal for
numeric return values.
Category: Object.C++
Platforms: All
DevKey: IYB552
Summary: CacheActiveX, updated the client meta information to use decimal for %Numeric and %Decimal
Description:
Before this change, CacheActiveX and the dynamic interface ofthe C++ binding projected %Numeric and
%Decimal values as doubles. Now they are projected as decimal values, so the
server and the client receive the data
without any conversion.
Category: Object.Java
Platforms: All
DevKey: MAK2492
Summary: Add 'journal' to the export qualifiers as a dummy entry
Description:
This corrects a situation where an Export qualifier
had an incorrect entry in its list which caused an error when used.
Category: Object.LanguageBindings.Light C++ Binding
Platforms: All
DevKey: JMM280
Summary: Fix month one-off error when Light C++ Binding stores timestamp in index
Description:
This change corrects a problem in which, when the Light C++ Binding
stored an index entry for an index on a property of type %Timestamp,
the month was 1 less than it should be (for example, it stored 0
instead of 1 for January). Timestamp values were (and continue to be)
stored correctly in the data, it was only the index entries that were
stored incorrectly.
Category: Object.LanguageBindings.Light C++ Binding
Platforms: All
DevKey: JMM289
Summary: Light C++ Binding correctly lock when performing unique index check
Description:
This change fixes a problem in which Light C++
Binding failed to lock when checking for duplicates on a unique index,
which could lead to incorrectly violating a unique index constraint if
multiple threads near-simultaneously attempt to store objects with the
same index value.
This change affects Light C++ Binding C++ code generation, so after
upgrading to a version containing this change, any Light C++ Binding
generated C++ code must be re-generated and recompiled.
Category: Object.Library
Platforms: All
DevKey: TAP731
Summary: Fix terminator detection in %IO.StringStream.ReadLine() for CR/LF terminators
Description:
This change makes the ReadLine() method of class
%IO.StringStream work properly when more than one LineTerminator
character is specified. That is, it should break the line at whichever
terminator appears first, and if the terminators are CR/LF it should
return them both as a single detected-terminator string.
Category: Object.XML
Platforms: All 64-bit
DevKey: JN713
Summary: Ensure conversion of pointer to integer value is not truncated in SAX and XSLT
Description:
Use of an XDEV in CacheSAX or CacheXSLT requires a
callout to return a string representation of a pointer value. The
printf specifier that was being used would truncate a pointer on a
64-bit system. This has been corrected.
Category: Object.XML
Platforms: All 64-bit
DevKey: JN714
Summary: Rebuild Xerces Libraries for x64 in 2008.2
Description:
This change notes the rebuild of the Xerces Libraries for x64 in 2008.2.
Category: Security
Platforms: All
DevKey: BJB392
Summary: Fix %Alter_Table checking for Create Drop Index
Description:
A correction has been made to the SQL privilege
checking. Before this change, it was possible to CREATE, DROP, or ALTER
an index even if you did not have %Alter_Table privileges.
Category: SQL.DDL
Platforms: All
DevKey: DPV3346
Summary: SQL DDL: Fix unique check when added unique constraint through DDL
Description:
A problem has been corrected where a DDL statement added a UNIQUE constraint or
PRIMARY KEY constraint to a table with existing data, and the data for the
constraint was not unique, an error was not returned.
Category: SQL.GateWay
Platforms: All
DevKey: BJB394
Summary: Linked table query over 4000 char get extra char
Description:
This change corrects a problem with linked tables.
If an application contained a query that was over 4000 characters
long, an extra character would be added to the SQL that could result in an
invalid statement and an <UNDEFINED> error at runtime.
Category: SQL.ODBC
Platforms: All
DevKey: JCN984
Summary: Initialize variable in SQLError causing access violation
Description:
This change corrects an SQLError that results when
ODBC attempted to set up an environment header, if the connection has not
been established.
Category: Studio
Platforms: All
DevKey: DVU2478
Summary: Debugger attach fail with 2007.1.6 server
Description:
This corrects an error caused by incorrect version
checking in the Caché server. The error message that resulted
was "class
'%Studio.Debugger', method 'Attach': too many arguments".
It is present in 2007.1 server
when the maintenance version is higher then 5.
Category: System
Platforms: All
DevKey: CDS1511, CDS1518
Summary: Provide correct line location in debugger
Description:
Under some circumstances, the current location shown by the debugger could
be one line before the correct line. This is now corrected.
Category: System
Platforms: All
DevKey: GK681
Summary: Routine load to prevent the current/active namespace from releasing
Description:
When searching for a routine to load, if any
namespace is reconfigured, the unused namespace is released. Without
this fix, an incorrect and freed namespace is associated with the current routine
context. If the freed memory is reused for something else and if the
routine namespace context is required for $TEXT or error trap, the
consequences are unpredictable.
Category: System
Platforms: All
DevKey: GK685
Summary: Added support for more routines to be cached in multi-size routine environment
Description:
This change modifies the number of routines cached
to be dependent on the amount of shared memory to be allocated per
process. Prior to this, attempts to explicitly set the number of
routines could result in <STORE> errors.
Category: System
Platforms: All
DevKey: SAP1148
Summary: Correct viewbuffer length
Description:
Previous changes to the viewbuffer message made the
defined length of the viewbuffer too small, causing overwrite which
corrupted the message queue pointers. Users might see <ACCVIO>
in the message queues during view operations.
This has been corrected.
Category: System
Platforms: All
DevKey: SJ2549
Summary: Build line flag table into routine buffer, otherwise allocate as a buddy block
Description:
This change allocates the storage needed for
monitoring or debugging a routine in the routine buffer itself.
Category: System.Backup/Restore
Platforms: All
DevKey: JO2248
Summary: Prevent control process from suspending system when Backup.General.ExternalThaw runs
Description:
A minor issue where the control process might have suspended the write
daemon for 1 second after Backup.General.ExternalThaw() is executed
has been resolved.
This situation could have occurred any time ExternalFreeze() was in
force for more than 10 minutes. In this case, when ExternalThaw() is
called there was a window while the write daemon was waking up where
the control process does not see the extended time window set as part
of ExternalFreeze() and tries to suspend the system. The write daemon
starts running and the control process unfreezes the system one second
later.
While this could have been seen on Windows or VMS systems, it was most
likely to occur on a Unix system.
Category: System.Backup/Restore
Platforms: All
DevKey: SML1104
Summary: Avoid ExternalThaw() hang when write daemon is suspended
Description:
This change fixed a ExternalThaw() hang when the
write daemon is suspended by ExternalFreeze() and no global buffers are
available.
Previously, the ExternalThaw() would hang when it is started from a
command line of a different Caché job from the job called
ExternalFreee().
Category: System.Journaling
Platforms: All
DevKey: HYY1426
Summary: Keep write image journal journal info up-to-date during quick succession of journal switches
Description:
This change addresses an issue where the write image
journal info was not
kept up-to-date when journal files were being switched many times in a
short period of time (for example, if the maximum size of a journal file was
configured too small, and there was heavy journal activity).
If the
system crashed during this time, the journal recovery at next startup
may take a long time due to the outdated journal info.
Category: System.Journaling
Platforms: All
DevKey: HYY1449
Summary: Fix an <UNDEFINED> error in cluster journal restore
Description:
This change corrects an issue that caused cluster journal
restore to abort with an <UNDEFINED> error.
Version 2008.2.1 of Caché includes the following changes:
- CSP.Gateway
- Languages
- Languages.COS
- MgtPortal
- Networking.ECP
- Object.C++
- Object.CacheProvider
- Object.Class Compiler
- Object.LanguageBindings
- Object.Macro Preprocessor
- Object.Stream
- Object.XML
- Security
- SQL
- SQL.Query Processing
- Studio
- System
- System.Lock
- Utilities
- Zen
Category: CSP.Gateway
Platforms: All
DevKey: CMT688
Summary: Fix a problem in the code responsible for replacing 'old with new' session IDs in previously cached pages
Description:
When CSP caches a page returned from Caché it is usually
the case that the page is cached with the session ID (either as a
CSPSESSIONID cookie or CSPCHD form variable) of the user that first
requested the page. On subsequent retrievals of this page
from the cache for other users, CSP must replace all instances of the old
session ID with the ID of the current user accessing the page.
This change corrects a problem where the replacements were done even
in places where they should not be, such as embedded Javascript in the
page.
Category: Languages
Platforms: PPC
DevKey: SOH098
Summary: Fix ppc incnum/decnum
Description:
In the 2008.2 releases of Caché, the
optimizations for (a+1) and (a-1) do not work on 32-bit Power PC
systems when A is an expression of the IEEE double-precision binary
floating-point type. The compiler special cases increment-by-1 and
decrement-by-1 and evaluates these operations using special routines
written in assembly language. The 32-bit Power PC version of these
assembly language routines do not properly implement
increment/decrement of $DOUBLE values.
Category: Languages.COS
Platforms: All
DevKey: CDS1470
Summary: Fix crash after empty ZLOAD
Description:
An argumentless ZLOAD with an immediate end
of file leaves the partition empty. In this situation an access violation could occur
on a subsequent DO command. This is now fixed.
Category: Languages.COS
Platforms: All
DevKey: SOH091
Summary: Fix $LISTSAME with string and negative integers
Description:
This change corrects a problem where $LISTSAME could
give erroneous results for lists involving strings and negative
numbers.
Category: MgtPortal
Platforms: All
DevKey: YSD2066
Summary: MgmtPortal - Task Manager - Add prompts Start Date and End Date for Daily definition
Description:
On the Task Manager wizard, new prompts have been
added for Start Date
and End Date for Daily definition, similar to that of Monthly and
Monthly by Day.
The default for the Start Date is today.
Category: MgtPortal
Platforms: All
DevKey: YSD2082
Summary: MgmtPortal - Task Manager - Add prompts Start Date and End Date for Weekly definition
Description:
On the Task Manager wizard, new prompts have been
added for Start Date
and End Date for Weekly definition, similar to that of Monthly and
Monthly by Day.
The default for the Start Date is today.
Category: Networking.ECP
Platforms: All
DevKey: GK668
Summary: Modified the ECP server session shutdown to cleanup any queued background pre-fetching.
Description:
The ECP server shutdown has been changed to cleanup any queued
pending pre-fetch requests.
If not cleared properly, in very, very rare
conditions, the ECP server may receive a msg while the same
session's write daemon is shutting down, and leave the background
pre-fetcher in a confused state.
Category: Networking.ECP
Platforms: All
DevKey: GK669
Summary: Removed the journal file number/count dependency in the ECP server
Description:
To provide its guarantees, the ECP server depends on
the durability of its activities. Durability tracking was dependent
on the journal file number, which is not updated and tracked in
parallel with the journal offset. This change modifies the durability logic not to
depend on the journal file number.
Category: Object.C++
Platforms: All
DevKey: IYB553
Summary: Correct conversion error between client and server
Description:
This change corrects an error in exchanging strings between the client and server.
When receiving strings from the server, the C++ binding now converts them to Unicode unless the client has
the same locale. When sending strings to the server, the binding now converts strings to Unicode and
then to the server locale, unless the client and the server have the
same locale.
Applications that didn't check the d_string type descriptor (get_type()) may need to check it now in order to
interpret the data correctly.
Category: Object.CacheProvider
Platforms: All
DevKey: IYB556
Summary: CacheActiveX, put back string to number conversions when returning data from running a method
Description:
This change converts strings back to numbers when they are returned
from methods. Previously, this was not done in all circumstances.
Category: Object.Class Compiler
Platforms: All
DevKey: MAK2415
Summary: Remove class compiler dependency on the collation of '~' symbol
Description:
The class compiler had a dependency on '~' collating
in a certain order which was not true on a specific Czech locale. This
caused an error like:
ERROR #5355: Method generator dependency unresolved: ,,,,,
ERROR #5030: An error occurred while compiling class User.Test
when compiling a class.
This has been changed so that the code now uses an integer value which will
always collate the same way regardless of locale.
Category: Object.Class Compiler
Platforms: All
DevKey: MAK2472
Summary: When normalizing class names in a generator method use the import list from current class and not origin
Description:
When the class compiler processes something like ##class(Name).Method(),
it normalizes this classname based on the import list or the origin of
this method, that is, the class where this method was defined.
However,
generator methods are treated as if they were implemented in each subclass. So
this changes
the compiler to normalize names in this case relative to the current
class
rather than the class where this generator was initially
defined.
Category: Object.Class Compiler
Platforms: All
DevKey: MAK2496
Summary: Dynamic and SqlRoutinePrefix keywords were no longer used but should still be able to be imported
Description:
The class keywords, Dynamic and SqlRoutinePrefix, are
no longer used, but this change still allows them to be imported in
XML files.
Category: Object.LanguageBindings
Platforms: All
DevKey: IYB545, IYB548
Summary: %SYS.BINDSRV bug fix in output redirection
Description:
When sending the cached output in a redirection, an error could occur
if the redirection was executed in a context that made bindserver
variables unavailable. This has been fixed.
Category: Object.Macro Preprocessor
Platforms: All
DevKey: DPV3308
Summary: MPP: Do not pre-expand include files that have #execute in their code
Description:
A problem has been corrected where an include file
was stored in a precompiled state but the include code contained a
#execute MPP directive that needed to be executed for each routine
where the
include file was used.
Category: Object.Stream
Platforms: All
DevKey: MAK2485
Summary: <prop>GetObject for new stream classes was not returning the correct OID
Description:
If a class defined a property of type
%Stream.GlobalCharacter or %Stream.GlobalBinary and then called the
<prop>GetObject method to return the stream OID, the OID was
not correctly formed. This caused the delete of a stream
to silently fail in those
cases where it used the OID from <prop>GetObject to call %Delete on
the stream class.
This has been corrected.
Category: Object.XML
Platforms: All
DevKey: MXT1091
Summary: Fix bug: Canonicalize method of %XML.Writer loses definition of multiply-defined prefix
Description:
This change makes sure that the element prefix is
always defined
and thus fixes an error
in the Canonicalize method of %XML.Writer that lost the
element prefix when there were multiply-defined prefixes.
Category: Object.XML
Platforms: All
DevKey: MXT1092
Summary: Fix XML Canonicalization bug which causes invalid signing
Description:
This change corrects
a signing error with elements that have a prefix different from
that of the default namespace defined in that element. The symptom of
the error was extra
xmlns="..." in child elements.
Category: Security
Platforms: All
DevKey: STC1485
Summary: Fix <SUBSCRIPT> error in Security.Applications.Modify() during install
Description:
This changes fixes a problem with a <SUBSCRIPT> error when calling
Security.Applications.Modify(). The error occurred when the list of target roles for the
application definitions exceeded 255 characters in length.
Category: SQL
Platforms: All
DevKey: DPV3306
Summary: MV/SQL: Correct FOR SOME %ELEMENT with multi-valued fields
Description:
A problem has been corrected where "FOR SOME %ELEMENT"
on a MV multivalue field might encounter a <LIST> error at
execution time.
Category: SQL
Platforms: All
DevKey: DPV3310
Summary: SQL: Foreign Keys and mapped packages
Description:
This change corrects the behavior of package mapping.
For example, assume
- namespaces exist called N1 and N2;
- there is a package PK in namespace N1, and it has been mapped to N2 via
package mapping;
- a package FK exists in namespace N2.
If there is a foreign key in N2.FK.Class that references N2.PK.Class,
the application
must make sure package FK is also mapped to namespace N1. Failure to
do so will cause
any SQL INSERT/UPDATE/DELETE or Object saves/delete on class table PK.Class in
namespace N1 to fail with a
<NOROUTINE> error.
Category: SQL
Platforms: All
DevKey: DPV3318
Summary: SQL: Correct literal type reporting when literals in SELECT and FROM clause
Description:
A problem has been corrected where some literal
values used in a SELECT query via xDBC may not report the correct
datatype value if literal values appear in both the SELECT clause and the
FROM clause of the query (such as in a sub-query in the FROM clause of
the main query).
Category: SQL.Query Processing
Platforms: All
DevKey: AK710
Summary: Move ANYOF collection element looping inline
Description:
This change optimizes the processing of queries involving arrays of
elements.
The processing for the elements was moved to be inline rather than
processed in routine calls.
Category: SQL.Query Processing
Platforms: All
DevKey: AK711
Summary: Convert some OR to IN after parsing
Description:
This change corrects the handling of a condition of
the form:
to avoid causing a <FRAMESTACK> error when it
contains hundreds of terms.
Category: SQL.Query Processing
Platforms: All
DevKey: AK718
Summary: Fix IDKEY value order in old OR optimization
Description:
This change corrects an error in the handling
of queries in the style generated by MS/Access. Such queries
contained conditions in the WHERE clause that occurred in an order different from the
field order of the row. Under some circumstances,
this caused incorrect code to be generated for the query.
Category: SQL.Query Processing
Platforms: All
DevKey: JLF180
Summary: Check for FROM clause correlations in subquery transformations
Description:
This change corrects an error that can occur with
FROM clauses and subqueries. Under some circumstances, queries
involving nested IN queries within WHERE clauses in conjunction with HAVING clauses could disable
important optimizations.
Category: Studio
Platforms: All
DevKey: DVU2434
Summary: Include MAINTVERSION in calculation version number
Description:
Studio was calculating version based on MAJORVERSION
and MINORVERSION. This caused a problem in connecting to 2008.2.1.
The calculation has been corrected so that it now satisfies the
requirement
that the client should have a
version not lower than the server.
Category: Studio
Platforms: All
DevKey: JN708
Summary: Fix wrong byte count in utlAutoBSTR::AsAString(), AsXString()
Description:
This change fixes the methods AsAString() and
AsXString() used by Studio to determine the length of a string to be
converted. Prior to this, under some circumstances,
calculation could result in an access violation.
Category: Studio
Platforms: All
DevKey: RAW771
Summary: Studio editor: printing: extra blank page is printed at end
Description:
Beginning with 2008.1, Studio printing added
an extra blank page at the
end of a print job.
This is now fixed.
Category: System
Platforms: All
DevKey: GK667
Summary: Re-enabled 2K database float support which was disabled accidentally
Description:
This change re-enables support for float-point that was disabled
accidentally for 2K databases. The symptom of the problem was that
errors
occurred when attempting to KILL a floating-point node in a 2K database.
Category: System
Platforms: All
DevKey: JLC1223
Summary: Add missing table descriptors to NLS files
Description:
This change adds two missing cp1250 table descriptors that
prevented 8-bit locales based on this character set (for example, csw8, plw8,
huw8) to be installed.
Category: System
Platforms: All
DevKey: JLC1230
Summary: Avoid potential <WIDE CHAR> error during NLS upgrade
Description:
This change avoids a potential <WIDE CHAR>
error during the NLS phase of Caché upgrades running on 8-bit locales
that use non-Latin1 character sets such as CP1251-based Russian (ruw8).
Category: System
Platforms: All
DevKey: JLC1231
Summary: Allow digits in custom locale names
Description:
This change allows digits in the middle characters
of locale names (for instance, "yt8w"). These were prohibited by
^NLS, but could be produced by cnls.exe in older versions and
therefore are valid.
Category: System
Platforms: All
DevKey: JO2250
Summary: Correct internal stack violation when loading routines > 65311 bytes
Description:
This change corrects an internal stack management problem when loading a
routine larger than 65311 bytes.
Before the change this situation could lead to the stack overwriting
other memory structures which could, in turn, lead to memory exceptions and
process dumps.
This issue occurs on any system where a process loads a
routine larger than 65311 bytes more than 255 times.
Category: System
Platforms: OpenVMS
DevKey: RFD412
Summary: Fix terminal margin handling for VMS Itanium
Description:
The 'margin' parameter of the terminal USE command
(e.g. USE 0:(270) ) was handling values >255 differently on OpenVMS
Alpha and Itanium. The documentation says "Values from 1 to 255
set the right margin for output; any other value disables the right
margin".
However, on OpenVMS Alpha, Caché handled values up to 511. On OpenVMS
Itanium, Caché internally truncated the value to one byte,
essentially acting as a #256 on values between 255 and 512.
This change makes OpenVMS Itanium act like OpenVMS Alpha.
Category: System
Platforms: All
DevKey: SAP1112
Summary: Correct startup test lock
Description:
A callin program that tries to start an instance
before the instance is fully initialized locks the instance and prevents startup
while the callin program exists.
This change corrects that situation.
Category: System
Platforms: All
DevKey: SML1090
Summary: Fix missing database protect checking in reverse order
Description:
This change fixed a database security hole that
allowed a user who did not have access to a global to successfully
execute a $ORDER on such a
global.
Category: System.Lock
Platforms: All
DevKey: SML1086
Summary: Fix ECP lock recovery might casue inconsistent lock tables between client and server.
Description:
This change fixes a possible lock table
inconsistency between client and server when an ECP server shuts down
and
is
restarted.
In this situation, some "cancelled" locks might stay in the client's lock table
even though they did not exist in the ECP server.
This problem exists on big
endian platforms.
Category: Utilities
Platforms: All
DevKey: STC1467
Summary: Fix index corruption when using %R to compile
Description:
This change corrects a problem
where a missing "^" before a reference to rINDEX caused
Caché to rebuild the routine index
incorrectly with a bad length.
Category: Utilities
Platforms: All
DevKey: STC1491
Summary: Fix %ER deleting errors when default of "NO" is taken
Description:
This change corrects a situation where the default answer of "NO"
might be interpreted as "YES" in %ER.
Category: Utilities
Platforms: OpenVMS
DevKey: STC1501
Summary: Let Backup.General.ExternalThaw in if switch 13 is set
Description:
This change allows Backup.General.ExternalThaw() to complete in an
OpenVMS cluster environment. Prior to this, it would hang.
Category: Zen
Platforms: All
DevKey: JMD487
Summary: Extra columns displayed within tablePane
Description:
This change corrects an error where extra
columns may be displayed in Zen table panes under certain
circumstances. This can happen when (1) dataSource is set to "columns", (2)
there are more columns in the source data than there are columns
defined by the tablePane, and (3) table uses "snapshot" mode.
Category: Zen
Platforms: All
DevKey: JMD488
Summary: Correct an issue where the Zen calendar component may show the wrong date
Description:
If the current day is the 31st of the month, and you
select a date in a month with less than 30 days, then the calendar
will display the wrong month.
This is now corrected.
Category: Zen
Platforms: All
DevKey: JMD489
Summary: Correct an issue where the Zen calendar has trouble with daylight savings time
Description:
This corrects an error where client is using
daylight savings time, close to the end of the day the date used
by calendar may be off by one day.
© 2009, InterSystems Corporation. All rights reserved.