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:

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:

General Announcements
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.


Online Documentation
As a convenience to our users, InterSystems provides online access to documentation for recent product versions at the InterSystems documentation Web site.

Change Reports for Previous Maintenance Kits
The following are the previous maintenance releases of 2008.2:
Change Reports for Version 2008.2.4

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:

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:

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
Japanese : B0
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.


Change Reports for Version 2008.2.3

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,
f i=1:1 s a(i)=$zu(188)
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:
  1. The code was checking for version 1.4 not 1.3
  2. The code was not returning a %Status value
  3. 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.


Change Reports for Version 2008.2.2
Version 2008.2.2 of Caché includes the following changes:

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.

Change Reports for Version 2008.2.1
Version 2008.2.1 of Caché includes the following changes:

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

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:
(F=? OR F=? OR ...)
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.