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 2009.1.3. 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 2009.1 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 the Previous Maintenance Kit
The following are the previous maintenance releases of Caché 2009.1:


Change Reports for 2009.1.2

Category: CSP.Gateway
Platforms: Macintosh
DevKey: CMT762, CMT763
Summary: Build universal bundles for the x86-64 Mac OS X platform

Description:

This change modifies the compiler/link settings such that universal bundles will be built for the x86-64 Mac OS X platform. The previous settings prevented the Management Portal from working properly on 64-bit systems.

Category: Ensemble
Platforms: All
DevKey: MC986
Summary: Restore transaction level in user error traps

Description:

This change restores the transaction level in user error traps.

When application code errs with a transaction level > 0, Caché does a TROLLBACK in the error trap. Otherwise, the transaction level will never go down to 0 and this will cause inconsistencies in processing afterwards.

This change added TROLLBACK for the user callback in Business Services, Processes and Operations.


Category: Ensemble
Platforms: All
DevKey: TAP874
Summary: Fix SQL queries used in MessageHeader Purge() when KeepIntegrity = true

Description:

This change fixes the SQL queries used in the Ens.MessageHeader Purge() method when that method is called with the argument KeepIntegrity = 1. Because of a subtle SQL syntax problem the previous form of the query did not correctly identify rows to purge that should be purged.

Category: Ensemble.Adapter
Platforms: All
DevKey: TAP842
Summary: Account for long key subscripts that may contain Unicode in SQL Adapter cache tables

Description:

This change improves the previous truncation algorithm used for turning query strings into cache table keys. It now uses a shorter truncation limit in order to avoid <SUBSCRIPT> errors even when the allowed subscript length is halved due to the text containing Unicode characters.

This change also fixes three other places where similar cache table subscripts are used.


Category: Ensemble.Adapter
Platforms: All
DevKey: TAP882
Summary: Fix SQL adapter Large Object issues

Description:

This change fixes three issues with SQL Large Object support:

This change also adds Java type definitions to EnsSQLTypes.inc and adds new methods each to EnsLib.SQL.GatewayConnection and EnsLib.SQL.Snapshot:


Category: Ensemble.Adapter
Platforms: All
DevKey: TAP892
Summary: Fix SQL Adapter ExecuteProcedure with both OutputParam and Result Snapshot nullifies Snapshot list

Description:

This change fixes a bug that causes the SQL Adapter to eliminate some or all output result snapshots generated from a stored procedure call if the SP also had any scalar output parameters.

Category: Ensemble.DTL
Platforms: All
DevKey: DDP030
Summary: Don't modify %session.AppTimeout for Ensemble SVG in Studio

Description:

This changes forces Ensemble to respect the default CSP application timeout when opening DTL in Studio. Previously, this was overridden to be set to "never", which caused CSP session licenses to be held in perpetuity; only manual intervention or an Ensemble restart would release the licenses.

Category: Installation.Windows
Platforms: All
DevKey: ALE1809
Summary: Correct name for Caché startup shortcut created on non-English systems

Description:

In version 2009.1, a Windows installation on non-English systems would create a Start Menu shortcut in the Startup folder as "Launcher" rather than <INSTANCENAME>. As a result, after a reboot users could have two cubes for the same instance, if it was an upgrade from 2008.2 or below. This change fixes the problem.

Category: Languages
Platforms: x86
DevKey: SJ2588, SJ2589, SJ2590
Summary: Fix a problem in assembly language optimization on Intel x86 platforms with addition

Description:

This change corrects a problem when adding two large numbers. If each number has 19 digits, and each has a single digit after the decimal point, and the sum will not fit in a 64-bit signed number, the application can get a <SYSTEM> or other error when trying to save or use the result.

Category: Networking.ECP
Platforms: All
DevKey: GK713
Summary: Fixed an ECP hang

Description:

This change corrects an issue where, in rare conditions, ECP daemons might be out of sync and search for locally cached blocks. This caused an unexpected delay in responding to various requests.

Category: Object.C++
Platforms: All
DevKey: IYB607
Summary: C++ binding, mark all zobjval client nodes as valid after the zobjval client value gets updated from the server

Description:

Sometimes, when processing a client request, the server did not send cache updates for properties that were modified on the client. Thus resulted in excessive calls to the server instead of getting the value from the cache.

This change forces the client to assume that after a roundtrip to the server the client cache must be valid, even if the server didn't send any updates. As a result, the client should not send extra messages to the server.


Category: Object.DotNet
Platforms: All
DevKey: IYB610, IYB611
Summary: CacheProvider, don't use Shadow in Open() methods of generated VB code

Description:

VisualBasic and C# have slightly different rules regarding how methods are shadowed and/or overloaded. This change adjusts for the differences in the two languages thus removing VisualBasic compiler errors.

Category: Object.DotNet
Platforms: All
DevKey: IYB612
Summary: Dotnet_generator: report compiler errors when generating an assembly

Description:

Prior to this change, the .NET code generator did not report compiler errors when generating an assembly; it always reported a successful completion even when an assembly was not generated. With this change, any errors or warnings that occur are reported back to the user.

Category: Object.Java
Platforms: All
DevKey: MAB836
Summary: Fix deadlock in collections for Full Java Binding

Description:

This change corrects a problem where connection pooling by multiple Java applications accessing the same Caché data could result in a deadlock.

Category: Object.LanguageBindings
Platforms: All
DevKey: DMC688
Summary: ObjectiveCache: More precise conversion of NSDecimalNumber to d_decimal

Description:

This correction resolves an issue where large integer values were not being properly converted from NSNumbers into d_decimal.

Category: Object.Library
Platforms: All
DevKey: MIT927
Summary: Fix normalization code for %currency and %Decimal

Description:

In some cases $DOUBLE values could be stored in these datatypes. With this change, the proper datatype is used.

Category: Object.XML
Platforms: HP-UX
DevKey: JN781
Summary: Correct workaround of Virtual Memory Deallocation on HP Itanium

Description:

On HP-UX Itanium, virtual memory was not being deallocated correctly. This became apparent when using %XML.Adaptor::XmlExportToString(). This change corrects the deallocation issues.

Category: SQL.GateWay
Platforms: All
DevKey: MIT933
Summary: Honor delimited id setting for linked tables in joins

Description:

The bug was fixed that the delimited ids setting was not honored in joins.

Category: SQL.Server
Platforms: All
DevKey: DPV3481
Summary: SQL: Correct problem that did not allow {%row} to resolve properly

Description:

A problem has been corrected where the use of {%row} in %CacheSQLStorage definitions would cause a class compiler failure.

Category: SQL.SQLFiler/TableCompiler
Platforms: All
DevKey: DPV3473
Summary: SQL Filer: Perform immediate unlock of shared lock acquired on foreign key referenced row after this row has been filed

Description:

When inserting or updating a row into a table that has a foreign key, Caché acquires a lock on the referenced row that is released when the transaction ends. This lock is required to check the referential integrity of the foreign key constraint and ensure the row still exists from the time the lock is acquired until the time this row is inserted or updated.

If there are many rows inserted or updated in a single transaction and many foreign keys on the table, this could hold many locks in the lock table.

With this change, Caché will no longer hold the lock for the duration of the transaction, but will release the lock after the row has been inserted or updated. By this time the system has ensured referential integrity and the row in the referenced table cannot be updated or deleted during the course of this transaction because the referential action on the foreign key constraint will prevent the update or delete on the referenced table from occurring.


Category: Studio
Platforms: All
DevKey: ALE1806
Summary: Set blank username/password for Studio server connection in minimal security install

Description:

With this change, Windows installation will set the username and password to blanks when a minimal security setting is used to install a product.

Category: Studio
Platforms: All
DevKey: MC988
Summary: Fix memory leak caused by stringlist.cpp

Description:

This change corrects a memory leak that occurred under certain uses of $LISTBUILD, $LISTGET and $LISTGETNEXT.

Category: System
Platforms: All
DevKey: JLC1321
Summary: Fix hang in terminal read when pasting a UTF-8 string

Description:

This change corrects a problem that could cause a process to hang when trying to read text pasted into the input stream that uses a multi-byte encoding such as UTF-8 or JIS.

Category: System
Platforms: Macintosh
DevKey: JLC1323
Summary: Identify Mac OS X with 64-bit kernel in cplatname

Description:

This change allows Caché to properly recognize when it is running on the MAC OS 10.6 ("Snow Leopard") kernel.

Category: System
Platforms: All
DevKey: JLC1324
Summary: Redirect standard file descriptors to /dev/null in $zf(-2)

Description:

External programs started with $zf(-2,<path>) on Unix platforms now run with the standard file descriptors 0, 1 and 2 redirected to /dev/null. Previously these three descriptors were closed before starting the program.

Category: System
Platforms: All
DevKey: JO2274
Summary: Release retained gbuf in use cmd before we issue any system calls

Description:

This correction resolves a defect where a process could get blocked in a USE command by the operating system and cause Caché to hang if it had retained ownership of a global buffer.

Category: System
Platforms: All
DevKey: SML1165
Summary: Namespace re-activation protection

Description:

This change fixes a possible <NAMESPACE> or <DIRECTORY> error that could occur while the system is re-activating the namespace table while a namespace is edited.

Category: System
Platforms: All
DevKey: SOH120
Summary: Fix loop bound in LocToUTC, $ZU(193,xxx,1)

Description:

$ZUTIL(193,x,1) converts a date X to UTC. If X represents the first day of the year, where (year mod 4)=1, the result might be incorrect. This bug has been fixed.

Category: System
Platforms: All
DevKey: SJ2577
Summary: Fix core dump with $zu(70,4,"")

Description:

This change fixes a problem where a core dump can occur when running the INTEGRIT utility.

Category: System.Cluster Specific
Platforms: All
DevKey: RJW1738
Summary: Cluster resource, ISCCres2003.dll, not working on 64 bit Windows clusters

Description:

A problem has been corrected that could cause the Caché cluster resource to fail.

The symptom is that the cluster manager would become unresponsive and the Caché cluster resource will not work. This problem has been seen on 64-bit Windows, but may also occur on 32-bit Windows clusters.


Category: System.I/O
Platforms: All
DevKey: HYY1485
Summary: Fix stream READs on a device opened with compression/decompression enabled (/GZIP)

Description:

This correction addresses an issue that could cause READs on a device opened with /GZIP (i.e., with stream compression/decompression enabled) to fail to read data. The problem is most prominent when the READ length is 32767, the default for stream READS without terminators or length specifier.

Category: System.I/O
Platforms: OpenVMS
DevKey: RFD477
Summary: Fix check for OPEN pipe device on OpenVMS

Description:

Trying to OPEN a TCP device with the letter "Q" in the hostname was failing with an <UNIMPLEMENTED> error. This was due to a faulty check for a "pipe" on OpenVMS. It has now been corrected.

Category: System.Monitoring
Platforms: HP-UX
DevKey: RFD471
Summary: Fix Caché Diagnostic Report for HP-UX

Description:

The Caché Diagnostic Report was using an unsupported option for the process list on HP-UX. This has been corrected.

Category: System.Shadowing
Platforms: All
DevKey: HYY1486
Summary: Write shadow copy of journal file in RAW mode on OpenVMS

Description:

This change corrects an issue that could cause a shadow server to produce corrupted copies of source journal files on OpenVMS if process default I/O table is not RAW (for example, the I/O table is EUC in locale 'jpuw').

The problem is believed to be present in all supported Caché releases.


Category: Utilities
Platforms: All
DevKey: STC1668
Summary: Delete mappings when deleting a namespace

Description:

When a namespace is now deleted, all the cached mappings for it are also deleted. Previously, when the same name mapping was re-added, the cached mappings would be applied to the namespace.

Category: Utilities
Platforms: All
DevKey: STC1669
Summary: Fix COMM port handling with new config classes

Description:

With this change, the comm port server process now start and will handle comm port logins. Previously, the comm port server process would not start.

Category: Utilities
Platforms: All
DevKey: STC1670
Summary: Allow IP address to be used as server name

Description:

When upgrading to 2009.1, if an ECP server name was defined to be an IP address of the form n.n.n.n (for example, 127.0.0.1, the loopback address), the installation would fail during the conversion of the CPF file. This has been fixed.

Category: Utilities
Platforms: All
DevKey: STC1672
Summary: Don't fail installation if we can't update the CPF file

Description:

Previously, if there was a problem converting the CPF file during an upgrade, the installation would fail. The only recourse was to correct the CPF file, then re-install.

Now the installation will complete, allowing administrators to fix the CPF file, and restart to be upgraded to the new version.


Category: Utilities
Platforms: All
DevKey: STC1678
Summary: Allow null device name for DDP

Description:

This fixes a problem where the system would not start if it was using DDP, and the DDP device name was left as null (which means use the default device.)

Category: Utilities.Configuration
Platforms: All
DevKey: SML1161
Summary: Fix SLM mapping when user defined mapping override system default mapping

Description:

This change fixes an issue where a user overrode a system default mapping such as %Z* routine resulting in the wrong destination for the %Z* mapping.

Category: Utilities.Configuration
Platforms: All
DevKey: SML1164
Summary: Fix mapping got <UNDEFINED> error when index needs to be re-aligned

Description:

This change fixes a situation where an attempt to activate mappings resulted in an <UNDEFINED> error. This occurred when there were many mapping entries and internally Caché attempted to re-index the mapping array.

Change Reports for 2009.1.1

Category: CSP.Gateway
Platforms: All
DevKey: CMT755
Summary: Correct Unicode character handling for UTF-8

Description:

This change ensures that escaped Unicode characters are properly extracted and passed to the function that un-escapes them and converts to UTF-8. Previously, this issue could prevent query strings with embedded Unicode characters from being decoded correctly.

Category: Documentation.Tutorials
Platforms: All
DevKey: DEN023, DEN024, DEN021, DEN022
Summary: Update Tutorials

Description:

These changes update the following tutorials:

Category: Ensemble
Platforms: All
DevKey: DMC685
Summary: Ensemble: Fix Ens.DataType.Class for "extends self"

Description:

The datatype Ens.DataType.Class has a parameter EXTENDS that allows the user to require that the value of the type extend the indicated class. Before this change, however, if you tried to use the EXTENDS class as the value, then the validation would fail because a class isn't considered to be derived from itself (which isn't really proper polymorphic behavior).

Category: Ensemble
Platforms: All
DevKey: HCR099
Summary: Ensemble upgrades to preserve previous CSP application settings

Description:

When upgrading Ensemble, the upgrade process overwrote the CSP application definitions for each of the Ensemble-enabled namespaces. In case the user had modified settings such as resource required, matching roles, description, timeout, these modifications would be lost upon an upgrade.

This change corrects that situation. Now, if the CSP application for a namespace's Ensemble Portal already exists, the upgrade process opens its definition and only sets the following properties, keeping the previous values for all other properties: CookiePath, LockCSPName, NameSpace, Path, Recurse, ServeFiles, UseCookies, LoginPage.


Category: Ensemble
Platforms: All
DevKey: HCR101
Summary: Ensemble globals mapped from ENSLIB to be created with proper collation

Description:

This change corrects a problem that can occur on a Spanish system during an Ensemble upgrade. The collation for Ensemble globals with subscript level mapping from ENSLIB was not set correctly and could cause a collation mismatch error depending on the default collation for the database.

This would only happen on systems whose default collation is not Caché Standard, and in namespaces created during installation or post-installation such as ENSEMBLE (but not ENSDEMO which is created later in the process).

This correction adds new entries for all Ensemble globals mapped from ENSLIB with settings Collation = 5 (Caché Standard) and IsKeep = 1. It also properly handles existing local data that may exist in the local database for the globals that are mapped at the subscript level only.


Category: Ensemble.Adapter
Platforms: All
DevKey: TAP843
Summary: Fix low-order byte stream cleanup logic in Snapshot class when SQL Adapter is finished with a low-order byte

Description:

This change fixes a bug that causes a stream storage for low-order byte data retrieved by the SQL Adapters into a Snapshot object to be killed improperly. The stream data in question is stored in the ^CacheStream global.

Category: Ensemble.Adapter
Platforms: All
DevKey: TAP844
Summary: Fix IPv6 parsing for TCP, HTTP, and CST adapters

Description:

This change fixes a defect introduced with IPv6 parsing in the TCP Inbound Adapter and its subclasses. The bug results in an invalid IP address when a port is specified in both the Port setting and as part of the AllowedIPAddresses setting.

The correct behavior when port is doubly specified is for the Port setting value to be ignored and the AllowedIPAddresses value to take precedence. This change restores the correct behavior.


Category: Ensemble.Adapter
Platforms: All
DevKey: TAP855
Summary: Fix EnsLib.SQL.Snapshot.ImportFromResultSet()

Description:

This change fixes errors in the method ImportFromResultSet() in class EnsLib.SQL.Snapshot that prevented it from working, in particular the use of an undefined variable tGblRef.

Category: Ensemble.Adapter
Platforms: All
DevKey: TAP864
Summary: Tolerate whitespace in stored procedure queries invoked via SQL Adapters

Description:

This change enhances the parser used to determine which Stored Procedure arguments are being used as parameters in an invocation of ExecuteProcedure() on the SQL Inbound or Outbound Adapter.

This change also improves disconnect detection around calls to DropStatement()


Category: Ensemble.HL7/EDI
Platforms: All
DevKey: TAP861
Summary: Fix X12 Group Identifier and TypeVersion accessors to get correct GS field values

Description:

This change fixes the accessor methods used by X12 to get TypeValue and Identifier calculated property values in the case where the document is an X12 Group, that is, starts with a GS segment. Formerly these fields were extracted as if the document were a TransactionSet starting with an ST segment; this yielded the wrong field values.

Category: Ensemble.JavaGateway
Platforms: All
DevKey: TAP851
Summary: Return and check status codes from initialization methods in SQL JDBC & Java Gateway adapters

Description:

This change makes the initialization methods return status code values and makes the methods that call them check those return values consistently. This improves behavior when an associated JavaGateway configuration item cannot be located for an SQL Operation or Service configured for JDBC.

Category: Ensemble.ManagementPortal
Platforms: All
DevKey: HCR098
Summary: Additional workaround to IE8 bug that causes blank screens in the Ensemble Mgmt Portal

Description:

Internet Explorer 8 has a bug that causes it to acquire a wrong size in frameset.rows for the first frame in a frameset.

IE8 bug report can be found at: http://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=432864

It affects the Ensemble Management Portal as most of the pages contain frames.

There were other changes to workaround this situation. This new version also introduces a new behavior regarding resizing of the title frame, regardless of browser version.

In case the title frame size is reduced we will keep the chosen size. In case it's enlarged, it will be set back to its original size of 100 pixels. There's nothing below so it's pointless to have it larger than 100 pixels. This makes the workaround easier and also it seems to be better than the previous behavior.

The behavior is also in effect for IE6 and IE7 in order to have all users see the same regardless of browser version.


Category: Ensemble.ManagementPortal
Platforms: All
DevKey: TAP850
Summary: Don't count disabled conditions in MsgBrowser query optimization

Description:

Before this change, a previous correction 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: Ensemble.ManagementPortal
Platforms: All
DevKey: TAP853
Summary: Fix UNDEFINED nActions in X12 & EDIFACT ReplyStandard.OnGetReplyAction()

Description:

This change fixes a case where the variable nActions is defined after it is used. This change also removes an obsolete property %ReplyActions.

Category: Installation
Platforms: Macintosh
DevKey: TRW678, IYB606
Summary: Support install of Perl/Python bindings on macx64

Description:

This change now enables the Perl/Python bindings to be installed on MACX64

Category: Installation.UNIX
Platforms: All
DevKey: TRW667
Summary: CSP Gateway regex workaround for OS X 10.4 Apache 2.2 bug

Description:

The regular expression used by the CSP gateway configuration in Apache's httpd.conf file has been modified to work around a bug in the Mac OS X 10.4 provided Apache.

Category: Installation.Windows
Platforms: All
DevKey: ALE1766
Summary: Change custom setup type accelerator key in setup role dialog

Description:

This change alters the custom setup accelerator key in setup role dialog to "u" to avoid conflict with "Server" setup type key.

Category: Installation.Windows
Platforms: All
DevKey: ALE1782
Summary: Fix an access violation in setup bootstrapper when instance name is longer than directory length

Description:

This change corrects an access violation error in the setup bootstrapper that was happening when instance name was longer than installation directory name.

Category: Installation.Windows
Platforms: All
DevKey: ALE1791
Summary: Update VC redistributables installation to include ATL security update

Description:

This change updates the Microsoft VC2008 SP1 redistributable packages to include ATL security update.

Category: Languages.COS
Platforms: All
DevKey: CDS1571
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 corrected.

Category: Languages.MVCommands
Platforms: All
DevKey: GGC303
Summary: Better support for MV printing and transactions

Description:

This change makes the MultiValue spooler more robust when it comes to handling printing with transactions, notably transaction rollbacks.

All MultiValue print job updates are now performed outside of a transaction. This means that any transaction rollbacks that occur in the application will not affect the print job in any way and the data in the print job will remain intact and uncorrupted.


Category: Languages.MVCommands
Platforms: All
DevKey: GGC306
Summary: Correct emulations for MultiValue KEYIN() function

Description:

The PICK emulation for KEYIN() was incorrect in that it was echoing according to the ECHO ON/OFF status. In this emulation, it should never echo. This change implements that behavior.

Category: MgtPortal
Platforms: All
DevKey: YSD2213
Summary: SMP - Configure Devices - Fix problems with loading SubType list and using IE8

Description:

This changes corrects problems in the Management Portal page:
[Home] > [Configuration] > [Device Settings] > [Devices]
namely,


Category: Migration.TSQL
Platforms: All
DevKey: AGC1178
Summary: TSQL - Restore correct parsing of "%" operator now that "%" can begin a name

Description:

This change corrects an error in the TQSL parser that interpreted a name beginning legally with "%" as an expression involving the "%" operator.

Category: Object
Platforms: All
DevKey: MXT1172
Summary: Fix typo in IsString method of %SAML AttributeValue

Description:

This corrects a typographic error in the IsString method of %SAML AttributeValue that negated a validity check.

Category: Object.Activate
Platforms: All
DevKey: YSD2243
Summary: ActivateWizard - Change $$$Text to $$$TextJS for javascript alerts

Description:

This change fixes a problem where a javascript error may occur when the wizard tries to display a warning message and, (A) the user clicked the Finish button without first selecting a row, or (B) the user selected more than 10 rows.

Category: Object.Library
Platforms: All
DevKey: DMC678
Summary: ObjectiveCache: Support d_decimal type (D_DECIMAL_ID)

Description:

Another change added support for a new d_decimal type for %Numeric and %Decimal types to be projected via the C++ binding.

Since the Objective-C binding uses the C++ binding for its underlying connection to Caché, it was necessary to make additional changes to the Objective-C binding to project d_decimal types as NSNumber (actually, a subclass NSDecimalNumber).


Category: Object.NETGateway
Platforms: All
DevKey: AND1064
Summary: Java/.Net Gateway: Fix <COMMAND> error in Gateway.%ExpressImport

Description:

This changes corrects an error where an expected value from a method call was not returned.
Category: Object.Soap
Platforms: All
DevKey: MXT1171
Summary: Fix Role element of SOAP 1.2 fault

Description:

This change corrects a Role element of SOAP 1.2 fault which was not properly terminated.

Category: Object.Sys
Platforms: All
DevKey: CDS1574
Summary: Fix misspelled nThreadsPerCore method name

Description:

The nThreadsPerCore method of the $SYSTEM.CPU class was misspelled as nTheadsPerCore. This fixes the misspelling.

Category: Object.XML
Platforms: All
DevKey: MXT1174
Summary: Fix %XML.Reader to return SAX parser validation errors

Description:

This change alters the %XML.Reader to return SAX parser validation errors. The SAX parser was reporting the error, but there was a mismatch between %XML.Reader and the Caché interface to the parser.

Category: SQL.GateWay
Platforms: All
DevKey: MIT922
Summary: Correct error reporting for insert/update statements through JDBC Gateway

Description:

This change corrects an error introduced in 2009.1 where return value of executeUpdate was assigned to %ROWCOUNT. The error manifests itself as the absence of error messages for an unsuccessful operation.

Category: SQL.Query Processing
Platforms: All
DevKey: AK742
Summary: Recompute "needed for output" flag

Description:

An optimization was added identifying cases where fields in certain views mentioned in a query were not actually essential to processing the query, resulting in improved run-time performance for those queries.

Category: SQL.Query Processing
Platforms: All
DevKey: AK744
Summary: Fix BSL with %INLIST condition

Description:

A correction was made to the code-generation of certain queries that use a multi-index access strategy, for example queries that use the %INLIST comparison operator, or queries of the form:
    SELECT id FROM t WHERE x=:a OR (x IS NULL AND :a IS NULL)
where t.x has an index and t has a multi-field IDKEY.

Category: SQL.Query Processing
Platforms: All
DevKey: PVA179
Summary: Fix execution time <undefined> for a query with multiple opportunities for OR to UNION optimization

Description:

A problem has been fixed where an <undefined> could occur during execution of query that had two or more WHERE clauses, each of which has an OR that is subject to an OR to UNION optimization.

For the problem to occur, one of these OR conditions must be present in subquery of the query/subquery containing the other OR.

It is also possible this problem could arise with only one OR to UNION candidate. In that case, the query with an OR would have to also contain a subquery against an irreducible FROM clause subquery that had outer references to the query containing the OR.


Category: Studio
Platforms: All
DevKey: DVU2542
Summary: Disable syntax check related actions

Description:

This change implements the following: when a user disables syntax checking (Options->Editor->Syntax Check and Assist->Enable Syntax Checking "unchecked"), all syntax check parser related actions, including studio assist, tooltips and context sensitive menu for particular syntax element will be disabled.

Turning syntax checking in this way avoids unnecesaary work by Studio when scrolling through a large document.


Category: System
Platforms: All
DevKey: JLC1287, JLC1291, JLC1312
Summary: Update core counting and detection of Hyper-Threading Technology on x86 chips

Description:

This change correctly identifies when HyperThreading Technology is activated on recent Intel x86 chips (Nehalem-based), and how many cores are present.

Category: System
Platforms: All
DevKey: JLC1301
Summary: Don't set multi-dimensional flag in $zobjexport if maxpropsize = 0

Description:

This change corrects the behavior of object export. The multidimensional flag is only set if the property size is greater than zero. This change allows the xDBC connections to optimize their handling of properties only when they actually change.

Category: System
Platforms: All
DevKey: JO2283
Summary: Disable database truncation

Description:

This change disables the feature that returns unused space from a database to the filesystem. An attempt to invoke this functionality will have no effect, that is, no space will be returned.

This will remain disabled until there is a correction for a condition where an attempt by different processes to truncate and to expand the same database at the same time results in a hung system.


Category: System
Platforms: All
DevKey: RFD472
Summary: Fix <ACCVIO> when a process HALTs with an open XDEV device

Description:

This change corrects a situation, present only in 2009.1, that could cause Caché to halt with an access violation error when a process halts leaving an XDEV in an open state.

Category: System
Platforms: All
DevKey: RJW1728
Summary: Prevent access violation when inet_ntop() returns failure

Description:

The use of inet_ntop() to translate IP addresses was introduced in the system code when IPV6 support was introduced in Caché 2009.1. Checks for a zero return value were not made everywhere, which could lead to an access violation if inet_ntop() could not translate the binary address to display format. This problem has been corrected.

Category: System.Callin/Callout
Platforms: All
DevKey: SAP1205
Summary: Use thread safe ttyname_r in threaded Callin

Description:

This change now makes starting up Caché work with a threaded Callin application.

Category: System.Journaling
Platforms: All
DevKey: HYY1477
Summary: Fix <UNDEFINED> error in journal restore when a target database is not journaled

Description:

This change corrects a situation where an attempt to restore a journal involving an unjournaled database could result in an <UNDEFINED> error.

The problem was introduced in 2009.1.0.


Category: System.Lock
Platforms: All
DevKey: SML1150
Summary: Fix missing delock due to lock count update is delayed

Description:

This change fixes a problem where the delock (L -^A) command might skip its operation and leave the lock in lock table.

Category: System.Shadowing
Platforms: All
DevKey: HYY1465
Summary: Fix an <UNDEFINED> error on starting a non-cluster shadow

Description:

This changes addresses a defect that resulted in an error like the following:
<UNDEFINED>zSourceEventsExecute+29^SYS.Shadowing.Shadow.1 *req("4"))
when the user started a non-cluster shadow after specifying the name of the shadow to start, but before giving a list of Source Events to choose to start shadowing at.

The problem is believed to be present in Caché 5.1 and forward (all releases containing HYY1119).


Category: Utilities
Platforms: All
DevKey: STC1626, STC1637, STC1638, STC1639, STC1641, STC1650, STC1651, STC1660, SML1158
Summary: CPF Converter handles mappings as in 2008.2 and earlier

Description:

These changes properly handle the conversion of mappings present in a 2008.2 (or earlier) configuration file to an equivalent set of mappings in 2009.1. The major features of this conversion are:

  1. All mappings (globals, routines, subscript-levels) are subject to the same rules.
  2. Any overlaps found are converted into an equivalent, order-independent sequence of non-overlapped mappings.

Category: Utilities
Platforms: All
DevKey: STC1641
Summary: Fix $ZEOF handling in Config.CPF

Description:

This change corrects an error in end-of-file checking when reading the CPF file that could result in an infinite loop.


© 2009, InterSystems Corporation. All rights reserved.