Changes between Caché 5.0.1 and Caché 5.0.2
This section provides a listing of changes between Caché
5.0.1
and
Caché
5.0.2.
To help you assess the impact of these changes on your
applications, each change description contains a more detailed explanation of
the modification.
All changes include a table giving pertinent information on the
problem likelihood, impact of the change, and whether this has already been used
successfully in production by other customers.
In order to make the information easy to assimilate visually,
the tabular information has been simplified to a keyword or two and a
value. The full explanation of the keyword meanings are:
- Likelihood - The probability that a user on the affected
platform will encounter this issue.
- Risks - An assessment of how likely this change is to
introduce additional issues into the application environment.
- Ad Hoc - This item indicates whether this change has previously been
deployed in an ad hoc release and successfully used by customers in production.
- Enhancement - This notes whether this change provides new
features or capabilities.
Possible Compatibility Issues
PLEASE EXAMINE THE REFERENCES IN THIS SECTION
CAREFULLY.
They document necessary modifications to Caché for this version that may
affect the way your applications are designed, implemented, executed and/or
administered.
Category: Object.Sys
Platforms: All
DevKey: CDS407
Summary: Fix object reference counting for properties
Description:
This fixes a problem with object reference counting which allowed an
object to stay active even though its system reference count was zero.
This condition happened when the object reference was stored in an
object property that was declared as a non-object data type, such as
%String or
%Integer.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Relationships
Platforms: All
DevKey: DLP1018
Summary: Do not add disconnected objects to SaveSet if they don't exist in extent
Description:
Previously, if two objects contained a relationship to each other,
and one of the objects was subsequently changed to delete its side of
the relationship, that deletion may have failed to propagate to disk.
This resulted in the referenced object still being present in the
relationship.
This has been fixed for "cardinality = many" and
"cardinality = children". The possibility of error still exists for
1:1 and M:N relationships.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: OpenVMS
DevKey: JO1699
Summary: Changed the generation of the network shared memory section name on OpenVMS
Description:
The method for generating the shared memory section names on OpenVMS has
been changed to avoid problems when OpenVMS allows multiple processes to
have the same process name. The prior method used the conflict in
process names to detect that another instance of Caché was running. A
limitation which arises from this change is that the name of the device which
Caché is installed on (for example, where the manager directory resides)
cannot be longer than 16 bytes (excluding the trailing ":" but
including a leading "_"). This should not pose a problem for any sites,
but Caché will refuse to start up after displaying an error message
if this is the case.
Impact:
Production hang
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: System.Backup/Restore
Platforms: All
DevKey: LRS675
Summary: Improve mag tape backup performance under NT
Description:
This Caché maintenance kit includes a revision in the backup utility
that significantly improves performance for certain tape devices on
Windows platforms. This may, however, render Caché unable to read
backups from previous maintenance kits and versions.
For tape drives such as a DLT4, the backup block was being written out
as a series of much smaller blocks. This revision significantly
improves performance by ensuring that a single contiguous block is
written, but it also means that a backup generated on the same
hardware before this fix cannot be restored by a version of Caché with
this fix.
Caution:
Backups made on certain kinds of tape drives on previous versions
under Windows might not be able to be restored by a version with this
revision. Customers should make a new backup
immediately after
upgrading and/or retain a Caché instance of the prior production
version.
Impact:
Backup runs slowly
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Moderate |
Yes |
Yes |
Category: System
Platforms: All
DevKey: LRS678
Summary: Fix $ZHOROLOG calculation on fast Windows machines
Description:
A bug that caused the $ZHorolog special variable to return negative
values on a Windows machine with a 2.1GHz processor or faster has
been fixed.
Impact:
$ZHOROLOG is generally used in internal application
timing.
It is unlikely this will affect a production application.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK568
Summary: Generate instance methods of an abstract class
Description:
If you define a class as abstract, Caché now generates all instance methods
as well as class methods. Previously it only generated class methods.
The instance methods are needed so Caché can call these via ##super from
a subclass.
Impact:
##super now works with abstract superclasses
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Moderate |
No |
Yes |
Category: Object.CDL
Platforms: All
DevKey: DPV1993
Summary: Generated sqlcomputecode from Release 4.1 is not compiled correctly
Description:
Certain CDL files that loaded and compiled correctly in Cache 4.1.9 failed to
compile in Cache 5.0.1.
This is due to the table compiler adding an "=" at the end of a line.
This has been fixed.
Impact:
CDL files that did not compile now will.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK702
Summary: Allow class methods of data type classes to be called
Description:
In Caché 4.x, it was valid to call the class methods of a data type
class using the syntax:
Write ##class(=datatype).Method(args)
In Caché 5.0, this results in a class not found error. This is because
we support this syntax at the system level now and the class
descriptor that allows the system code to find where to call was not
generated for data type classes. We now generate the class descriptor
for data type classes so you can call these class methods.
Note
that calling a class method of a data type class is different from
calling the generated method when you use this data type as the type
of a property because this has a different set of parameters. For instance, as a
property of a class you can specify that a string has a maximum length of
50 characters but in the data type class itself it may default to 100
characters. When you call this data type class directly you need to
be aware that this is a different context.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: DLP1043
Summary: Hide nested serial columns in SQL projection
Description:
Nested serial columns should be hidden if their properties are also projected to SQL.
This logic existed in the serial property projector but was setting the 'hidden' flag too late
in the process. It now determines correctly when the projection of serial columns should
be avoided.
Impact:
Little; projection of nested serial objects is a new feature.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
Yes |
Category: Object.XML
Platforms: All
DevKey: MXT428
Summary: Store XML for empty character streams as "" instead of $c(0)
Description:
When saving an empty element value (<tag />) to a character stream
property, we now store "" in the stream object rather than
$c(0).
When no
element is present, we still store no stream element.
Impact:
Empty streams are now exported to XML in a better way.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
Yes |
Category: Object.XML
Platforms: All
DevKey: MXT433
Summary: XMLExport treats serial references with no data as null (no tag)
Description:
XMLExport was changed to treat references to serial objects as null if all
values in the serial object are "". A serial object with no value set
will now export without any tags. This uses the SQL test for NULL
object.
Impact:
Serial (embedded) object are not included within an XML projection if the object is NULL (i.e., all of its fields are missing).
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Moderate |
Yes |
Yes |
Category: System
Platforms: OpenVMS and Tru64 UNIX
DevKey: SML364
Summary: Improve cluster $INCR performance
Description:
The performance of $INCREMENT in a cluster-mounted database from a
machine other than the cluster master has been dramatically
improved. This is for ECP cluster configurations.
Note: although the risk of this happening as noted
below is high, this is not a compatibility issue. It is a performance one.
Impact:
Customers are unlikely to see any impact, because $INCREMENT
on clusters was fast enough to support thousands of users already.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
Yes |
Other Changes to Caché
The following list of references summarizes
changes in this version of Caché which are upwardly compatible corrections and
enhancements since the prior version. InterSystems does not expect that these
will affect the normal operation of your existing applications. For ease in
searching, they are grouped according to the area of the system they modify.
If the affected platform is not listed specifically with the change summary,
the change is effective for all supported platforms.
Category: CSP.Tags
Platforms: All
DevKey: MXT399
Summary: Fix compile error for page in Basic that contains csp:search tag
Description:
Code generated by csp:search CSP tag included a
..QuoteJS(...) method
call for pages written in basic. This is a syntax error. The
generated code for a basic page now generates
me.QuoteJS(...).
Impact:
Previously, CSP applications developed using BASIC
would have failed during compilation.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: CSP.Tags
Platforms: All
DevKey: MXT407
Summary: Improve csp:search sorting
Description:
Add support for ascending (ASC) or descending (DESC) sort to the csp:search tag as follows:
The format of ORDER attribute is now comma separated list of fields of
the format
where
propname is the name of
the property and
direction is optionally ASC or DESC. If
direction is
not specified then the default from the SELECT or WHERE attribute is
used.
The format of the WHERE and SELECT attributes is now a
comma separated list of fields of the format
propname alias | direction
where
propname is the name of the property,
alias
is the optional SQL alias to be used and
direction is the default
direction (ASC or DESC) to be used for this property in the ORDER
attribute if not specified there.
Impact:
Improved performance
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
Yes |
Category: CSP.Tags
Platforms: All
DevKey: MXT442
Summary: Fix CSP:SEARCH tag problems with aliases
Description:
The following fixes related to the use of alias in the SELECT and
WHERE lists were made:
- For each of the comma separated
properties, treat everything following the first space after the
property name as the alias. Ignore the optional "AS" separator
between the property name and the alias. "name alias" is equivalent
to "name As alias".
- No longer use the alias in the generated
SQL statement, since it is not needed. This change removes any
problems with the use of delimited identifiers in an alias. Delimited
identifiers in the field name already work.
- Change to passing
the order property using the property name rather than the alias.
This change fixes the problem with highlighting of the sort column
and removes the only use of the alias in the SQL statement.
Impact:
The CSP Search page now uses column aliases correctly.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Moderate |
No |
Yes |
Category: CSP
Platforms: All
DevKey: MAK637
Summary: When importing CSP files if no /csp/namespace pick first application that is defined in this namespace
Description:
When importing CSP files, if the application does not match because it
came from another namespace but there was a '/csp/namespace'
application defined for the current namespace, it was imported
there.
This is now extended so even if there is no
'/csp/namespace' it will pick the first alphabetically collating
application that maps to this namespace.
Impact:
Import of CSP files is improved when importing into a different namespace.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: CSP
Platforms: All
DevKey: MAK688
Summary: Licensing bug with preserve mode and %session.Login
Description:
If a Preserve=1 process terminated unexpectedly, the license that it
owned would never be released because there was no record of the
license number that it obtained.
Impact:
Gradual reduction of license capacity
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: CSP
Platforms: All
DevKey: MAK709
Summary: Long URLs could cause SUBSCRIPT error in CSP engine
Description:
A page with a long URL could cause a <SUBSCRIPT>
error in the CSP engine at
GetCSPClassName+3^%cspServer when it was
attempting to look this page up in a cache of page-to-class
translations. This was due to faulty logic in detecting when the
subscript was too long to use this global cache lookup.
Impact:
CSP application users would receive an error.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: CSP
Platforms: All
DevKey: MXT443
Summary: Netscape/Java version 1.4.0_03 returns [object] instead of [string] for csp method
Description:
Netscape 7.0.2 with Java plug-in 1.4.0_03 treats the return of a Java
method (that was called using LiveConnect) as an object rather than as
a string. JavaScript for #server is modified to concatenate "" to the
return value (which converts it to a string) in case of object return
from a Java method.
Impact:
CSP #server calls now work better with NetScape v7.0.2.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: Config Mgr
Platforms: All
DevKey: CFL923
Summary: The 5.0 Configuration Manager was localizing the Yes/No strings in 4.1 configuration files
Description:
A bug has been fixed where a 5.0 or later Configuration Manager was
localizing the Yes/No strings when editing a 4.1 configuration file. Such
unwanted localization prevented recognizing the expected Yes/No
attributes.
Impact:
The Configuration Manager user interface would
display inappropriate characters in non-English locales. There was no risk to production.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: Control Panel
Platforms: All
DevKey: CFL919
Summary: Fix namespace name truncation
Description:
This fix corrects the display of long namespace names which were
previously truncated.
Impact:
Cosmetic improvement
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Documentation.DocBook Application
Platforms: All
DevKey: GAB007
Summary: Add search paths to DocBook application
Description:
The undocumented global,
^%SYS("DOCBOOK","SOURCE"), previously held
the default location where the documentation sources could be found.
This has been generalized to include a list of such directories. Its
use in loading documentation is also now described.
Impact:
Users who are loading their own content into the
DOCBOOK namespace will see load failures until they re-arrange their
global structures describing the source directories.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
Yes |
Category: Documentation.DocBook Application
Platforms: All
DevKey: GAB008
Summary: Correct errors in DocBook.Utils.XMLExport facility
Description:
This corrects two errors found while attempting to use the XMLExport method of DocBook.Utils.
First, an incorrect reference to a property in one of the DocBook classes (refentry) was corrected.
Prior to this, attempts to export reference material as XML would result in a
<PROPERTY DOES NOT EXIST> error.
Second, XMLExport used to generate a reference to the XML stylesheet provided
by SoftQuad for DocBook. This is vestigial since the application no
longer uses this facility. It has been removed.
Impact:
Attempts to export documentation as XML files will
now worked where previously they had failed.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
Yes |
Category: Explorer
Platforms: All
DevKey: CFL921
Summary: Fix crash in class import
Description:
A problem involving the import and compile of a large number of
classes has been fixed. Previously, this could result in the error
Run-time error '91': Object variable or With block variable is not set
Impact:
Developers importing XML might receive an error.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: Installation.Windows
Platforms: Windows
DevKey: ALE206
Summary: Improve consistency checking among install options
Description:
This change corrects a situation involving resetting of certain component
selections during installation.
This affected Pentium 4 specific components as well as CSP and WebLink
Web server specific modules. Prior to this change, the installation program ignored the
user's choice
to install or not install web server specific modules.
It allowed a user to select or deselect these modules, but it
installed modules
for all detected Web servers regardless of the user's selection.
Furthermore, when the Web server was not detected, install didn't try
to
install these components even when they were selected by the user.
This change
does not allow users to select components for web server modules if the
corresponding web server is not detected. Users still can deselect a
particular CSP/weblink module, which can be useful if there are
two or more web servers installed and users don't want to install CSP/Weblink for all of them.
Impact:
Install now honors the users wishes more closely.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: Installation.Windows
Platforms: All
DevKey: ALE188
Summary: Explorer and Control Panel now work properly from Start menu in download kits
Description:
The default configuration name for kits downloaded from our Web site is
CACHEWEB, but the
shortcuts created referred to CacheWeb instead. Caché Control
Panel and Explorer could not be started because the Windows Start menu is case-sensitive
in this area.
Impact:
Minimal: The Cube still works in the presence of
this fault.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
Yes |
Category: Installation.Windows
Platforms: Windows
DevKey: ALE202
Summary: Client-only installation on Pentium4 system installs server components too
Description:
When proceeding with a client-only installation of Cache 5.0.1 on Windows 2000,
the server side components were also installed. This has been fixed.
Impact:
Increased disk usage and access on a client PC, as
well as possibly having unauthorized Caché servers deployed.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
Yes |
No |
Category: Installation
Platforms: All
DevKey: ALE191
Summary: Load and execute cbootuser.rsa routine if it is present on installation media
Description:
Install now checks for presence of file "cbootuser.rsa" on the
installation media in the same directory as cboot (NT\Install in case
of Windows). If this file exists, install loads it and executes routine
"cbootuser". This allows customers to execute code for such things as creating databases,
loading globals/routines, and so on every time Caché is
installed from this media.
Please note that at the time this routine
is executed no namespaces are defined yet and no object code can be
used.
$zutil(5) can be used to switch between implied namespaces.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Misc
Platforms: All
DevKey: TR960
Summary: Correct reverse $Order with ECP
Description:
Reverse $order over ECP could
return a <DATABASE> error.
Impact:
An application user may receive a false
<DATABASE> error.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: Networking
Platforms: UNIX, OpenVMS
DevKey: DAS449
Summary: Change Default Packet Size to Avoid Fragmentation of UDP Packets
Description:
Previously, the default packet size on OpenVMS and UNIX systems was set to 3600
to improve performance. Because some networks do not perform fragmentation and
re-assembly of packets, this causes DCP clients to timeout and display the
<Server... is down...> message. The fragmentation problem may be due to an
operating system or router setting.
To correct this problem, the default maxudppktsiz parameter on all platforms is
now 1468, which is the maximum packet size sent by Caché. This obviates the
previous need to fragment packets. Note that the Caché Configuration Manager
allows you to increase the maxudppktsiz to a maximum of 3600, which provides a
small performance improvement on networks which know how to perform
fragmentation properly.
Impact:
The application user may see an annoying, yet benign, message <Server is Down>.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
Yes |
Category: Networking
Platforms: All
DevKey: GK199
Summary: Modify ECP client read daemon.
Description:
This change prevents a possible race condition in
between DB state changes (such as dismount) and client cache cleanup.
Impact:
ECP may fail.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK201
Summary: Fixed ECP array handling
Description:
In certain rare circumstances, ECP referenced an array out of bounds.
On all platforms this array is padded by the
platform compiler, and the problem wasn't exposed unless things were
relocated in memory.
Now if things are
relocated in memory this will not cause a problem.
Impact:
ECP may fail.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK209
Summary: Enable Caché to start even if network initialization fails
Description:
When the network takes too long to initialize, the write daemon could fail to start on a system
with a lot of buffers configured. This has been corrected.
Impact:
Caché may fail to start.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: DLP983
Summary: EXTERNALSQLNAME was not properly referenced for embedded objects
Description:
This change corrects the spelling of EXTERNALSQLNAME everywhere it is
used. This property parameter is used to define the name of a column
projected to an external SQL DB.
Impact:
An ODBC query may fail.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: DLP984
Summary: Project multiple levels of embedded object properties to SQL
Description:
When a persistent class contains a property whose type class is a
serial class (embedded object), the properties of the property's type
class are projected to SQL as columns. The name of the projected
column is the <container column>_<serial column>.
In versions prior to
5.0.1 this projection is restricted to one level of embedding. In 5.0.1 multiple
levels of embedding are projected to SQL. The name of the projected
column follows the same form as before but the <container column> can
also be a column projected from a serial class.
For example, Class
City is serial with properties City, State, Country, and
PostalCode. Class Address is serial with properties Street (type
%String) and City (type City). Class Person has a property, Home as
Address.
Prior to this change, only Home_Street and Home_City would be
projected as columns to SQL. Now Home_Street, Home_City (hidden),
Home_City_City, Home_City_State, Home_City_Country and
Home_City_PostalCode are projected.
Impact:
Enhance the projection of multi-level embedded
object properties.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Medium |
No |
Yes |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK640
Summary: Remove bad formal spec from CDL load
Description:
Old CDL files may have an extra '()' around the formal
specification of methods due to an error in a previous version of
Caché. These CDLs were not compiling because of the extra '()' in the
formal spec. We now strip the extra '()' when the CDL is loaded to
avoid this issue.
Impact:
Impedes a developer from loading certain CDL files
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK664
Summary: %SQLQuery methods retaining SQL as comments
Description:
This change makes the class compiler use the same flag to decide if it wants to
retain SQL source in the INT code as the standard MAC compiler.
Impact:
Debugging object applications which use Query methods would be a bit more difficult
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK665
Summary: Optimize pass of class compiler produces wrong code
Description:
If you create a class with the following properties:
Property Array As %String [ Collection = array ];
Property Index As %Integer;
Then create a method:
Method Test()
{
Write ..Array.GetAt(..Index)
}
If you compile this with full
optimizations on, then the code generated from this Test method will
be incorrect. The generated code attempts to find the '..Index' inside the '..Array'
object rather than in the current object. Now Caché inserts the
optimization correctly.
Impact:
Class compiler optimizer now generates correct code for collections.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK697
Summary: Expression method bracketing problem
Description:
If an expression method looked like '(a=1)||(a=2)' then the class
compiler would substitute it without adding any additional brackets,
so if the code was:
It ended up looking like:
It was not detecting that even
though this expression starts and ends with a bracket. It needs an
additional bracket so now it will substitute the expression:
Write '((var=1)||(var=2))
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK717
Summary: Correct ##super for generator methods
Description:
When you use '##super' the first thing it does is find where this
method was originally implemented and looks for the superclass to this
class. However, if the method is a generator method then the class is
'implemented' at every level so just look for the superclass to the
current class.
Impact:
##super directive now works with method generator methods.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.EJB
Platforms: All
DevKey: JSL1076
Summary: Allow CMP deployment to follow BMP deployment
Description:
We deleted the jar from the JBoss deployment directory. This allows
CMP deployment to follow BMP deployment.
Impact:
You can now use CMP EJB deployment after using BMP deployment.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1066
Summary: For CMP generation, fix JNDI name in reference accessor in serial classes
Description:
When CMP generation generates support for a Caché serial class, if
the serial class has a "persistent" (a reference), the JNDI name of
that reference is generated incorrectly. This changes the generation
of the JNDI name to prefix BEANNAME before it.
Impact:
EJB CMP generation is improved for serial classes.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB170
Summary: Memory leak in Caché / Java object connection
Description:
Opening and closing Java Binding connection using method
CacheDatabase.getDatabase(java.sql.Connection) caused memory
leaks. This is fixed now.
Impact:
Java-based applications may crash due to
insufficient memory.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.LanguageBindings
Platforms: All
DevKey: JSL1084
Summary: Support nested serials in EJB projection
Description:
We now support nested serials.
Suppose we have P (persistent) containing S1 (serial)
containing S2 (serial). Let's suppose they are all in package Pack1.
You might think that you access S2 from S1 but you
access it from P. For instance, you will have a dependent object
Pack1.EJBS2. The values in this dependent object for remote EJB
object p that is a proxy for Pack1.EJBP can be obtained and modified through:
P.get_S1_S2()
P1.set_S1_S2(s2)
in the above s2 is a dependent object instantiating Pack1.EJBS2.
You can also use the following:
P.get_S1().get_S2()
and
s1 =P.get_S1();
s1.set_S2(s2); // change is only in memory
P.set_S1(s1); // change is now in the database
Remember, you must always go through proxy for a persistent
(projection of a persistent) to
actually set value on Caché. Just working with serials alone is just an in memory operation.
Impact:
EJB projection now works with nested serial objects.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.LanguageBindings
Platforms: All
DevKey: JSL1087
Summary: Corrected errors in EJB Wizard nested serial support
Description:
Nested serials need to be loaded in serial constructor even though they may be marked as "hidden".
Also the logic for projecting fields does not properly set the fields of a serial set accessor.
Users should take note of the fact that changing
a field from hidden to non-hidden or vice-versa
requires the EBJ code to be regenerated and recompiled.
In general, if you change any
characteristics of your classes you should regenerate EJB support.
Though it seems as if changing a field from hidden to non-hidden, or
vice-versa, will have no affect on your EJB code working,
Caché relies on the fact that changes in the description of the class
require it to be fully regenerated.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Library
Platforms: All
DevKey: MAK714
Summary: %Net.FTPSession doesn't go back to use $IO in one case
Description:
In
%Net.FTPSession in the method
readResponse(), if an error condition
occurred, then the current device was not reset. This left it as the TCP/IP
device to the ftp server.
Impact:
Application error.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Library
Platforms: All
DevKey: MAK715
Summary: "-d" flag do not work for %Routine.Compile on error
Description:
Calling the Compile method on
%Routine class with the '-d' flag to
prevent anything from being displayed to the current device was not
working. If there were errors with the routine it was still displaying
them. This change now honors the '-d' flag.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Library
Platforms: All
DevKey: MAK729
Summary: Add extract of directory name from path
Description:
This change adds two class methods to
%File:
- GetDirectoryLength(dirname), which returns
the number of pieces in this directory name, for example
'c:\temp\mysub' has three pieces on a Windows environment.
- GetDirectoryPiece(dirname,piece,.fullpath,.isdirectory), which returns the
asked for piece from the directory name.
For example, using the 'c:\temp\mysub'
example it will return:
Piece Return FullPath IsDirectory
1 c: c: 1
2 temp c:\temp\ 0
3 mysub c:\temp\mysub 0
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Soap
Platforms: All
DevKey: JN107
Summary: %SOAP.WSDL.Reader Should Generate ClassMethods
Description:
A restriction on the use of Webmethod as a keyword of a class method
only has been introduced, but the Reader had not been updated to
reflect this change. The reader now generates class methods instead of
instance methods properly.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT432
Summary: Support WebMethod keyword for queries in a Web service class
Description:
The keyword WebMethod is now supported in queries specified in a
subclass of %SOAP.WebService.
A Web method, callable via SOAP,
will be created that has the same input arguments as the query that
returns the typed dataset associated with the query.
In addition,
if the Web service is pkg.class and the query is named QueryName, then
the class pkg.class.QueryName is created as a subclass of %XML.DataSet
that is typed and represents the query.
An example of the use of
WebMethod for a query has been added to the SOAP.Demo Web service
sample.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT435
Summary: Support property parameters for queries with WebMethod
Description:
The SoapBindingStyle and SoapBodyUse property keywords are now
supported. They will work just like these keywords for methods with
WebMethod keyword.
The SoapNameSpace property parameter may only
be used for Web clients.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT438
Summary: Improve error messages for Soap method keywords.
Description:
This change improves error messages for SoapBodyUse, SoapBindingStyle and
SoapNameSpace method/query keywords by adding the method or query name to
message.
Impact:
Cosmetic change
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT444
Summary: Allow LOCATION in %SOAP.WebClient
Description:
Now we give an error if LOCATION does not begin with http:// or
https://. Note that the use of https still requires an external
tunnel.
Impact:
Debugging becomes easier with the added information.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT445
Summary: Clean up variables that are left defined by %XML.Adaptor
Description:
An attempt to compile a subclass of
%XML.Adaptor was leaving defined
variables behind. Appropriate New commands were added to the method
generator code so that variables are cleaned up properly.
Impact:
Extra variable are no longer left after XML export.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Moderate |
No |
No |
Category: Object.Storage
Platforms: All
DevKey: DLP1027
Summary: Fix the name of the virtual class generated when projecting a collection as a child table
Description:
Previously, under rare circumstances, compiling an internal "virtual" class could
cause a child table to be projected to SQL. This has been corrected.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object.Storage
Platforms: All
DevKey: DLP1028
Summary: BitMap Extent Index not built on Create Index
Description:
When a bitmap index is added to a table, the results of subsequent
queries would often be incorrect. The bitmap extent index is not
automatically built when the first bitmap index is added to a
table.
%BuildIndices has been updated so that anytime a bitmap index
is built and no data exists in the bitmap extent index then the bitmap
extent index for that class is automatically built along with the
bitmap extent index for each subclass.
Impact:
The SQL query may return incorrect results.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: Object.Storage
Platforms: All
DevKey: DLP1031
Summary: Fix nested serial mapping when serial stored in node
Description:
This corrects a problem that occurs when a property is stored by itself in a
global node ('node' structure). This commonly occurs when a collection
is stored in a subnode structure and the resulting structure is
projected to SQL as a child table. The error reported is
ERROR #5502: Error compiling SQL Table ...
Impact:
The application will not compile.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
Yes |
No |
Category: Object.XML
Platforms: OpenVMS
DevKey: JCN401
Summary: Always open XML files as Stream regardless of default file settings on OpenVMS
Description:
On OpenVMS, remotely exporting XML files via Caché Studio and reimporting them
caused routines to be stored all on one line, and then fail to
compile.
This is corrected.
Impact:
Annoys developers
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
No |
Category: Object.XML
Platforms: All
DevKey: MAK698
Summary: $SYSTEM.OBJ.Load for Globals get MAXSTRING
Description:
If you exported a global using the $system.OBJ.Export entry point that
was 32767 characters in size or near to this limit, and then you subsequently
imported it you may get the error message:
<MAXSTRING>characters^%occSAX in c:\test.xml at line 581 offset 1
This was because a variable was not cleared correctly after a global
node was imported. This is now fixed.
Impact:
Annoys developers
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
No |
Category: Object.XML
Platforms: All
DevKey: MAK704
Summary: XML Import/Export incompatibility
Description:
When exporting an expression method, export-to-XML formats it on
a single line rather than inserting a Cr/Lf after the start of the
CDATA for the method body code before the first line of code. This is
so classes exported on Caché 5.0.1 will import correctly on Caché
5.0.0.
Impact:
Class definitions exported from v5.0.1 can be loaded onto v5.0
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: Object.XML
Platforms: All
DevKey: MXT431
Summary: Extend %XML.DataSet to support .Net typed datasets
Description:
When a %XML.DataSet is returned from a Web service, it projects as a
Microsoft .Net dataset. Previously, only untyped datasets were
supported. This change adds support for .Net typed datasets which
include type information in the WSDL file for a Web service. This
additional information allows Visual Studio .Net to create a typed
dataset that supports IntelliSense.
A subclass of %XML.DataSet
will produce a typed dataset if the NAMESPACE parameter is specified,
and the CLASS and QUERY parameters are overridden to specify the query
underlying the dataset.
An example of the return of a typed
dataset was added to SOAP.Demo sample.
Impact:
Allows Visual Studio .Net to create a typed dataset that supports IntelliSense
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.XML
Platforms: All
DevKey: MXT434
Summary: Improve runtime message if referenced class is not XML enabled.
Description:
A class that is referenced by a property in an XML enabled class must
be XML enabled. Previously, if the referenced class was not XML
enabled, then an unclear <METHOD NOT FOUND> error was given. This was
replaced by an error message stating the problem more clearly.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
Yes |
Category: Object.XML
Platforms: All
DevKey: MXT436
Summary: Support the enumeration facet for schema defined simple types
Description:
When mapping Caché simple types to XML schema types in "literal", use
the enumeration facet to represent the Caché VALUELIST datatype
parameter. XMLImport already supports type checking based on the
VALUELIST. This change modifies XMLSchema to output the enumeration
facet to represent the VALUELIST.
Enumerations are not supported
in schemas that are in "encoded" format, since Microsoft Web services
do not support enumerations for BodyUse="encoded".
Impact:
Classes now produce XML Schemas containing more information.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.XML
Platforms: All
DevKey: MXT437
Summary: Support optional indentation of XMLExport output
Description:
Support optional indentation of XMLExport output as determined by the
format argument of the XMLExport call. The default indentation
behavior is the current behavior of outputting the XML as one line
with no added whitespace.
Adding "indent" to the format
argument causes the XMLExport output to be indented. "indent" should
be separated by a comma from literal/encoded part of the format. The
indentation characters to be used can be specified by enclosing the
indentation string to be used in parentheses following the "indent" in
the format argument. If not specified, the default indentation
characters string is two spaces.
Examples: To output the
object referenced by oref with the default two space indentation:
set sc=oref.XMLExport(,",indent")
To output the object referenced by oref with three space indentation:
set sc=oref.XMLExport(,",indent($c(32))")
Note that passing the space ($c(32)) as the argument increments the size
of the indentation; it does not specify the size of the indentation.
To output the object referenced by oref with tab indentation:
set sc=oref.XMLExport(,",indent("_$c(9)_")")
Impact:
Cosmetic improvement to generated XML.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object.XML
Platforms: All
DevKey: MXT441
Summary: Add Rewind method to %XML.Reader
Description:
Add a Rewind method to
%XML.Reader that when called will clear
correlates and restart reading from the beginning of the XML document.
Correlate must be called again after the Rewind.
Impact:
%XML.Reader is easier to use.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: Object
Platforms: All
DevKey: MAK718
Summary: $system.OBJ.Load for XML file always writes to principal device
Description:
When you load an XML file, the current device was changed to the
$PRINCIPAL device rather than keeping the device that the user
specified. This now remembers the correct device.
Impact:
Class import restores the principal device correctly.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Object
Platforms: All
DevKey: MC410
Summary: add SOAP keywords to query
Description:
Class Query definitions now have the same SOAP-related keywords as do
methods.
This allows you to control the SOAP-binding of class queries.
Impact:
Class queries support more SOAP options.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.DDL
Platforms: All
DevKey: DPV1934
Summary: Drop Foreign Key Fails when PKEY=IDKEY
Description:
Dropping a Foreign Key that points to a mapped table failed with
following error message:
[SQLCODE: <-400>:<Fatal error occurred>]
[Cache Error: <<LIST>AlterColumn+66^%apiDDL>]
[Details: <Serverr>]
This has been corrected.
Impact:
DROP FKEY now works correctly with SQL tables mapped to legacy structures.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
No |
Category: SQL.DDL
Platforms: All
DevKey: DPV1976
Summary: DDL: Fix ALTER TABLE Create Foreign Key does not check existing rows
Description:
The sequence:
create table P(a integer primary key, b varchar(20))
create table F(one integer primary key, two integer)
insert into F(one,two) values (1,1)
alter table F add constraint toP foreign key(two) references P(a)
works up to Caché 4.1.6,
but fails to properly return an error in Caché 4.1.9 as well as in
Caché 5.0.1. This now returns an error -127
<FOREIGN KEY Constraint
failed referential check upon creation of the constraint>.
Impact:
No constraint check performed
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL.GateWay
Platforms: All
DevKey: MIT239
Summary: Introduce logging and SQLCODE in the SQLGatewayConnection class
Description:
This change make it possible to log all the calls to SQLGateway in
^%SYSLOG global. It was done earlier for external tables. Now it
works for the SQLGatewayConnection class as well.
Impact:
Debugging was more tedious
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.JDBC
Platforms: All
DevKey: MAB176
Summary: Fix "*=" syntax not being parsed correctly in JDBC
Description:
The JDBC parser was incorrectly reporting the operator "*=" as an
error. This has been fixed.
Impact:
The JDBC driver correctly recognizes legacy JOIN syntax.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: MAB167
Summary: Bug fixes in JDBC
Description:
This change corrects several defects involving getting data values back from ResultSets.
These include:
- You cannot use ResultSet.getTimeStamp(int) to read DATE.
- ResultSet.getBytes() fails when an integer is stored.
- ResultSet.getAsciiStream().read() returns negative values for Russian characters.
Impact:
In certain cases JDBC did not return data correctly.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: MAB168
Summary: Preparsing of schema _SYSTEM fails
Description:
JDBC preparser did not recognize names, starting with '_'. This has
been fixed.
Impact:
Impeded developers
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
Yes |
Category: SQL.ODBC
Platforms: OpenVMS
DevKey: JCN385
Summary: Finish CacheODBC port and build IODBC on OpenVMS
Description:
This change ports CacheODBC to OpenVMS and provides a working IODBC.exe driver
manager for shipping with our ODBC driver.
Impact:
No ODBC access from OpenVMS client
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
Yes |
Category: SQL.ODBC
Platforms: OpenVMS
DevKey: JCN386
Summary: Port SQLGateway to OpenVMS, Rebuild IODBC with 3.0 ODBC API
Description:
Ported SQLGateway for OpenVMS platform. Rebuilt IODBC to include 3.0 ODBC
API.
Impact:
No ODBC access from an OpenVMS client
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
Yes |
Category: SQL.ODBC
Platforms: Windows
DevKey: JCN389
Summary: Fix for #Deleted problem in Access when using numeric column as primary key
Description:
Microsoft Access does not handle numeric primary keys in a consistent
way when comparing their values. Normally Access will perform an
internal comparison on the first ten primary keys..If it does not
match their internal representation, it returns a #Deleted value for a given
row.
Our ODBC driver consistently formats Numeric data converted
to SQL_C_CHAR or SQL_C_WCHAR as 0.00 if the scale is 2, whereas
SQLServer returns the same data as .00. While returning .00 will fix
the Access #deleted issue, but it should only be done for the value 0.
Since
SQLServer does not handle negative numbers in Access, our
convention of returning a leading zero before the decimal place works
in Access.
Why Access considers 0.00 to be different than 0 or .00 appears
to be a bug unique to Access. The driver will provide a
work around by returning ".00" rather than "0.00". While this is a
slight formatting change only for the 0 value, it seems a better
alternative which allows the use of numeric primary keys in Access.
Impact:
Incomplete query results
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN390
Summary: Add correct names for driver/logs on UNIX and OpenVMS platforms
Description:
Driver names reported in the log and to SQLGetInfo were correct for
Windows, but did not reflect the correct executable name on OpenVMS and
UNIX platforms.
Impact:
Impeded developers
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN391
Summary: Poor error message if ODBC DSN contains invalid namespace
Description:
Added "Invalid Namespace" message for to handle the case where you try
to connect to an ODBC DSN (on Windows) that contains an invalid
namespace.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
Yes |
Category: SQL.ODBC
Platforms: All
DevKey: JCN393
Summary: memory leak with streams and ADO
Description:
When ADO is used to insert streams into Caché, there was a memory leak that was corrected by
this fix.
Impact:
Gradual loss of available memory on Windows client
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN394
Summary: Select statement with Stream field fails
Description:
Characters stream fields return a default display size of "2147483647"
which causes the following printf formatting commands to core dump and
fail:
printf("%-*s", (int)display_size, pcolname);
Since it
does not hurt printf to format these with a smaller value for
display_size, Caché uses the MAX_DATA (1000) in the code to prevent this
condition from happening.
Since this is sample code only, and
users must be careful when working with character and binary streams
as their default display size is huge, and they will have to customize
applications to read this type of data in chunks.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN396
Summary: Allow passing of Username with no password
Description:
When a user was created in SQL with no password, there was no way for that person to
log in via the ODBC driver.
Impact:
Impeded development
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN399
Summary: Fix PutParameter used in Access with SQL_C_WCHAR data
Description:
This corrects a problem with a "string" field that has maximum length 32000.
Inserting a new row inserts null characters in the field after each
character when stored in the Caché global. For example "ABC"
becomes:
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL.Query Processing
Platforms: All
DevKey: AK560
Summary: Use temp-file for correlated subqueries
Description:
We now optimize correlated subqueries by saving the subquery result.
If the same correlated field values come up again, the subquery result
can be retrieved without having to run it again.
Impact:
Query may use excessive amounts of cpu time
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
Yes |
No |
Category: SQL.Query Processing
Platforms: All
DevKey: AK562
Summary: Apply correct processing to IN parameters
Description:
Applied to IN the same logic used for binary operators such as '=',
regarding when one argument is a field and the other is a constant/
host-variable. This normally applied only to fields of type
%Date/%Time, but resulted in string operations sometimes giving
incorrect results when attempting to find substrings.
Impact:
Substring processing is now more accurate
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
No |
Category: SQL.Query Processing
Platforms: All
DevKey: PVA051
Summary: Queries can give the wrong answer for certain OR conditions when multiple index strategy used
Description:
In certain cases, if multiple indexes are used to satisfy an OR condition, the wrong answer could be returned.
In addition, Caché now optimizes the application of IS NULL conditions to
indexes in the case when multiple indexes are used.
Impact:
WHERE clauses involving complex conditions may give different results depending
on whether an index exists.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
High |
No |
No |
Category: SQL
Platforms: All
DevKey: DPV1977
Summary: Add SERIAL_FIELD column to %Library.SQLCatalog.SQLFields catalog query
Description:
A SERIAL_FIELD column has been added to the
%Library.SQLCatalog.SQLFields(...)
catalog query. This column contains "Yes" of the field is serial
type,
otherwise it is "No". Please refer to the class documentation for an
updated description.
Impact:
The SQLFields query in %Library.SQLCatalog now has
an additional column
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: SQL
Platforms: All
DevKey: BJB262
Summary: Fix typo in backport of AK501
Description:
This fix corrects a problem where Joins could fail at runtime with an
undefined error.
In this particular case, there was incorrect
code generated for an uncollated field retrieved before a collated
field resulting in an <UNDEFINED> error at run-time.
This
occurred with conditions such as <const>=*<field> when the field has a
collation, and the outer join cannot be satisfied by an index.
Impact:
Query compilation may fail
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1894
Summary: New some variables in SQL Utilities/APIs
Description:
This corrects a problem where variables which had been new'ed were not removed
after their use was over.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: DPV1900
Summary: Fix copy (type 2) in copy^%qaqcpr to get offset from proper table
Description:
This corrects an error which occurred when the parent reference field is
specified in a position other than first in the IDKEY index of a child
table.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: DPV1969
Summary: Fix count(*) issue
Description:
Fixed a problem where the addition of a
count(*) column to a query
resulted in the returned ResultSet ignoring an "ORDER BY" clause.
Impact:
Queries may run slower
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: DPV1973
Summary: SQL Maps: Fix use of {<n>D} in NEXT code and {Field}_{Field2} in Subscript expression
Description:
Two bugs have been fixed in
%CacheSQLStorage:
- The {<n>D} (for example {2D}) reference was not recognized properly as a access level
when used in Over-ride NEXT subscript code. This has been fixed.
- A subscript expression like {table.field}_{table.field2}
incorrectly gave an error saying the field did not exist. This has
been fixed.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: PYD094
Summary: Return column datatype instead of VARCHAR for IFNULL
Description:
The result of
{fn IFNULL(<column>,val)} always was of datatype
SQL_VARCHAR. Now, Caché returns the datatype of <column> correctly.
Impact:
Impedes developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: SQLManager
Platforms: All
DevKey: PYD093
Summary: SQLMigration, INFORMIX not null columns
Description:
When Importing table definitions from Informix, all the columns were
marked as NOT NULL (data for these columns was required).
Impact:
Impedes developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: SQLManager
Platforms: All
DevKey: YSD576
Summary: SQLManager: Change the Owner of a view in SQLManager.
Description:
SQL Manager has been changed to allow changing the ownership of a
view.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: SQLManager
Platforms: All
DevKey: YSD583
Summary: SQL Manager: Link table name with space or other characters in it
Description:
In Link Table wizard, if the user enters a new table name that
contains spaces or other characters, then the wizard gave an "Invalid table name"
error message. This is fixed.
Impact:
Impedes developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: SQLManager
Platforms: All
DevKey: YSD584
Summary: SQL Manager: Japanese characters garbled when printing to a printer
Description:
SQL Manager now sends Japanese characters to the printer properly.
Impact:
Annoys SQL Manager users
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
Yes |
No |
Category: Studio
Platforms: All
DevKey: AGC214
Summary: Caché Studio XML parser - don't loop on "<!"
Description:
This corrects a problem in Caché Studio where the XML parser would loop upon finding
a "<!" sequence.
Impact:
Annoys developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: DVU673
Summary: Saving Color Table
Description:
This corrects a problem in Caché Studio where Studio failed to remember the
color table. However, if
studio A edits the table and
studio B is
already open,
studio B will continue to use the old table, because the
table is saved in the registry and there are no notifications between
them of the change.
Impact:
Annoys developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: DVU679
Summary: Correct tab order in File Open Dialog
Description:
This fixes problems in Caché Studio involving losing focus on dialog boxes
and buttons in various dialogs.
Impact:
Annoys developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: MAK662
Summary: Caché Studio becomes confused by 3rd line of an INT file
Description:
This change improves detection of an INT routine that is generated by a class compile.
The change prevents a case where the compiler determined an INT was created by a
class when it was not, and it attempted to recreate the class
descriptor which lead to an error message that the class was not valid.
Impact:
Impedes developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: MAK690
Summary: For export and import, directory names are concatenated on OpenVMS
Description:
On OpenVMS, the directories appear as 'ABC.DIR;1' files and so were not
being displayed in the
%File class correctly. In addition, they were
not reporting themselves as directories in the
##class(%File).DirectoryExists(dir) method. Also the parsing of the
filename did not add '.' between the pieces of the name. This has been fixed.
Impact:
Impedes developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: MAK713
Summary: Reduce the number of round trips to the server when loading classes
Description:
When opening a class, Caché Studio used to make a large number of extraneous
requests to the server. For example, opening
%ResultSet would make 277
request when only 7 were required. These unrequired request are now
avoided, which in the case of
%ResultSet means it only makes 7
requests.
Impact:
Annoys developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: MAK732
Summary: Variable was not new'ed in %RoutineMgr class
Description:
Calling the genPattern class method of the
%RoutineMgr class left
variable 'tN' after the method completed because it was not new'ed.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: RAW346
Summary: Caché Studio editor: fix handling of Ctrl/+, Ctrl/-
Description:
There were two problems fixed:
- Ctrl/keypad+ and Ctrl/keypad- were not honored for ExpandAll and ContractAll.
- Ctrl/+ did not work on German keyboards, where + is not a shifted character.
Impact:
Annoys developer
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
No |
Category: Studio.Editor
Platforms: All
DevKey: RAW352
Summary: Fixed an error in editing nested XML text
Description:
When the nesting level in some XML text exceeded eight levels deep,
the lines in question were shifted to the far right in the window and
you couldn't edit them due to a bug in the nesting limit check.
This has been fixed and the nesting level maximum has been increased
to 32.
Impact:
Impedes developers
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System.Cluster Specific
Platforms: OpenVMS and Tru64 UNIX
DevKey: JO1693
Summary: Treat a cluster member as a remote system in dispatch_method_or_property
Description:
In a cluster, if one cluster member recompiles a class then the
other cluster members need to invalidate the class if it is loaded so that they can
reload the (new) class descriptor.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
Yes |
No |
Category: System.Cluster Specific
Platforms: OpenVMS and Tru64 UNIX
DevKey: JO1696
Summary: Possible hang if there are no buffers available
Description:
Previously, there was a problem which, under particular and unusual circumstances, could
cause a system hang on a Caché cluster. This occurred when the write daemon entered
panic mode because there were zero free buffers. This has been resolved.
Impact:
Production application hang
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System.Journaling
Platforms: All
DevKey: JO1692
Summary: Improve synchronization between journal daemon and jobs waiting for journal buffers to be committed to disk
Description:
The journaling daemon was changed to avoid an unneeded sleep/wakeup
when we add things to the journal queue.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
No |
Category: System.Licensing
Platforms: All
DevKey: RJW704
Summary: Fix license CPU count on Hyperthreaded Intel/Windows platforms.
Description:
When HyperThreading is active, Windows reports the number of
threads instead of the number of physical CPUs. This causes
incorrect restrictions
on the number of authorized CPUs permitted for systems
not using Enterprise licenses.
This change corrects
this problem so the number of physical CPUs is checked against license
capacity.
Impact:
Reduced license capacity
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
Yes |
Category: System.Licensing
Platforms: All
DevKey: RJW740
Summary: Provide user oriented documentation for the Caché 5 license system.
Description:
The $System.License class is extended with additional methods to
provide information about license use.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: System.StartUp
Platforms: OpenVMS
DevKey: SAP101
Summary: After startup failure due to no memory, subsequent starts fail
Description:
After a startup fails due to memory requirements too high, subsequent
efforts to start that Caché (with any config file) result in
message:
"A global section with the name "_CACHE__[etc]" already exists"
and Caché halts. This condition cannot be cleared until
system is rebooted, regardless of config used.
Impact:
Impedes restarting production
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System.StartUp
Platforms: OpenVMS
DevKey: SAP102
Summary: On failure to allocate memory, Caché crashes
Description:
On failure to allocate full memory, Caché gets an access violation on
OpenVMS. This has been fixed.
Impact:
Impedes starting production
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: CDS389
Summary: Fix $QUERY on unsubscripted multidimensional property
Description:
This corrects $QUERY so that a reference to an unsubscripted global or array
produces the same result as a reference using the null string as a
subscript.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: CDS402
Summary: Fix <EDITED> error when switching namespace
Description:
This corrects an error where identically named routines in two different
namespaces which call each other would fail to re-establish the proper
routine references upon returning to the caller. This resulted in an
<EDITED> error.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: CDS406
Summary: Some $LIST constants were not compiled correctly
Description:
When some negative floating point numbers were used as a constant
value in the $LISTBUILD function, the Caché ObjectScript compiler
would generate invalid object code. This invalid code would cause the
process to halt when that line of code was executed. The constants
that caused the problem were -.1, -.01, -.001, etc. Only the use of
constants provokes this issue. The object code
is correct if the numbers were generated by arithmetic operations or
were previously stored in a variable.
Impact:
Application abort
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: HYY766
Summary: Address issues with large numbers of databases
Description:
We have corrected various problems that might occur when the number of databases exceeds 255.
Impact:
Some operations in the database would fail. The
exact nature of the failures cannot be categorized.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
No |
Category: System
Platforms: All
DevKey: JLC484
Summary: Correct problem with global buffer pools bigger than 4GB
Description:
This corrects a problem with buffer pools larger than 4GB where offsets into
the pool would be truncated by storing them in 32-bit cells.
Impact:
Application failure
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: AIX
DevKey: JLC491
Summary: Fix updating resource statistics for PowerPC systems
Description:
Resource statistics counters were modified to work properly on 64-bit PowerPC
systems. Certain internal statistics were being zeroed on AIX platforms.
Impact:
Statistics are kept accurately on PowerPC systems.
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| High |
Low |
No |
No |
Category: System
Platforms: All
DevKey: JLC493
Summary: Address internal error logging bug
Description:
This corrects an internal problem in error logging which could result in
bus errors during shutdown.
Impact:
Production failure during shutdown
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: OpenVMS, Tru64
DevKey: JLC496
Summary: Correct an object destructor problem on Alpha machines
Description:
This corrects an internal error that caused a delay in running the object destructor
when the variable that had its oref was assigned a new value.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: UNIX
DevKey: JO1685
Summary: Correct potential expansion problem for CACHETEMP on UNIX systems
Description:
On UNIX systems, CACHETEMP is structured as a "sparse database". This
means that when it expands, Caché does not write all of the new blocks
to the file which is required to force them to be allocated. This
facility has been updated so that Caché does write the last block of
the new space to the file. This forces the file size to be
updated.
This is important to prevent processes from getting
unexpected end of file errors reading or writing this new space as the
code that deals with detecting that the end of the file has moved is
organized around the file expansion process.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: JO1694
Summary: Count of available buffers could get out of sync in panic mode
Description:
In the unlikely event that a system runs out of global buffers and
enters panic mode, it was possible for the count of available buffers
to get out of sync. In even rarer circumstances, this could possibly
lead to a system hang but most likely would go unnoticed. A notation
is made in the console log file each time a system enters panic
mode.
Impact:
Production application hang
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: JO1695
Summary: GCOMPACT changes to try to avoid panic mode
Description:
The database compaction code (GCOMPACT and the global compaction
option in the Caché Control Panel) have been updated to try and avoid using
all of the free buffers because doing so triggers a write daemon panic state.
Impact:
GCOMPACT could impede application response time
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: System
Platforms: OpenVMS
DevKey: JO1698
Summary: Correct intermittent database expansion problem
Description:
An expansion problem which affected OpenVMS systems and 8KB databases
which were set to expand by more than 64MB at a time has been
resolved. This was an intermittent problem which when it occurred,
would result in the database being only partially expanded; one or
more 64MB chunks of space would be added but not all of the requested
space. When the expansion failed an error code of 99524 would be
recorded in the SYSLOG table.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: OpenVMS
DevKey: JO1700
Summary: Correct multiple installation problem
Description:
A problem has been resolved on OpenVMS systems which install multiple
copies of Caché where each copy of Caché starts up under a different
UIC group and both installations have networking configured or attempt
to use a performance monitoring facility such as ^PERFMON.
Previously
the second installation to start up would not detect that the first
installation was running and there would be confusion about the name
of the network shared memory section. The result would be that the second
installation would not start up properly and would delete the network
shared memory section of the first installation upon shutdown.
Impact:
Production hang
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: All
DevKey: JO1701
Summary: Fix problems creating a database that had been dismounted & then deleted
Description:
A problem has been resolved on UNIX and Windows system where if a
dismounted database was deleted by deleting the CACHE.DAT file, MSU
would get errors trying to re-create it.
Impact:
Impedes system operator
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: System
Platforms: All
DevKey: LFT1084
Summary: Avoid halt while owning a block or resource
Description:
This change skips a call to halt if the process owns a block or a
resource.
Impact:
Production hang
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
No |
Category: System
Platforms: All
DevKey: LRS671
Summary: Implement $System.Util.GetEnviron class method
Description:
A new $System class method has been implemented to obtain the value
of an environment variable from the host system.
Set value=$System.Util.GetEnviron(VariableName)
This call returns the value associated with "VariableName", if one is
defined. Otherwise it returns an empty string. Under UNIX and Windows
systems, the variable is a command shell variable. Under OpenVMS, it
is a DCL symbol, rather than a logical.
Under OpenVMS, you can obtain the translation for a logical using
$ZU(12,logicalname,4) or $ZF("TRNLNM",logicalname,...). If you want
to access the value of
one using $System.Util.GetEnviron(), you can
use it in a DCL
expression involving F$TRNLNM(logicalname), the
simplest of which is
a mere attribution such as:
SYS$LOGIN = F$TRNLNM("SYS$LOGIN")
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: System
Platforms: All
DevKey: NGA109
Summary: Avoid possible hang with JOB command
Description:
A possible hang caused by a job holding a global buffer while trying to job off
another process has been fixed.
Impact:
Production hang
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: All
DevKey: SAP094
Summary: Allow user to set other process' priority
Description:
$system.Util.SetPrio(prio[, pid]) sets either the caller's process
priority, or the priority of another process whose process id is
pid.
On
Windows and OpenVMS, callers have unlimited access to other processes
priority. On UNIX, the priority of other processes can only be
reduced, unless the calling process is running as root (not the
default for Caché terminal processes).
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
Yes |
Category: System
Platforms: OpenVMS
DevKey: SAP097
Summary: Fetch base priority, not priority, on OpenVMS getprio
Description:
This corrects a long standing discrepancy in
$zu(60) that
displayed the wrong priority
for OpenVMS processes.
Impact:
Slight performance penalty for some processes
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: System
Platforms: OpenVMS
DevKey: SAP098
Summary: Change OpenVMS priority handling to match Windows and UNIX
Description:
OpenVMS job priorities will match Windows and UNIX.
Jobbed processes run at
parent current base priority plus the system defined job priority
modifier. Job priority modifier can be set via
$system.Util.JobPrio().
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Moderate |
No |
Yes |
Category: System
Platforms: OpenVMS and Tru64 UNIX
DevKey: SML356
Summary: Correct journal recovery for cluster master on dedicated ECP connections.
Description:
When cluster master dies, the new master performs journal rollforward
and rollback from the dying master's journal files. But it does not
need to reestablish transaction state or pending ECP messages from the
failed master.
The prior behavior has been fixed.
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: SML359
Summary: Correct problem with multiple DCP connections
Description:
When there is more than one DCP connection configured on the client
system and there are transaction operations on each remote server, a
problem could occur since the locations of the transaction file count
array are overlapped on each DCP connection. Under certain circumstances
the TROLLBACK or TCOMMIT over DCP may not completed.
Impact:
Loss of data
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: All
DevKey: SML360
Summary: Fix zero time out on locking parent node while child node is locked.
Description:
This change fixed a problem:
Process A:
hangs waiting for process A
Process A:
LOCK +^x(1,2):0 w:$t // $T is zero
and the lock is not granted.
The correct behavior for Process A
to lock ^x(1,2):0 should be able to grant the lock and $T is 1.
The fix also applies for an ECP/DCP network when Process
A is a client job and Process B is a server job.
Impact:
Application error
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: All
DevKey: SML361
Summary: Fix a Read Daemon timing problem which can cause a crash.
Description:
There is a potential system interruption condition on ECP client's Read daemon when a job
request a remote lock and cancels it after timed out. When it requests
another remote lock, the job may be returned without really granting
the lock on server. If the job releases the second lock before the
granted answer from server arrived, the ECP daemon will abort.
Impact:
Production failure
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: OpenVMS, Tru64, AIX
DevKey: SML362
Summary: Fix possible hang with long strings and DCP on 64-bit platforms.
Description:
For 5.0 on OpenVMS platform, this fixed a problem for DCP networks. When
the client job tries to access long string globals (e.g. compiled routine's OBJ
code), it could hang.
This problem only occurred on Cache 5.0 OpenVMS
platform; for other 64 bit platform it is not likely to happen unless
large buffer pool is configured, and it only failed on DCP
network. The DCP client job fetching a global with big string will
hang, though the Control-C could interrupt the hang.
Impact:
Application user would be suspended until typing CTRL-C
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: SML363
Summary: Display number of usable lock table size in ^LOCKTAB.
Description:
Now the ^LOCKTAB will display two lock table sizes, 'available' and
'usable' size. The 'available' size is the one that was previously
displayed; it is the total lock memory minus the memory used for lock
entries.
The 'usable' size is the 'available' size minus the cached
memory in each partition (job) and some of the LHB block in free
queue. The formulas are:
free size = 'available' size
- total cached size
- total free LHB pool size.
'usable' size = free size
+ (2/3 of free size or total free LHB size which ever is smaller).
Impact:
None
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Low |
Low |
Yes |
Yes |
Category: System
Platforms: All
DevKey: STC450
Summary: Enforce one compaction process per database
Description:
Database compaction was allowed to run multiple iterations at the same
time on the same database. This is now prevented by the use of a lock.
Impact:
Database degradation
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: System
Platforms: All
DevKey: STC451
Summary: GBLOCKCOPY allows conversion of collation 0 globals
Description:
Previously, globals with a collation type of 0 could not be selected
by GBLOCKCOPY for a conversion to standard type 5. This is now
allowed.
Impact:
Impeded migration from MSM
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
No |
No |
Category: System
Platforms: All
DevKey: STC454
Summary: Fix erroneous blocks copied field in GBLOCKCOPY
Description:
When using GBLOCKCOPY to copy data from a database to another database
or namespace, sometimes an error would be reported that the number of
blocks copied did not match the calculated number of blocks to
copy. However, the data was actually completely copied. This has been
fixed.
Impact:
Annoys operator
| Likelihood |
Risk |
Ad Hoc |
Enhancement |
| Moderate |
Low |
Yes |
No |
Changes between Caché 5.0.0 and Caché 5.0.1
This section provides a listing of changes between Caché 5.0.0 and Caché 5.0.1.
Possible Compatibility Issues
PLEASE EXAMINE THE REFERENCES IN THIS SECTION
CAREFULLY.
They document necessary modifications to Caché for this version that may
affect the way your applications are designed, implemented, executed and/or
administered. To help you assess the impact of these changes on your
applications, each change description contains a more detailed explanation of
the modification. It also includes a table giving pertinent information on the
problem likelihood, impact of the change, and whether this has already been used
successfully in production by other customers.
If the affected platform is not listed specifically with the change summary,
the change is effective for all supported platforms.
- Relational Gateway —
Relational Gateway use problematic on Tru64
- System —
Fix MD5 hash for big endian platforms
- Networking —
Accommodate largest possible size of UNICODE strings over ECP
- Object.Java —
Fix problem in creating and using finder extensions in EJB
- Object.Java —
Eliminate duplicate entries from remote interface
- CSP —
..Link() not working as designed
- Object.Class
Compiler — Do not add transient streams to save set in a deep
save
- Object.Java —
Return early from errors
- Object.Soap —
Initial fix for non-ASCII characters in SOAP response
- Object.XML —
Order inherited properties to match XML schema extension ordering
- Object.XML —
Store XML for empty character streams as "" instead of $c(0)
- Object.XML —
XMLExport serial references with no data as null (no tag)
- SQL —
Change datepart("week",date) to match SQL server behavior
- SQL.JDBC — The
same SQL normalization for JDBC and ODBC preparser
- SQL.JDBC —
Conversion of pseudo-ASCII bytes in setAsciiStream according to default
locale
- System —
Process priorities not set right for background jobs.
Platforms: OpenVMS,
Windows, HP-UX
- System.I/O —
Modify "U" mode RMS files to read formatted files correctly
Platforms:
OpenVMS
Other Changes to Caché
The following list of references summarizes
changes in this version of Caché which are upwardly compatible corrections and
enhancements since the prior version. InterSystems does not expect that these
will affect the normal operation of your existing applications. For ease in
searching, they are grouped according to the area of the system they modify.
If the affected platform is not listed specifically with the change summary,
the change is effective for all supported platforms.
Caché Direct
- Fix Caché Direct
registry key names
Config Mgr
- Fix config file
corruption when the file size > 64KB
- Correct handling of
null passwords for SQL Gateway
- Fix the ability to
map all routine types
- Disallow setting user
process priorities
- Fields of License
wizard are empty when Caché (NT) uses UNIX style cache.key
- Preserve restart
condition across multiple configuration manager edits
- Eliminate length
limit on ECP server add/edit
Control Panel
- Fix Max %Full column
in Control Panel | Local Databases
- Background integrity
check on OpenVMS produced two files, the log file and an empty
file
Platforms: OpenVMS
- Fix namespace name
truncation
- Remove "Switch
Journal File after Backup" checkbox
CSP
- Fix/enhance UNIX and
OpenVMS file renaming using $zu(140,6)
Platforms: UNIX, OpenVMS
- When importing CSP
files if no /csp/namespace pick first app that is defined in this
namespace
- OnTimeout trigger is
not called for state-aware sessions
- Anchors don't work on
#url()
- Prevent SUBSCRIPT
errors in CSPNormalizeURL^%cspServer
CSP.Gateway
- Resolve issues
whereby hyperevent calls would fail, seemingly at random, within applications
operating for extended periods of time in state-aware mode (preserve mode
1)
- Emergency fix for a
potential issue in the Gateway's garbage collector that could lead to an
accumulation of 'defunct' connections
Platforms: OpenVMS
- Resolve an issue
whereby a thread within the NSD would spin and consume excess CPU time under
Tru64 UNIX
Platforms: Tru64
- Improve the
mechanisms within the NSD for detecting, and responding to, an interrupt from
the browser
- Resolve an issue in
the page output caching mechanism that could result in a thread spinning (and
using much CPU time) under Tru64 UNIX
Platforms: Tru64
- Resolve further
issues with the UNIX implementation of change CMT071 (Manifested as the NSD
aborting on Tru64 UNIX)
Platforms: Tru64
- Introduce a better
filter for malformed URLs (and incorrectly specified components within
otherwise valid URLs)
CSP.Net
- Backport SMTP
Authentication to 5.0.1
- Function errors using
%Net.HttpRequest in a job process
CSP.Samples
- In web service, allow
LOCATION to be a relative path or unspecified
- ClassLogo.jpg not
shown in StreamServe.csp on HP
Platforms: HP
- Soap.Demo.cls has
incorrect parameter: SoapBodyUse = encoded
Cube
- The Caché service on
Windows no longer wakes up to gather statistics
Platforms: Windows
Explorer
- Fix Find/Replace on
unsubscripted nodes
- Fix Selecting in
Explorer with Multiple Wildcards
- Fix <MAXSTRING>
error when exporting thousands of classes
- Fix import from a
file with thousands of classes
- EXPLORER now allows
half-width Katakana symbols in its global mask
- Explorer gets errors
when editing globals with digits in their name
Installation
- Install all localized
resource files when in non-English locale
- CSP Autocompile
setting is preserved on upgrade installations
- Structure of /doc
directory changed
Platforms: UNIX, OpenVMS
- Fix installation
recompile hang
Installation.OpenVMS
- Set ownership of
target root directory (and all subdirs) to value of CACHE$MGRUIC
Platforms:
OpenVMS
- VMS installs
SAX
Platforms: OpenVMS
Installation.Windows
- On machines which can
run the Pentium4 optimized executable, give users the option, during install,
of P4 distribution (default) or regular
Platforms: Windows
- Upgrade installations
of CSP gateway on VMS failed to correctly modify httpd.conf
Platforms:
Windows
Languages.Caché Basic
- Backport Critical bug
fixes for CachéBasic on usparc platform
- Fix typo in calling
CanUnloadNow function in COM modules on UNIX and OpenVMS
Platforms:
OpenVMS
- Fixed <BREAK>
processing error
- Fix CachéBasic
DatePart() and DateDiff() with week parameter
- On all platforms,
make max udp packet size for DCP be 1468
Misc
- This fixes a problem
of cache coherency in the handling of modified 2k blocks over ECP
Networking
- Add process ID of
client process to journal record
- Fix occasional
segmentation violation when doing reverse $ORDER over ECP on BIG-ENDIAN
systems
- ECP answer buffer
overrun
- Improve the handling
of asynchronous messages queued from the server
- On recovery failure
acquire ECP client resource
- When running ECP over
old format databases (2Kb), optimization information was sometimes (rarely)
overwritten
- Ensure correct
concurrent synchronization in ECP when allocating space for a request
entry
- Correct rare ECP
synchronization of the application server cache (old format (2K)
databases)
- Fix handling of TCP
write errors
Platforms: Linux, HP
- ECP client didn't
maintain server unique ID
- Added $System.Server
HostName and IPAddresses
- Slowdown ECP worker
dmn creation
- Increased ECP cluster
master connection timeout
- On cluster reconnect,
exit the old ECP connection gracefully
- ECP server to keep
cluster slave session forever
- TCP-send interrupted
system call handling
- Properly handle
modifying ECP server (via control panel or config manager) when already up and
running
- Correct problem with
ECP application server restart
NLS
- Fix a NLS data
calculations
Object
- Deal with network
directory name correctly in %File:CreateDirectoryChain()
Object.ActiveX
- Don't ask password
for Namespace list in connection manager
- Fix for CachéObject:
ERROR #5802: Datatype validation failed when value < 0.1
- Objects deleted
prematurely when ResultSet used with .NET
- Make
Factory.SetOutput() work with .Net
Object.Class Compiler
- Qualify
StorageToLogical call with property name
- Check actual number
of parameters against formal spec
- Count only actual
parameters in a dynamic query
- Fix bug in check for
Class compiler interrupt
- Support object
generators for datatype methods
- Invalid code
generated if last line of procedure block method is a #define
- Problem with XML
schema validation on class import on OpenVMS
Platforms: OpenVMS
Object.Java
- Fixed bug with
Iterator.remove() in Caché Array
- constructClone
failing
- Incorrect Java
binding for Lists containing Japanese characters
- Allow DATASOURCENAME
to override data source name in bean implementation
- Fix dataSource
name
- Produce code that
compiles even when ROWID renamed
- Allow Session Bean
generation when PERSISTENCETYPE="CMP"
- Correct JBoss
connection leak
- Allow Caché' host
and port to be configurable in EJB configuration
- Fix calculation of
supers in Java binding
- Make generation of
special method exists(db,oid) depend on persistency of super not persistency
of class
- When invalid
SERVERTYPE display invalid server message
- Get accessors are
not const when they are overridden
- Don't allow CMP
generation unless primary key
- Fix potential
problem in constraint names in EJB binding
- Remove
<distributable> from web.xml and make test servlet work with JBoss and
Jetty
- Remove debug
statements from EJB Wizard
- Close quick
statement in EJB callbacks
- Let the App Server
control concurrency
- Added Support in the
CLASSPATH Variable for JBoss 3.0.6
- Add
TransactionIsolation parameter to EJB projection
- Removed
TRANSACTION_NONE from Supported Transaction Types
- Addressed Various
Issues with the Java Projection
- Improve error
message when Class in ClassList is not persistent
- Project stored
procedure methods in Language bindings
- Fix Java binding
file names
- Process Output
parameters properly
- getConnection needs
to be protected not private
- Allow datasource to
be looked up from environment
- Support generating of
extensions that are used for things like finders
- Call methods in
property accessors when overridden set or get
- Fix JSL992 handling
of calculated properties in the C++ binding
- Check if property
exists before checking if calculated
- Guard against null
DefaultArgs
- Support for
projection of queries in generated Java classes
- Added SQLProcContext
class to Java Binding client
- Enhancement for
building Java client Documentation
- Added ability to
initialize Java Binding using wrapper connection from App Server
- Improvements in
LightDatabase
- Fix for empty array
not listening to server updates
- %TimeStamp with
milliseconds throws Exception
- Java ArrayOfDataTypes
etc iterator.remove()
- Saving Non-ASCII
Characters Using Light Java Binding
Object.Java, EJB
- Guard EJB projection
against invalid parameters
Object.Library
- %Net.HttpRequest
object now reads in correct charset
- %Net.HttpRequest
object not encoding form data in correct charset
Object.Soap
- Improve SOAP client
response validation
- Handle OUT parameters
in SOAP web client
- Improve SOAP
interoperability with XMLSPY SOAP request
- Reorganize the
XMLPROJECTION parameter
- Fix
parseFormal^%occName not initializing return argument
- Resolve short class
names in web method arguments
- Show use of base
class for error handling in SOAP.Demo sample
- SOAP web client gives
error if return value not expected
Object.Stream
- %Delete leaves open
transaction
Object.XML
- Map class inheritance
to XML using schema choice group
- XMLImport loses
attributes in case of id="" for tag
- %XML.Adaptor error
handling improvements
- Allow runtime
specification of %XML.Adaptor parameter XMLIGNORENULL
- <NOTOPEN>
second call to XMLExportToStream with same stream
- In XML projection,
support summary representation of referenced classes
- In XMLImport, long
attribute value causes SUBSCRIPT error
- Add limited XMLImport
method for %XML.DataSet
- Support RuntimeMode
property of %XML.DataSet
- Optionally enforce
ordering of properties on XML import
- Allow skipping of
element tags on import and export
- Generate correct
schema for Caché array for choice group
- Add new support for
hexBinary schema type
- Create %xsd package
for Caché datatypes that map to XML schema types
- XML representation of
persistent objects using object id
- Ignore IsValidDT
whose value is always 1 for XMLImport
- Extend %XML.DataSet
to Support .Net Typed Datasets
SQL
- Add Message property
to %SQLProcContext
- Fix return type for
some ODBC Scalar functions
- Check %ALTER
privilege on the view definition when ALTER VIEW is executed
- Properly generate
include files in 2nd through Nth T# routine
- Don't include fields
from parent table in conditional map condition when turning nonnull index into
conditional index
- Rebuild indices are
after datatype has changed to/from a string via DDL
- Support use of Map
Variables in Data Access and Full Row Reference expressions
- Add support for MS
SQL Server style CONVERT function
- Add checks to make
sure string fields don't contain map piece delimiter characters
- Fix query generated
%QuickLoad function to not scan entire table
- Fix
DATEPART("wk",...) calculation
- Fix code generation
problem with large indices
- Fix QuickLoad
problem involving primary keys and SQL queries
- Fix insert select of
stream field
- Store empty
LONGVARCHAR streams with "" instead of $c(0)
- Correct TuneTable
selectivity calculation for tables with UNIQUE fields
- Support global
reference with vertical-bar syntax in mappings
- Add
CONSTRAINT_OBJECT_NAME to %Library.SQLCatalog.SQLConstraints procedure
- Field-specific
UPDATE triggers execute too often
- Support Quick
%nolock=2 which simply means behave as if standard SQL statement
- Ensured Proper
Operations of Descending-Order Sorts
SQL.DDL
- CREATE PROCEDURE
argument length omitted in Studio
SQL.GateWay
- Do not close cursor
if an error occurred
- Selecting on
generated Caché ID field fails when it is a complex key in SQL Server
- Fixed <INVALID OREF> error for
complicated dynamic query
- Fix parameter
setting
- Select count not
working
- "Undefined list
element " error when linking a table
SQL.JDBC
- Fix JDBC reporting
of foreign keys
- Correct JDBC
reporting of parent reference field
- Correct
transformation from LONGVARCHAR with getString()
- Fixed counting
characters/bytes when using getUnicodeStream from JDBC
- PreparedStatement.setAsciiStream()
does not convert chars to Unicode
- Tighten JDBC Call
Syntax
- Add (optional)
NODELAY flag at the end of JDBC URL string
- Fix potential
<FRAMESTACK> error
- Add support for
get/setXXX(String parameterName,...) JDBC 3.0 APIs
- Keep references to
currently used statements in the statement pool
- Add closed flag to
Stream classes
- Shut down the
connection after receiving message sequencing error
- Change
Statement.executeBatch error reporting behavior
- Enhance client cache
management for stored procedures
- Use a trick to make
CachéConnection object available
- Introduce new Stream
Error Code 411
- Allow calls to
getUpdateCount after executeUpdate
SQL.ODBC
- Fix calculation for
ODBC precision
- wrong default setting
for "Unicode SQLTypes"
- UNIX ODBC: SQLError
returns some garbage..
- Fix for #Deleted
problem in Access when using numeric column as primary key
- Poor error message if
ODBC DSN contains invalid namespace
- Eliminated Memory
Leak with Streams and ADO
- Allow programmatic
(on-the-fly) DSN setup
- Return length in
number of bytes for RetrieveStream
- Reintroduce
QuickStatment.close; Change in empty stream retrieval
- Force dialogs to use
narrow API when Unicode is defined, fix for Win9x
- Prevent possible
access violation on logging buffer overrun
SQL.Query Processing
- Query optimization
gives <UNDEFINED>error
- Fix JOIN optimization
bug
- Improve OR
optimization
- Fix Subscript error
on UNION with many blank fields
SQL.Server
- Add check for
<DSCON> in DieError to avoid looping
- Fix Addqout^%qserver
with > 32000 characters of data
SQL.Syntax
- Fix
<UNDEFINED> in parsing string function
SQLManager
- Corrected several
issues with SQLMigration
- Change the Owner of a
view in SQLManager
- Show plan fails when
default SQL schema name is user defined
- Link table name with
space or other characters in it
- Japanese characters
garbled when printing to a printer
Studio
- Multiple improvements
to Studio
- Importing a CSP page
fails
- Unselected classes
deleted in open dialog
- Exporting a class
behaves differently when done remote vs local
- Get Error #5019 when
deleting CSP page
Platforms: OpenVMS
- Addressed Issue in
which Studio Would Hang or Loop When Searching for Matching Text That Was in
Contracted Code
- Studio editor: copy
Unicode to clipboard on Win9x systems
- Find in Files does
not find items in CSR files
- Fix problem sorting
classes by size in Studio
- Studio imported class
when told not to
- SourceControl:
Trigger OnAfterSave not fired sometimes
- Studio becomes
confused by 3rd line of INT
- In the example source
control class allow people to create new items
System
- Encryption functions
- rename from Rijndael to AES
- Fix Callin/Callout
interfaces for 32-bit pointers on OpenVMS
Platforms: OpenVMS
- Allow ECP client send
'get file' request on ECP recovery when server is not re-started
- The error trap, %ETN,
now stores the values of formal parameters
- Fix ZQUIT not popping
enough frames
- Addressed Issue with
Task Not Rescheduling Properly
- Use correct error
macros on Windows
Platforms: Windows
- Correct overflow in
handling OS files limits on 64 bit AIX
Platforms: AIX
- Startup code could
fail in rare circumstances when over 4 GB of global buffers were
configured
Platforms: Windows, Tru64
- On OpenVMS, when we
cannot allocate as much memory as initially requested but are successful
allocating a smaller number, the system still reports the initial
value
Platforms: OpenVMS
- Change code that sets
jobtype not to use OR except for APPMODE flag & don't set APPMODE for
ENQDMN
Platforms: Tru64, OpenVMS
- COM port reads can
fail on Windows if data arrives before the read
- Make DEFNETDIRSIZ 64
KB
- ECP server should
never wait and retry on lock table full
- Fix lock_c_cleanup
for ECP server dismounts DB
- Fix DCP lock race
condition
- Display correct
message for cluster ECP connection
- Fix un-removable lock
when lock table is reset
- Change for better
network lock fairness on server
- Fix telnet
disconnection will leave an open transaction on OpenVMS and
Linux
Platforms: Linux, OpenVMS
- Display lock entry in
pending state
- Fix multi-entry lock
command over ECP problem
- Fix a problem when
Lock and ZA on the same global by the same job
- DTM lock error
fix
- Let network daemon
keep list of locks granted by it so it could handle some deadlock issue
- Fix a rare problem
where a stranded lock was left in the lock table
- Don't let network
daemon call SWCHECKSET in waitupd(), so it won't block the cluster
failover
- Display correct
cluster error message for ECP
- Fix bad lock encoding
(e.g. ^a("10.41"))
- Fix multi-entry lock
command live lock problem
- Start Cluster ECP
connection for slave when startup
- $ZTIMEZONE failed
unpredictably on AIX
Platforms: AIX
- Disable Nagel
Algorithm by default on TELNET devices
- Fix short timeout
problem on ECP
- Fix possible lock
memory lost when lock table full
- Limit # of Caché job
to access DSM through DDP to 1544
- Fix potential TRANSCB
LRB list corruption
- Fix hang on
multi-entry lock with same global nodes over network
- Fix ECP timing
hole
Platforms:
- Don't flush ECP
journal records to disk when ECP is only being used as a lock transport for
Caché clusters
- Fix cluster failover
potential hang
- Fix collation
detection in IF/ELSE clause
- Fix ability to map
routine types
- Fix memory leak in
Job Servers
- Fix a DTM network
emulation bug in $DATA
- Correct handling of
file sizes in a certain narrow range on OpenVMS
Platforms: OpenVMS
- Correct a situation
where very short waits (less than 100 mSec) could sometimes result in no wait
at all (platform dependent)
- Fix big buffer pool
allocation on OpenVMS & test global buffer allocation in
mcominit
Platforms: OpenVMS
- Update # of global
buffers when we reduce resident memory allocation
Platforms: OpenVMS
- Change reserved block
alloc/dealloc code to skip bad maps, not abort
- Don't skip processes
that return SS$_SUSPENDED in $GETJPI from cforce on OpenVMS
Platforms:
OpenVMS
- Set wdstop when any
write daemon exits
- Use NANOSLEEP instead
of select() for timed sleeps on HP-UX
Platforms: Tru64
- Adjust spinloop
counters on HP-UX
Platforms: HP-UX
- Fix exception
allocating more than 2^31 bytes of global bdb's
- $ZU(158) function
call failing on Caché 5 Unicode
- Corrected JOBEXAM /
Control Panel TCP read data corruption
- Create list file for
loading Caché KM in BMC Patrol
- Save/Restore the
process priority of the control process during job startup on UNIX and
Windows
- On VMS display the
correct process priority when examining processes
Platforms: OpenVMS
- Fix problem with 3 or
more argument $BITLOGIC
- TASKMANAGER - set
start date properly, improve queries, add simple menu to drive
- Fix output file error
in GBLOCKCOPY
- Lock out other
gcompact on same database
- GBLOCKCOPY allows
conversion of collation 0 globals
System.Backup/Restore
- Correct a problem
whereby a user would sometimes be forced to do a full backup when an
incremental backup should have been an option
System.Cluster Specific
- preserve wij info of
the old master for failover
- Fix a race condition
on Caché clusters
- Fix false
<FILEFULL> in cluster mounted 2kb database
- Fix expansion daemon
so it runs if another process needs it during cluster failover
- Correct problem with
cluster failover when switch 13 or 14 was set
System.I/O
- Fix rare access
violations when using |TNT| devices on Windows
- Fix timeout bug in
LAT device open (ttyopenlat)
System.Journaling
- address an issue of
journal daemon hanging
- During cluster
failover/recovery, transaction rollback would fail if the new master had more
than 254 databases mounted
- fix a bug that caused
journal daemon to skip writing some journal buffers and result in system
hang
Platforms: OpenVMS
- Address a deadlock
situation between journal daemon and write daemon during jrnswitch
- Correct race
condition on journal switching on OpenVMS
Platforms: OpenVMS
- Changed journaling to
avoid incorrect exits
System.Licensing
- Ensure that Caché can
run from directories with spaces in the names
System.Shadowing
- address a performance
problem with shadowing
- correct a potential
problem in fast-mode shadowing
System.Shutdown
- Create a
CACCVIO-PID.LOG file for PAGRDERR and PAGRDERRXM errors
- No error capture on
calls dealloc_resident_mem()
System.StartUp
- Increase SZGVXTAB to
32K
- Compiler error detail
for missing */
- Fix Customer Name in
restart splash screen
System.TCP Devices
- Increase the size of
the ctelnetd listen queue
Platforms: Windows
Utilities
- Config Manager uses
same definition of remote servers as other desktop utilities
- when we import .OBJ
code we don't update the ^rINDEX("routine_name") node
- Adjust fields for
non-English texts
- MSM-Activate did not
work against Unicode Caché server
Change Details
The remainder of this document gives the details for each
of the earlier change summary references.
Category: SQL.Query Processing
Platforms: All
DevKey: AK553
Summary: Query optimization gives <UNDEFINED>error
Description:
Corrected a somewhat exotic query optimization problem
which could result in an <UNDEFINED> error at runtime. For example, this
occurred in some cases when a ROWID was used in the WHERE clause of a subquery.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Relational Gateway
Platforms: Tru64
DevKey: <none>
Summary: Relational Gateway use problematic on Tru64
Description:
The operational state of the Caché Relational Gateway on the Tru64 platform is
problematic. Attempts to use it will most likely result in
inconsistent results. Contact the InterSystems WorldWide Response
Center for additional details.
Category: SQL.Query Processing
Platforms: All
DevKey: AK553
Summary: Query optimization gives <UNDEFINED> error
Description:
Corrected a somewhat exotic query optimization problem
which could result in an <UNDEFINED> error at runtime. For example, this
occurred in some cases when a ROWID was used in the WHERE clause of a subquery.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL.Query Processing
Platforms: All
DevKey: AK554
Summary: Fix JOIN optimization bug
Description:
Corrects a SQL join optimization problem which was
introduced in Caché 5.0.0 and may result in incomplete result set.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL.Query Processing
Platforms: All
DevKey: AK556
Summary: Improve OR optimization
Description:
Take advantage of index maps while avoiding the generation
of virtual fields and conditions. This is an optimization to OR expressions in
SQL.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: Installation
Platforms: All
DevKey: ALE159
Summary: Install all localized resource files when in non-English
locale
Description:
This allows changing Caché localization without having to
re-run install.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Installation.VMS
Platforms: OpenVMS
DevKey: ALE169
Summary: VMS installs SAX
Description:
Package and install VMS executables needed for CacheSAX.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Installation.Windows
Platforms: Windows
DevKey: ALE176
Summary: On machines which can run the Pentium4 optimized executable, give
users the option, during install, of P4 distribution (default) or regular
Description:
Previously the P4 executables were always installed on
machines which could run them
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Installation.Windows
Platforms: Windows
DevKey: ALE177
Summary: Upgrade installations of CSP gateway on VMS failed to correctly
modify httpd.conf
Description:
Previously, we incorrectly edited Apache configuration
files in csp-bin directory section.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Installation
Platforms: UNIX, OpenVMS
DevKey: ALE186
Summary: Structure of /doc directory changed
Description:
It now has the same structure as on Windows platforms.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.JDBC
Platforms: All
DevKey: AND269
Summary: Tighten JDBC Call Syntax
Description:
While stored procedures through both ODBC and JDBC were
generally in a fairly good shape, there were some complaints about poor error
reporting in cases where the CALL syntax was not used in a standard way. The
CALL syntax checking has been improved by providing better error reporting.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: AND270
Summary: Allow calls to getUpdateCount after executeUpdate
Description:
According to the JDBC spec, getUpdateCount should be called
only after a call to execute (or getMoreResults), but not afterexecuteUpdate (or
executeQuery). However, this behavior is not only strange, but also not
supported by other vendors. The driver is now changed so that one can call
getUpdateCount after executeUpdate.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.ODBC
Platforms: All
DevKey: AND273
Summary: Allow programmatic (on-the-fly) DSN setup
Description:
Caché ODBC driver now allows programmatic DSN definitions
via the SQLConfigDataSource API. Here's a list of key-value keywords that we
support:
- DSN
- SERVER
- PORT
- DATABASE
- UID
- PWD
For example, a DSN setup string should look like:
"DSN=Test\0SERVER=127.0.0.1\0DATABASE=USER\0PWD=sys\0PORT=1972\0UID=_system\0"
Any other key-value pairs will be discarded.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
No |
Yes |
Category: SQL.JDBC
Platforms: All
DevKey: AND274
Summary: Add (optional) NODELAY flag at the end of JDBC URL string
Description:
There is now
parsing logic that recognizes
optional :nodelay flag (where nodelay = {true,false}) at the end of the URL
string. Here's the updated Caché JDBC URL format:\
jdbc:Caché://localhost:port/namespace[/logfile:eventclass:nodelay]
where [/logfile:eventclass:nodelay] part is optional. Here are some
examples:
jdbc:Caché://127.0.0.1:1972/USER
jdbc:Caché://127.0.0.1:1972/USER/jdbc.log
jdbc:Caché://127.0.0.1:1972/USER/jdbc.log:event16:false
jdbc:Caché://127.0.0.1:1972/USER/jdbc.log::false
jdbc:Caché://127.0.0.1:1972/USER/::false
We have also added the following two Caché JDBC specific APIs to
CachéDataSource:
public void setNodelay(boolean nodelay);
public boolean getNodelay();
that can be also used to set nodelay flag if connecting via DataSource
object. We have still left the ability to set this flag via Properties connect
parameter. That means that if nodelay was set by specifying the flag in the URL
string (or via DataSource object), one can still override this by supplying
TCP_NODELAY property. In other words, here is how the setting of this flag is
determined. It defaults to 'true'. If supplied in URL, or by setting it through
the DataSource object, that value will be used, UNLESS TCP_NODELAY property is
set.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.JDBC
Platforms: All
DevKey: AND276
Summary: Fix potential <FRAMESTACK> error
Description:
Two instances of a potential FRAMESTACK error were
discovered by code inspection and fixed.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: AND277
Summary: Add support for get/setXXX(String parameterName,...) JDBC 3.0
APIs
Description:
With the addition of parameter name to the parameter meta
data returned by the server, it was easy to add a number of
CallableStatement.setXXX and getXXX APIs that take parameter name (as opposed to
the parameter index) as an argument. Note: we still officially support JDBC 2.x
only. Therefore, for now, the APIs added by this change are merely an extended
functionality.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.JDBC
Platforms: All
DevKey: AND281
Summary: Keep references to currently used statements in the statement
pool
Description:
CachéStatement.finalize() called from a finalizer thread
unconditionally cleans up. That sometimes interferes with application threads
that reuse the same object. We now keep references to all currently used
statements in the statement pool to keep this from occurring.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: AND282
Summary: Add closed flag to Stream classes
Description:
We added a closed flag to the Stream class and it's
subclasses, and added checks to prevent exceptions when stream is closed twice.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: AND284
Summary: Shut down the connection after receiving message sequencing
error
Description:
After receiving error 452 (message sequencing error) the
connection is unusable. We have now added code that closes a connection (that
includes sending a disconnect message to %qserver) once it receives error 452.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: AND285
Summary: Change Statement.executeBatch error reporting behavior
Description:
When executing an INSERT statement via
Statement.addBatch()/executeBatch(), if the target table does not exist the
int[] returned by atchUpdateException.getUpdateCounts() should expose the failed
statement. Instead int[] {0} is returned.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: AND286
Summary: Enhance client cache management for stored procedures
Description:
Upon seeing a DDL statement, we clean up the client side
cache. After that, any active statements need to be reprepared. Formerly, this
applied only to regular SQL; stored procedures were not reprepared, and that was
the problem. Now all statements are reprepared.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.JDBC
Platforms: All
DevKey: AND288
Summary: Use a trick to make CachéConnection object available
Description:
Most App Servers wrap native JDBC Connection objects so
that they are not available to the end user. However we need CachéConnection
object for use in Java Binding. With this change, we have added some code to
obtain a QuickStatement object.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.ODBC
Platforms: All
DevKey: AND292
Summary: Return length in number of bytes for RetrieveStream
Description:
We added logic that computed and returned number of bytes
instead of number of characters in %qserver.ReadStream. This fixed a problem in
JDBC; however, ODBC uses RetrieveStream instead of ReadStream. We have now added
the same logic to RetrieveStream.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: AND306
Summary: Introduce new Stream Error Code 411
Description:
Improved error reporting of Stream errors. More
specifically, "General Stream Error (412)" is now reported as "No stream object
defined for field (411)".
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: AND309
Summary: Reintroduce QuickStatment.close; Change in empty stream
retrieval
Description:
We have changed how we store empty character streams and
now made a corresponding change in %qserver to handle empty character stream
retrieval. We have reintroduced close in QuickStatement. It needs to be invoked
in order to prevent %qserver memory leaks.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.Query Processing
Platforms: All
DevKey: BJB250
Summary: Fix Subscript error on UNION with many blank fields
Description:
AK492 made some changes to avoid subscript errors on UNION
by restricting the length of subscript to 151 char. This was not small enough.
Because the subscript was a LIST when it got encoded it could double in size.
Worst case would be a list of NULLs, 151 control characters that would need to
be quoted by the encoding, doubling the length and pushing it over the 255 char
limit for a single subscript of a global. To stay under the 255 limit the length
must be reduced from 151 to 125 in distinct^%qaqcpr.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: SQL.Server
Platforms: All
DevKey: BJB252
Summary: Add check for <DSCON> in DieError to avoid looping
Description:
In Caché5.0.0 if an ODBC server got a <DSCON> error the
server would go into a loop and start to eat up the CPU. If this happens now the
server will HALT
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
Yes |
No |
Category: SQL.ODBC
Platforms: All
DevKey: BJB253
Summary: Fix calculation for ODBC precision
Description:
If you had a numeric field with a negative MinVal it is
possible we would compute the precision incorrectly.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL
Platforms: All
DevKey: BJB257
Summary: change datepart("week",date) to match SQL server behavior
Description:
DatePart("wk",date) was returning the number of the week
the date fell in based on multiples of 7 days from January 1. If now returns
weeks based on rows in the calendar, so the first Sunday of the year marks the
changing from Week one to week 2. This means week one most of the time will have
less than 7 days in it. With this change the range of values returned by this
function change from 53 to 54.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: Languages.Caché Basic
Platforms: All
DevKey: CDS363
Summary: Fixed <BREAK> processing error
Description:
This fixes a problem where a direct command in Caché Basic
throwing an error at a <BREAK> prompt would cause the process to crash.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System.StartUp
Platforms: All
DevKey: CDS374
Summary: Compiler error detail for missing */
Description:
Fixed an error where a /* comment without a closing */ in
ObjectScript gives an "Invalid command" error.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: CDS381
Summary: The error trap, %ETN, now stores the values of formal
parameters
Description:
%ER would incorrectly identify <UNDEFINED> variables
as having a value after an error. %ER would not display formal parameters.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
Yes |
No |
Category: System
Platforms: All
DevKey: CDS382
Summary: Fix ZQUIT not popping enough frames
Description:
A ZQUIT in an error trap did not pop a frame level. The
GOTO @$ZTRAP went back to the same error trap. For example, ZQUIT 1 should pop
one execution level. This now works properly.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Explorer
Platforms: All
DevKey: CFL861
Summary: EXPLORER now allows half-width Katakana symbols in its global
mask
Description:
We now allow half-width Katakana characters in global
subscripts. Previously, Explorer would report an invalid subscript.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
Yes |
Category: Installation
Platforms: All
DevKey: CFL867
Summary: CSP Autocompile setting is preserved on upgrade installations
Description:
The CSP autocompile setting is preserved upon upgrade.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| High |
Low |
Yes |
No |
Category: Utilities
Platforms: All
DevKey: CFL868, CFL871
Summary: Adjust fields for non-English texts
Description:
Widen various fields to accommodate truncated non-English
captions.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| High |
Low |
No |
No |
Category: Control Panel
Platforms: All
DevKey: CFL869
Summary: Fix Max %Full column in Control Panel | Local Databases
Description:
Correct Max %Full column display in Control Panel | Local
Databases.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Config Mgr
Platforms: All
DevKey: CFL875
Summary: Fix config file corruption when the file size > 64KB
Description:
Configuration Manager no longer corrupts the cache.cpf file
when it's larger than 64K.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
Yes |
No |
Category: Config Mgr
Platforms: All
DevKey: CFL885
Summary: Correct handling of null passwords for SQL Gateway
Description:
Null passwords were modified whenever other edits were made
to the configuration file.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Explorer
Platforms: All
DevKey: CFL887
Summary: Fix Find/Replace on unsubscripted nodes
Description:
Using Explore, Replace Every now correctly works on
unsubscripted global references such as "^GLOBAL=string".
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Config Mgr
Platforms: All
DevKey: CFL890
Summary: Preserve restart condition across multiple configuration manager
edits
Description:
If multiple edits were made and the last one did not
require a restart but others did, the config manager would inconsistently apply
the changes.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Config Mgr
Platforms: All
DevKey: CFL891
Summary: Fix the ability to map all routine types
Description:
The configuration manager now knows how to map all routine
types.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Explorer
Platforms: All
DevKey: CFL892
Summary: Fix Selecting in Explorer with Multiple Wildcards
Description:
Explorer handles wildcard usage with Routines better.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Utilities
Platforms: All
DevKey: CFL894
Summary: Config Manager uses same definition of remote servers as other
desktop utilities
Description:
The Config Manager was changed to search for remote servers
in the same manner as other utilities.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Config Mgr
Platforms: All
DevKey: CFL896
Summary: Eliminate length limit on ECP server add/edit
Description:
We have removed the 15-character limit on host names for
ECP.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: System.StartUp
Platforms: All
DevKey: CFL897
Summary: Fix Customer Name in restart splash screen
Description:
If the Customer Name in the .key file contained a comma,
the start and restart splash screen displayed only the first comma-delimited
piece of the name. This is now fixed.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Explorer
Platforms: All
DevKey: CFL901
Summary: Fix <MAXSTRING> error when exporting thousands of
classes
Description:
Corrected a problem when exporting a lot of classes from
Explorer. Previously, you might experience a MAXSTRING error at
cexport+15^%Wprog.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Utilities
Platforms: All
DevKey: CFL902
Summary: when we import .OBJ code we don't update the
^rINDEX("routine_name") node
Description:
Importing routines in object mode did not update the
appropriate indices. So the routines did not seem to be present after import.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Control Panel
Platforms: OpenVMS
DevKey: CFL903
Summary: Background integrity check on OpenVMS produced two files, the log
file and an empty file
Description:
Empty files were produced IN ADDITION TO the expected log
file.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Explorer
Platforms: All
DevKey: CFL905
Summary: Explorer gets errors when editing globals with digits in their
name
Description:
This could be very serious. Digits in the global name were
dropped when EXPLORER set the new values. So unintended data loss could occur.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Explorer
Platforms: All
DevKey: CFL908
Summary: Fix import from a file with thousands of classes
Description:
Importing thousands of classes using Explorer, you may
encounter a <MAXSTRING> error.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Config Mgr
Platforms: All
DevKey: CFL910
Summary: Disallow setting user process priorities
Description:
The config manager no longer offers the choice of setting
operating system priorities for user processes. The niceval parameter is
deprecated in the Configuration Manager and ignored when included in the
cache.cpf configuration file.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Control Panel
Platforms: All
DevKey: CFL912
Summary: Remove "Switch Journal File after Backup" checkbox
Description:
We have removed the "Switch Journal File after Backup"
checkbox from Control Panel|Backup|Tasks|<TASK>|Edit. The journal file is always
switched in the beginning of the task, no matter that option is marked or not.
No journal switch occurs in the end of the task.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Control Panel
Platforms: All
DevKey: CFL919
Summary: Fix namespace name truncation
Description:
Correct display of long namespace names which were
previously truncated.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: CSP.Gateway
Platforms: All
DevKey: CMT071
Summary: Resolve issues whereby hyperevent calls would fail, seemingly at
random, within applications operating for extended periods of time in
state-aware mode (preserve mode 1)
Description:
Resolve issues whereby hyperevent calls would fail,
seemingly at random, within applications operating for extended periods of time
in state-aware mode (preserve mode 1).
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: CSP.Gateway
Platforms: OpenVMS
DevKey: CMT075
Summary: Emergency fix for a potential issue in the Gateway's garbage
collector that could lead to an accumulation of 'defunct' connections
Description:
This build represents an emergency fix for a potential
issue in the Gateway's garbage collector that could result in the garbage
collector becoming temporarily suspended, which, in turn, would lead to an
accumulation of 'defunct' connections over a short period of time. The Windows
and UNIX builds will automatically recover from this issue. The OpenVMS NSD may
throw a fatal 'access violation'.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: CSP.Gateway
Platforms: Tru64
DevKey: CMT078
Summary: Resolve an issue whereby a thread within the NSD would spin and
consume excess CPU time under Tru64 UNIX
Description:
Resolve an issue whereby a thread within the NSD would spin
and consume excess CPU time under Tru64 UNIX.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: CSP.Gateway
Platforms: All
DevKey: CMT079
Summary: Improve the mechanisms within the NSD for detecting, and responding
to, an interrupt from the browser
Description:
Improve the mechanisms within the NSD for detecting, and
responding to, an interrupt from the browser.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: CSP.Gateway
Platforms: Tru64
DevKey: CMT080
Summary: Resolve an issue in the page output caching mechanism that could
result in a thread spinning (and using much CPU time) under Tru64 UNIX
Description:
Resolve an issue in the page output caching mechanism that
could result in a thread spinning (and using much CPU time) under Tru64 UNIX.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: CSP.Gateway
Platforms: Tru64
DevKey: CMT082
Summary: Resolve further issues with the UNIX implementation of change
CMT071 (Manifested as the NSD aborting on Tru64 UNIX)
Description:
A fault was found in the mechanism for automatically
recovering state-aware sessions after the user-driven interrupt of a request.
This error would particularly occur for requests taking a number of seconds to
service. This problem may manifest itself as an occasional SIGSEGV fault (code
11) which would often be followed by the OS issuing an abort signal (code 6) to
the NSD.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
Yes |
No |
Category: CSP.Gateway
Platforms: All
DevKey: CMT083
Summary: Introduce a better filter for malformed URLs (and incorrectly
specified components within otherwise valid URLs)
Description:
Introduce a better filter for malformed URLs (and
incorrectly specified components within otherwise valid URLs). The specific
examples are:
http://127.0.0.1/csp/samples/menu.csp?&"
http://127.0.0.1/csp/samples/menu.csp?&=
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
Yes |
Category: System
Platforms: All
DevKey: DAS445
Summary: Fix memory leak in Job Servers
Description:
Each time a Job Server restarted the virtual memory count
would increase. This memory leak has been corrected.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Languages.Caché Basic
Platforms: All
DevKey: DAS446
Summary: Fix CachéBasic DatePart() and DateDiff() with week parameter
Description:
The "ww" option for DateDiff() and DatePart() is now
working correctly.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Languages.Cache Basic
Platforms: All
DevKey: DAS449
Summary: On all platforms, make max udp packet size for DCP be 1468
Description:
The default size had been 3600 on VMS. On some VMS
versions, this resulted in fragmentation which in turn caused occasional DCP
hangs.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: SQL.GateWay
Platforms: All
DevKey: DLP1002
Summary: <INVALID OREF>zSQLGWExecute+5^%ooLibrary.DynamicQueryGW.1
Description:
Fixed the following sequence
temp ;
Set conn=##class(%SQLGatewayConnection).%New()
Set res=##class(%ResultSet).%New("%DynamicQuery:SQL")
Write conn.Connect("CACHE5B476 Samples","_system","")
Set res=##class(%ResultSet).%New("%DynamicQueryGW:SQLGW")
Write res.Prepare("select * from Sample.Company",,conn)
Write res.Execute()
q
which generated a <INVALID
OREF>zSQLGWExecute+5^%ooLibrary.DynamicQueryGW.1 error in 5.0. This error is
caused by an oref in a $list structure. The structure of qHandle was changed
from a $list() to a local array.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Stream
Platforms: All
DevKey: DLP1007
Summary: %Delete leaves open transaction
Description:
%Delete in a class with a character stream leaves a
transaction open if you try to delete a non-existing id.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: DLP986
Summary: Fix bug in check for Class compiler interrupt
Description:
Prior to this change an attempt to compile a large number
of classes which generated long error messages would generate a <LIST> error and
classes which do not have errors will not be runnable. After this change the
correct error message (not a <LIST> error) will be reported and other classes
which successfully compile in the same compile cycle should be runnable.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: DLP992
Summary: Qualify StorageToLogical call with property name
Description:
Corrected a problem in exporting Caché classes which have
been converted from release 4.x to 5.0.0 and subsequently exported to Java.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: DLP993
Summary: Check actual number of parameters against formal spec
Description:
Dynamic queries are preparsed and literals are replaced
with '?'. The preparsed query is used to lookup a cached query. If a suitable
cached query is found it is used otherwise a new query is constructed and
cached. The preparser recognizes '?' and reports their location. The location
and value of substituted literals is also reported. The dynamic query as
implemented in %DynamicQuery::SQL only supports 16 formal arguments. The dynamic
query compiler was incorrectly including substituted literals when checking to
see if more than 16 '?' are specified in the query. If >16 an error 'Too many
parameters' is returned.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: DLP996
Summary: Add Message property to %SQLProcContext
Description:
Additional error detail is often provided to xDBC clients
from the %msg local variable. SQL places additional information in that
variable. Stored procedures report SQL error information and rows processed in
the %sqlcontext object. However, this object did not provide a property in which
to place additional error information.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Class Compiler
Platforms: All
DevKey: DLP998
Summary: Count only actual parameters in a dynamic query
Description:
When a dynamic query is initially cached all literals are
replaced with parameters. Then all parameters are reported by GetInfo. It is not
valid that a replaced literal be reported as a parameter. GetInfo() now
constructs parameter information from the query as submitted. Only parameters
actually contained in that query will be reported by GetInfo().
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Medium |
No |
Yes |
Category: System.I/O
Platforms: All
DevKey: DMD032
Summary: Fix rare access violations when using |TNT| devices on Windows
Description:
This fix corrects an error when using |TNT| devices that
manifested itself as access violation errors on Windows.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System.TCP Devices
Platforms: Windows
DevKey: DMD035
Summary: Increase the size of the ctelnetd listen queue
Description:
Increased the size of the telnet daemon's listen queue to
prevent failed connection attempts if many users are connecting at approximately
the same time.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System.Shutdown
Platforms: All
DevKey: DMD038
Summary: Create a CACCVIO-PID.LOG file for PAGRDERR and PAGRDERRXM
errors
Description:
If there is a hardware problem that leads to a SS$_PAGRDERR
or SS$_PAGRDERRXM error, this will be logged in a CACCVIO-PID.LOG file.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: DPV1895
Summary: Fix return type for some ODBC Scalar functions
Description:
Some date- and time-related functions previously reported
their results using the wrong ODBC datatype. Specifically, they returned a
DOUBLE when they should have returned an INTEGER. The functions are:
- second
- minute
- hour
- week
- month
- year
- dayofweek
- dayofmonth
- dayofyear
The following functions previously reported DOUBLE and
now report VARCHAR:
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1899
Summary: Check %ALTER privilege on the view definition when ALTER VIEW is
executed
Description:
A bug has been fixed where an ALTER VIEW statement could be
executed by a user even if the user did not have %ALTER privilege on the view
definition. Now the privilege is properly checked before the ALTER VIEW
statement is executed.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1903
Summary: Properly generate include files in 2nd through Nth T# routine
Description:
There were actually two issues: 1) The #include <INCLUDE
file> was missing from the 2nd through Nth T# routines. This was because of a
simple problem in create^%qaccpq2 where the number of lines in the ^rMAC() entry
was set to one less than the actual number after the include files were added.
2) The second issue is the create^%qaccpq2 function was not handling the case
where an include file contained code. It put the include file in the MAC
routine, but it was never expanded in the INT routine, which is built alongside
the MAC routine. I added code to call LINES^%qarmac with the shell of the 2nd
through Nth routines in create^%qaccpq2. Then put the results into the ^ROUTINE
global. This means any code in the include files will be present in these
routines. This was never an issue with the first routine because it is built
slightly different in %qadctab.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1910
Summary: Don't include fields from parent table in conditional map condition
when turning nonnull index into conditional index
Description:
If you have a child of a child table, and set up a nonnull
index, the following occurs. The subscripts of the index corresponding to
parentref list, which are not fields of the current child table, end up
generating not null conditions for these fields. Therefore, they will not be
satisfied by any query conditions because they aren't even fields of the child
table.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1917
Summary: Rebuild indices are after datatype has changed to/from a string via
DDL
Description:
When a DDL ALTER TABLE <table name> ALTER COLUMN
statement is used to change the type of a column to or from a STRING datatype,
any indices on that column are rebuilt. This ensures that each index reflects
the correct collation.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1918
Summary: Support use of Map Variables in Data Access and Full Row Reference
expressions
Description:
Caché SQL now support references to map variables (such as
(1D1(, (1D2), (3D1), and so on) in %CacheSQLStorage RoReference and DataAccess
expressions.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL
Platforms: All
DevKey: DPV1920
Summary: Add support for MS SQL Server style CONVERT function
Description:
Caché SQL now supports the CONVERT() function for ease of
migrating from MS SQL Server applications. The syntax for the function is:
CONVERT ( data_type , expression [ , style ] )
Arguments:
data_type - Any datatype supported in Caché SQL. This is the
datatype that the expression will be converted to. The datatype specified here
will use the DDL Datatype Definition Table to determine the Caché datatype to
convert it to. The only meaningful datatype parameter used is the length
(VARCHAR(20)) which is translated to the MAXLEN datatype parameter
(%Library.String(MAXLEN=20)).
expression - Any valid Caché SQL expression.
style - Is the style of date format used to convert DATE, TIME, or TIMESTAMP
data to character data (VARCHAR). In the table, the two columns on the left
represent the style values for DATE, TIME, or TIMESTAMP conversion to character
data. Add 100 to a style value to get a four-place year that includes the
century (yyyy).
Without century With century (yyyy) Input/Output**
(yy) (yyyy)
- 0 or 100 (*) mon dd yyyy hh:miAM (or PM)
1 101 mm/dd/yy
2 102 yy.mm.dd
3 103 dd/mm/yy
4 104 dd.mm.yy
5 105 dd-mm-yy
6 106 dd mon yy
7 107 Mon dd, yy
8 108 hh:mm:ss
- 9 or 109 (*) mon dd yyyy hh:mi:ss:mmmAM (or PM)
10 110 mm-dd-yy
11 111 yy/mm/dd
12 112 yymmdd
- 13 or 113 (*) dd mon yyyy hh:mm:ss:mmm(24h)
14 114 hh:mi:ss:mmm(24h)
- 20 or 120 (*) yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 (*) yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126(***) yyyy-mm-ddThh:mm:ss:mmm(no spaces)
- 130* dd mon yyyy hh:mi:ss:mmmAM
- 131* dd/mm/yy hh:mi:ss:mmmAM
* The default values (style 0 or 100, 9 or 109, 13 or 113, 20 or 120, and
21 or 121) always return the century (yyyy).
** Input when converting to DATE,
TIME, or TIMESTAMP; output when converting to character data.
*** Designed for
XML use.
For conversion from DATE, TIME, or TIMESTAMP to character data, the
output format is as described in the table. Caché supports the following type
conversions using the CONVERT function:
From DATE to VARCHAR
Example: CONVERT(VARCHAR(20),CURRENT_DATE,100)
Returns: 'Jan 28 2003 03:00PM'
From TIME to VARCHAR
Example: CONVERT(VARCHAR(20),CURRENT_TIME,8)
Returns: '15:23:14'
From TIMESTAMP to VARCHAR
Example: CONVERT(VARCHAR(20),CURRENT_TIMESTAMP,0)
Returns: 'Jan 28 2003 03:00PM'
From INTEGER, SMALLINT, or TINYINT to VARCHAR
Example: CONVERT(VARCHAR(20),Age)
Returns: '47'
From DOUBLE or NUMERIC to VARCHAR
Example: CONVERT(VARCHAR(20),Total_Cost)
Returns: '197.21'
From VARCHAR to VARCHAR (used for truncation)
Example: CONVERT(VARCHAR(20),Description)
Returns: 'Weight measurement o'
From VARCHAR to DATE
Example: CONVERT(DATE,'28 Jan 2003 15:12:13:436',113)
Returns: 59197
From TIMESTAMP to DATE
Example: CONVERT(DATE,CURRENT_TIMESTAMP)
Returns: 59197
From VARCHAR to TIME
Example: CONVERT(TIME,'28 Jan 2003 15:12:13:436',113)
Returns: 54733
From TIMESTAMP to TIME
Example: CONVERT(TIME,CURRENT_TIMESTAMP)
Returns: 56508
From VARCHAR to TIMESTAMP
Example: CONVERT(TIMESTAMP,'28 Jan 2003 08:13:04:443AM',130)
Returns: '2003-28-01 08:13:04.443'
From DATE to TIMESTAMP
Example: CONVERT(TIMESTAMP,CURRENT_DATE)
Returns: '2003-28-01 00:00:00'
Note: When converting to a TIMESTAMP value, if the source
value is missing the Time component, the converted time
is 12:00:00AM
From TIME to TIMESTAMP
Example: CONVERT(TIMESTAMP,CURRENT_TIME)
Returns: '2003-28-01 15:23:34'
Note: When converting to a TIMESTAMP value, if the source
value is missing the Date component, the converted date
is the current day.
From <ANY type> to INTEGER, SMALLINT, or TINYINT
Example: CONVERT(INTEGER,CURRENT_DATE)
Returns: 59197
From <ANY type> to NUMERIC or DECIMAL
Example: CONVERT(NUMERIC,CURRENT_DATE)
Returns: 59197
Be very careful not to confuse the CONVERT(datatype, expression [,style])
function with the {fn CONVERT(expression, datatype)} ODBC Scalar function, they
are different. If an invalid value is passed to the CONVERT function, an
SQLCODE=-141 error will be returned at run-time. This is a new error code:
SQLCODE = -141
Invalid input value passed to the CONVERT function
CONVERT(TimeStamp,'abc',131)
Will throw an SQLCODE=-141 error.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.JDBC
Platforms: All
DevKey: DPV1921
Summary: Fix JDBC reporting of foreign keys
Description:
Using the JDBC getExportKeys() function, Caché did not
correctly report foreign keys when a table contained multiple foreign key
references to another table.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: DPV1922
Summary: Correct JDBC reporting of parent reference field
Description:
When using the JDBC getExportedKeys() function, Caché did
not correctly report the name of the parent reference field.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: DPV1924
Summary: Add checks to make sure string fields don't contain map piece
delimiter characters
Description:
Caché SQL has been enhanced to automatically detect field
values that contain characters used as delimiters in the associated global node
where the field is stored. This validation, which is OFF by default, is
controlled by a new class parameter, STORAGEDELIMITERCHECK.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
Yes |
Category: SQL
Platforms: All
DevKey: DPV1927
Summary: Fix query generated %QuickLoad function to not scan entire
table
Description:
We previously changed the Quick* functions so we treat all
ID's and references as Logical values. As part of this change I used some WHERE
conditions in an SQL statement of the form:
WHERE %INTERNAL(%ID) = :value
This caused the query to loop over all the records instead of fetching
just the record we are looking for. I'm not sure why %INTERNAL(%ID) isn't
treated the same internally as %ID, but I guess the query processor is not
optimized for it. It has been changed to just use a query of the form %ID =
:value for QuickLoad and the other instances where this code generation might
occur.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: DPV1935
Summary: Fix DATEPART("wk",...) calculation
Description:
The calculation of week numbers carried out by the DATEPART
function returned an incorrect value. For example,
DATEPART("wk","2003-02-10")
returns 6 instead of the correct result, 7. This function is included for
Sybase SQLServer compatibility.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1940
Summary: Fix code generation problem with large indices
Description:
Corrected a problem where the code generator was
erroneously splitting lines when they were longer than 200 characters. This
specific case was a long index name with 8 or more fields in the index.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1941
Summary: Fix QuickLoad problem involving primary keys and SQL queries
Description:
Corrected a code generation problem with QuickLoad when
there was a Primary Key index that was also the IDKey and the loading of a row
required an SQL query instead of direct global access.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: SQL.Syntax
Platforms: All
DevKey: DPV1942
Summary: Fix <UNDEFINED> in parsing string function
Description:
Corrected an <UNDEFINED> error in the SQL scalar function,
STRING.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL
Platforms: All
DevKey: DPV1943
Summary: Fix insert select of stream field
Description:
Corrected a problem with INSERT ... SELECT
commands involving stream data that could result in incorrect values being
inserted.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1944
Summary: Store empty LONGVARCHAR streams with "" instead of $c(0)
Description:
When saving a literal value of '' (SQL Empty String) in a
LONGVARCHAR field (GlobalCharacterStream), we now store a zero-length string
("") in the stream object rather than $c(0).
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1945
Summary: Correct TuneTable selectivity calculation for tables with UNIQUE
fields
Description:
TuneTable may incorrectly calculate the Selectivity for a
table with UNIUQUE fields.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1946
Summary: Support global reference with vertical-bar syntax in mappings
Description:
Using vertical bars in global mapping references now works
as expected without compilation errors. That is:
^[$get(^nsp)]a -> always worked
^|$get(^nsp)|a -> now works
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
Yes |
Category: SQL
Platforms: All
DevKey: DPV1947
Summary: Add CONSTRAINT_OBJECT_NAME to %Library.SQLCatalog.SQLConstraints
procedure
Description:
A column CONSTRAINT_OBJECT_NAME has been added to the
%Library.SQLCatalog_SQLConstraints stored procedure. This column contains the
Object name of the foreign key or index which projected the constraint. The full
rowspec of the SQLConstraints procedure is now:
SQLConstraints Procedure
%SQLCatalog_SQLConstraints('tablename')
Takes 1 %String/VARCHAR type parameter which is the name of a BaseTable.
Returns all fields in the table:
ROWSPEC = CONSTRAINT_NAME:%String - Name of the constraint
TYPE:%String - Type of constraint
CONSTRAINT_DATE:%String - Constraint info depends on type
CONSTRAINT_OBJECT_NAME:%String - Object name of the constraint
Rows are returned in no particular order
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.Server
Platforms: All
DevKey: DPV1954
Summary: Fix Addqout^%qserver with > 32000 characters of data
Description:
Addqout, in xDBC server, did not handle more than 32000
characters.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
No |
Yes |
Category: SQL
Platforms: All
DevKey: DPV1962
Summary: Field-specific UPDATE triggers execute too often
Description:
Corrected a problem that could cause an update trigger,
which should be executed only when the values of specific fields have changed,
to be executed when any field's value changed. Here's a specific example:
Create Trigger LogArt AFTER UPDATE OF Price on pl31607 REFERENCING NEW ROW as NR
INSERT INTO pl31607Log(LogDate,ARTID, Price)
values ( CURRENT_TIMESTAMP, NR.ARTID, NR.PRICE)
was getting executed for every update, not just updates of the Price
field.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL
Platforms: All
DevKey: DPV1968
Summary: Support Quick %nolock=2 which simply means behave as if standard
SQL statement
Description:
Honor current transaction isolation in Quick* API.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
No |
Yes |
Category: SQL
Platforms: All
DevKey: DPV1969
Summary: Ensured Proper Operations of Descending-Order Sorts
Description:
Previously, a descending-order sort in certain queries (for
example, those containing "COUNT(*)") resulted in data sorted in ascending order
when it should have been descending. This has been addressed.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production |
This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: (See below)
Summary: Multiple improvements to Studio
Description:
The following improvements were made to Studio:
- AGC185: Studio COS parser - improve handing of unclosed /*
- AGC204: Studio SQ parser - accept CONVERT scalar function
- DVU623: Allow 5 decimal points for selectivity
- DVU625: Cancel Debugger if user select Cancel in "SetDebug Target" dialog
- DVU626: Open Routine doesn't use Correct SourceControl
- DVU627: Added source control support for project and access to source
control from project tree.
- DVU628: No longer open added to project items automatically.
- DVU629: Generate valid Basic method in override Get/Set for Properties
- DVU632: No longer update the source code when copying a class
- DVU634: Change behavior of Delete Item in Studio
- DVU635: Make autocomplete in "GoTo" combo Case Sensitive
- DVU638: Template URL now have a parameter &DocumentNamespace in
addition to &Namespace.
- DVU640: The right-click menu has a trailing section-separator with no
following item, unless invoked on a package. This is fixed.
- DVU641: Remember the state of "Include System Items" in Open Dialogue
- DVU642: Change menu item 'Recent Files' to 'Recent Routines'
- DVU643: Added Message Box on Find Next before wrapping
- DVU644: Support Ctrl-Tab and Shift -Tab in Find/Replace dialog
- DVU645: Reset the STORAGESTRATEGY to "" if it was Deleted
- DVU648: Check inspector changes before closing studio.
- DVU650: 'Delete' button deletes only first element of multiple select
- DVU652: New Index Wizard. Disable Bitmap option for IDKEY, Unique and
Primary keys.
- DVU653: Eliminate error when Deleting new class
- DVU654: Address problem when creating a COS routine and then using Save As
.BAS
- DVU655: Fix Race Condition in Studio Display
- DVU656: Correct Ctrl/A behavior in output box
- DVU657: Loading class on Win XP cause multiple Inspector repaint.
- DVU658: It was possible that routine will exists without a timestamp. We
now check if it really exists before deciding that it was deleted.
- DVU659: export showed duplicate entries
- DVU660: Import dialog in Studio should have mask for *.csp,*.csr
- DVU661: If Registry is empty Connection Manager was showing "File not
find". We will not display this error any more.
- DVU673: Save color table after editing.
- DVU675: Changes to a newly created class are not saved upon exiting
Studio.
- DVU679: Correct tab order in File Open Dialog
- DVU687: Allow JavaScript editing in Studio.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.ActiveX
Platforms: All
DevKey: DVU630
Summary: Don't ask password for Namespace list in connection manager
Description:
If you have Caché Direct security turned on and you try to
use the SQL Manger you have to enter the Caché Direct User name and Password
several times. The error message for this has been fixed.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low
|
| No |
No |
Category: System
Platforms: All
DevKey: EKP009
Summary: Fix a DTM network emulation bug in $DATA
Description:
A bug in the DTM network emulation function zu107fun()
which would sometimes cause error code 258 has been corrected.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Networking
Platforms: All
DevKey: GK169
Summary: Fix occasional segmentation violation when doing reverse $ORDER
over ECP on BIG-ENDIAN systems
Description:
Big endian gorder didn't check the returned value before
fetching on ECP systems. It was modified to check if there is a valid value
before de-referencing it.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK170
Summary: ECP answer buffer overrun
Description:
This fixed a bug which caused answer buffer overruns in
ECP.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK171
Summary: Improve the handling of asynchronous messages queued from the
server
Description:
This flag is set when the ECP read daemon is in the middle
of answering a request. If the flag is set then various requests may produce
asynchronous answer messages which could be inserted in the answer buffer,
otherwise asynchronous messages will be queued to be sent later.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK173
Summary: On recovery failure acquire ECP client resource
Description:
On recovery failure, ECP released the exclusive ownership
of the client request buffer without owning the client resource. It has been
changed to (re)acquire the resource (if didn't own), before releasing the
exclusive ownership.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK174
Summary: Accommodate largest possible size of UNICODE strings over ECP
Description:
5.0.0 client will hang if a 32K char uncompressed Unicode
string is set over ECP. If 5.0.1 client is connected to a 5.0.0 ECP server, a 32
char uncompressed Unicode string set will drop the ECP connection with ERSYSTM
error, and "bignet_net_read: Invalid pkt len - len.." msg in the server
cconsole.log. 5.0.1 ECP client and server is required to resolve this problem..
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK175
Summary: When running ECP over old format databases (2Kb), optimization
information was sometimes (rarely) overwritten
Description:
If the block had optimization info, and the following
global reference ccc(common char count) is > optimization, then the delta was
left with a garbage value.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK176
Summary: Ensure correct concurrent synchronization in ECP when allocating
space for a request entry
Description:
Code review uncovered a missing MEMBAR request which could
cause ECP client hangs or request corruptions. It could cause a hang or data
corruption. This has been fixed.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK177
Summary: Correct rare ECP synchronization of the application server cache
(old format (2K) databases)
Description:
On rare occasions, if both a set AND a subsequent kill
affecting the same node in a 2Kb database had not been transmitted to the ECP
database server, the application server may misapply a delete node request.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: Linux, HP
DevKey: GK178
Summary: Fix handling of TCP write errors
Description:
Caché/Linux network connection doesn't detect network
disconnection.. Redhat 7.3 and 8.0 have a TCP bug: If you overflow the outQ,
then drop the server connection, the client doesn't detect that the connection
is gone/dead. There is no error from the platform when you write, and hangs
forever if the server is windows. MS resets the peer connection (it works fine
with windows), but other UNIXes i.e. Sparc or HPux don't. Worst of all, it
leaves the system buffers allocated for a very long time. We modified nettcp to
wakeup every 5 seconds to check for halt request.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK179
Summary: ECP client didn't maintain server unique ID
Description:
We modified the system to remember the server GUID after
connection/session initialization. It was getting zeroed when session recovery
was denied. Then later the session wasn't recoverable because the server didn't
accept the GUID, and complained with session out of date message.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK181
Summary: Added $System.Server HostName and IPAddresses
Description:
Added:
$system.Server.HostName()
; Returns current host name
$system.Server.IPAddresses(<OPTIONAL name host>)
;Returns specified host IPs (comma separated)
;If host name is not specified returns current host IPs.
;Note: it returns configured IPs not necessarily the actual NIC IPs
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Networking
Platforms: All
DevKey: GK182
Summary: Slowdown ECP worker dmn creation
Description:
Pause very very briefly to allow ECP worker daemons to
start after launching.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK184
Summary: Add process ID of client process to journal record
Description:
Modified ECP server to store the client sys number and pid
in the journal.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Medium |
No |
Yes |
Category: Networking
Platforms: All
DevKey: GK185
Summary: Increased ECP cluster master connection timeout
Description:
When running ECP as a lock transport for Caché clusters,
the timeout had been set too low to accommodate cluster failover.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK186
Summary: On cluster reconnect, exit the old ECP connection gracefully
Description:
When an application server establishes an ECP connection to
a node that happens to be the master of a cluster and that node is forced down
in the narrow window when the connection is still starting up, cluster recovery
will now succeed.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK194
Summary: ECP server to keep cluster slave session forever
Description:
If a slave node of cluster (running ECP for lock transport)
is disconnected from the network, it can cleanly reconnect later on. Previously
cleanup was incomplete so that reconnect attempts were unsuccessful.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK195
Summary: TCP-send interrupted system call handling
Description:
We modified the system to ignore the exceptions bit on
select, if select says the call was interrupted.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: GK197
Summary: Properly handle modifying ECP server (via control panel or config
manager) when already up and running
Description:
The ECP client structure is not initialized properly by ECP
reinit. This corrects the issue.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System.Cluster Specific
Platforms: All
DevKey: HYY732
Summary: preserve wij info of the old master for failover
Description:
Fixes a problem that could cause cluster journal recovery
to fail if the previous master died nicely.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Medium |
Low |
Yes |
No |
Category: System.Journaling
Platforms: All
DevKey: HYY733
Summary: address an issue of journal daemon hanging
Description:
Corrected a problem where in rare occasions journal daemon
might skip writing some journal buffers to disk, causing the system to hang
eventually.
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System.Journaling
Platforms: All
DevKey: HYY734
Summary: During cluster failover/recovery, transaction rollback would fail
if the new master had more than 254 databases mounted
Description:
Now the recovery code properly handles the maximum number
of databases permitted
Likelihood of happening |
Risk this change introduces new problems |
Distributed in ad hoc release and installed
in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System.Journaling
Platforms: OpenVMS
DevKey: HYY741
Summary: fix a bug that caused journal daemon to skip writing some journal
buffers and result in system hang
Description:
Addressed a problem where journal daemon might skip writing
certain journal buffers after journal file has switched, resulting in corrupted
journal file and system hang. The circumstance that caused it to happen is
present on Windows and OpenVMS platforms in 4.1 or Windows platforms in 4.0 and
earlier. This problem is much less likely to occur in Caché than in earlier
releases. It is fixed in this release. The primary conditions for the problem to
occur are:
- "free system on journal I/O error", and
- there is no space in either primary or alternate directory at one point
and then
- some space is freed up in the alternate journal directory.
The last one, freeing up some space in the alternate directory, is
not a necessary condition, but it makes the problem much more likely to
happen.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System.Journaling
Platforms: All
DevKey: HYY742, JO1689
Summary: Address a deadlock situation between journal daemon and write
daemon during jrnswitch
Description:
Addressed a problem on non-cluster platforms (Windows and
UNIXes) where journal daemon might hang at switching journal file.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: System.Journaling
Platforms: OpenVMS
DevKey: HYY743
Summary: Correct race condition on journal switching on OpenVMS
Description:
Addressed a theoretical journal corruption problem caused
by the journal switch not waiting for journal asynchronous I/O to complete.
This has never been encountered in the field and effort to demonstrate this
potential problem were unsuccessful. This problem was identified during code
review related to other changes in journaling.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System.Shadowing
Platforms: All
DevKey: HYY750
Summary: address a performance problem with shadowing
Description:
Correct a performance problem with fast-mode (or
block-mode) shadowing where the shadow may consume significant CPU locating the
end of journal (GEND^SHDWCBLK). The problem is present in Caché 4.1 and
earlier.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
Yes |
No |
Category: System.Shadowing
Platforms: All
DevKey: HYY751
Summary: correct a potential problem in fast-mode shadowing
Description:
We found a problem during code review and we believe
clients have never experienced it. Potentially, the end of the journal could
be marked incorrectly on the shadow server which would preclude further
journal restoration on the shadow.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: All
DevKey: JB106
Summary: Addressed Issue with Task Not Rescheduling Properly
Description:
Fixed scheduling problem and extra GetDay label.
Previously, a task which was scheduled multiple times per day could not be
rescheduled for more than one day. On the last occurrence of the schedule, the
task should have been rescheduled but was not. This has been corrected.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Medium |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN339
Summary: Force dialogs to use narrow API when Unicode is defined, fix for
Win9x
Description:
Several dialogs do not appear on Windows 9x platforms,
because when building the Unicode version of the driver, the Unicode version
of several dialogs were being called which is a noop on Win9x platforms. This
occurred when asking for a password or username by the driver. This has been
fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Languages.Caché Basic
Platforms: All
DevKey: JCN344
Summary: Backport Critical bug fixes for CachéBasic on usparc
platform
Description:
Compiling the following .bas file using %RCOMPIL would
crash prior to this correction.
#classcontext csp.basic
Sub zOnPageBODY()
count = request.Get("COUNT",0)
end sub
#endclasscontext csp.basic
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN365
Summary: wrong default setting for "Unicode SQLTypes"
Description:
"Unicode SQLTypes" should be off by default for a
previously installed DSN. Previously it was set to on, if the Registry Key is
not present.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Languages.Caché Basic
Platforms: OpenVMS
DevKey: JCN377
Summary: Fix typo in calling CanUnloadNow function in COM modules on UNIX
and OpenVMS
Description:
The CanUnloadNow function is exported in CachéBasic,
CachéCOM, CachéPM, and CachéScanner. A typo in the call on OpenVMS and UNIX
was calling CanUnLoadNow with a capital "L" causing it to never be run during
the unloading of these modules by CachéCOM.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN379
Summary: UNIX ODBC: SQLError returns some garbage..
Description:
A buffer created by an application is passed to ODBC to
have the error filled in. The SQLError function in CachéODBC tried for this
particular error to pass back a new pointer to a string, but UNIX iODBC
headers only allow a Const pointer in the SQLError prototype, and the new
string is not returned. This applies only to this particular type of error, as
other errors copy string to the application buffer properly.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN381
Summary: Prevent possible access violation on logging buffer overrun
Description:
Logging could encounter a buffer overrun when appending
on the null character for the end of a string. This has been corrected.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN389
Summary: Fix for #Deleted problem in Access when using numeric column as
primary key
Description:
Access does not handle numeric primary keys in a
consistent way when comparing their values. Normally Access will perform an
internal comparison on the first ten primary keys and if it does not match
their internal representation they return a #Deleted for a given row. Our
driver consistently formats Numeric data converted to SQL_C_CHAR or
SQL_C_WCHAR as 0.00 if the scale is 2, whereas SQLServer returns the same data
as .00. While returning .00 will fix the Access #deleted issue, it should only
be done for the value 0, as SQLServer does not handle negative numbers in
Access, but our convention of returning a leading zero before the decimal
place works in Access. Why Access considers 0.00 to be different than 0 or .00
appears to be a bug unique to Access. The driver will provide a work around by
returning ".00" rather than "0.00". While this is a slight formatting change
only for the 0 value, it seems a better alternative which allows the use of
numeric primary keys in Access.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN391
Summary: Poor error message if ODBC DSN contains invalid namespace
Description:
Added "Invalid Namespace" message for 410 errors.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: SQL.ODBC
Platforms: All
DevKey: JCN393
Summary: Eliminated Memory Leak with Streams and ADO
Description:
Previously, inserting streams into Caché caused a memory
leak. This change corrects it.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: Windows
DevKey: JLC464
Summary: Use correct error macros on Windows
Description:
On very rare circumstances, the wrong OS-level error code
may have been logged on Windows platforms when a system error occurred.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: AIX
DevKey: JLC467
Summary: Correct overflow in handling OS files limits on 64 bit AIX
Description:
Make the file limits check work appropriately on 64-bit
AIX.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: OpenVMS
DevKey: JLC468
Summary: Correct handling of file sizes in a certain narrow range on
OpenVMS
Description:
A problem involving files size calculation with
inadequate precision has been corrected.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: Windows, Tru64
DevKey: JLC484
Summary: Startup code could fail in rare circumstances when over 4 GB of
global buffers were configured
Description:
Corrected a problem with offsets into a 4GB+ buffer pool
being truncated to 32 bits.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: OpenVMS
DevKey: JLC485
Summary: On OpenVMS, when we cannot allocate as much memory as initially
requested but are successful allocating a smaller number, the system still
reports the initial value
Description:
For OpenVMS when we fail to get the requested amount of
resident memory there's a loop that reduces the allocation request and retries
until we hit some minimum. This loop works fine but it never recalculates the
# of global buffers we actually have. This has been fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Object.ActiveX
Platforms: All
DevKey: JN088
Summary: Objects deleted prematurely when ResultSet used with .NET
Description:
Customer was experiencing null object exceptions with
.Net. The problem was due to our implementation of ResultSet deleting an
object rather than decrementing a reference count. This has been fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Object.ActiveX
Platforms: All
DevKey: JN089
Summary: Make Factory.SetOutput() work with .Net
Description:
The Factory.SetOutput() method would not work with .Net.
Output from Caché would not be sent to the TextBox or other UI Control. This
now works for .Net Factory.SetOutput(TextBox1)
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.DDL
Platforms: All
DevKey: JN090
Summary: CREATE PROCEDURE argument length omitted in Studio
Description:
There was a typo, introduced a while back when a compiler
optimization bug was fixed preventing correct parsing of parameterized types
in query and method arguments. This has been fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Cube
Platforms: Windows
DevKey: JO1654
Summary: The Caché service on Windows no longer wakes up to gather
statistics
Description:
Since the system viewer is no longer available, there is
no reason for the system service to wake up to gather these.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: System.Backup/Restore
Platforms: All
DevKey: JO1661
Summary: Correct a problem whereby a user would sometimes be forced to do
a full backup when an incremental backup should have been an option
Description:
There were occasions where internal flags that controlled
whether the next backup would be incremental we incorrectly so. This meant
that the next backup HAD TO BE a full backup. No data could be lost but
operations may have been adversely affected (since full backups require more
time than incremental).
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: System
Platforms: All
DevKey: JO1662
Summary: Correct a situation where very short waits (less than 100 mSec)
could sometimes result in no wait at all (platform dependent)
Description:
This is mostly an internal change but the effects may
have been seen in a number of places.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: System.Cluster Specific
Platforms: All
DevKey: JO1665
Summary: Fix a race condition on Caché clusters
Description:
This fixes a race condition on Caché clusters between
updating the available block information on disk and in memory when doing a
database expansion.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System.Cluster Specific
Platforms: All
DevKey: JO1668
Summary: Fix false <FILEFULL> in cluster mounted 2kb database
Description:
This resolves a rare case in which a false
<FILEFULL> error could occur in a 2-KB formatted cluster-mounted database. This
is difficult to reproduce and requires extremely high rates of database
updates across multiple cluster nodes. The expansion now waits for updates
from other nodes and retries the expansion many times before reporting
<FILEFULL>.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: OpenVMS
DevKey: JO1671
Summary: Fix big buffer pool allocation on OpenVMS & test global
buffer allocation in mcominit
Description:
The calculations for the # of bytes in the buffer pool on
OpenVMS were incorrect. This has been fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: OpenVMS
DevKey: JO1672
Summary: Update # of global buffers when we reduce resident memory
allocation
Description:
For OpenVMS, when we fail to get the requested amount of
resident memory there's a loop that reduces the allocation request and retries
until we hit some minimum. This now correctly recalculates the # of global
buffers we actually have.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: JO1673
Summary: Change reserved block alloc/dealloc code to skip bad maps, not
abort
Description:
The code which reserves blocks in the database now skips
erroneous map entries rather than aborting.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: System.Cluster Specific
Platforms: All
DevKey: JO1674
Summary: Fix expansion daemon so it runs if another process needs it
during cluster failover
Description:
This improves the expansion daemon operation by allowing
it to run during cluster failover if it is needed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: System
Platforms: OpenVMS
DevKey: JO1675
Summary: Don't skip processes that return SS$_SUSPENDED in $GETJPI from
cforce on OpenVMS
Description:
We changed the logic of forcing jobs to terminate to
include those jobs that are suspended or unresponsive. Previously, forcing
CACHE down may have skipped certain processes. This would mean that not all
shared memory was freed which would lead to problems on restart, requiring a
second force.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: JO1676
Summary: Set wdstop when any write daemon exits
Description:
If a write daemon exits databases modifications will be
suspended. CFORCE will have to be used to shut down the system in this
situation. Note that certain circumstances cannot be caught e.g. KILL -9 on
UNIX.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: Tru64
DevKey: JO1680
Summary: Use NANOSLEEP instead of select() for timed sleeps on HP-UX
Description:
This is a performance improvement on very, very busy
systems.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: System
Platforms: HP-UX
DevKey: JO1681
Summary: Adjust spinloop counters on HP-UX
Description:
This is a performance improvement on very, very busy
systems.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: System
Platforms: All
DevKey: JO1683
Summary: Fix exception allocating more than 2^31 bytes of global
bdb's
Description:
A problem has been resolved which caused exceptions
during startup trying to allocate a global buffer pool larger than
approximately 32GB.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: Tru64, OpenVMS
DevKey: JO1688
Summary: Change code that sets jobtype not to use OR except for APPMODE
flag & don't set APPMODE for ENQDMN
Description:
The ENQDMN processes, on OpenVMS and Tru64 clusters, were
categorized with the job type of Application Mode rather than System Process.
This led to confusing display in JOBEXAM.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System.Journaling
Platforms: All
DevKey: JO1689
Summary: Changed journaling to avoid incorrect exits
Description:
Journaling was changed to eliminate a situation where it
could erroneously exit while in the middle of global operations leaving
systems resources locked.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Low |
Low |
No |
No |
Category: Networking
Platforms: All
DevKey: JO1690
Summary: Correct problem with ECP application server restart
Description:
In certain circumstances, the connection could not be
reestablished or other errors may be reported.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: System.Cluster Specific
Platforms: All
DevKey: JO1691
Summary: Correct problem with cluster failover when switch 13 or 14 was
set
Description:
A problem where cluster failover would be blocked if a
process had set switch 13 or 14 on the cluster master has been resolved.
Previously cluster failover would get "stuck" during the journal recovery
phases and the cluster would need to be forced down and restarted.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1003
Summary: Return early from errors
Description:
If generating file (in a multi-file generate) had errors,
we continued to generate code for other files. We returned the bad generation
in a status. Now we will cease generation. Error will be returned immediately.
There is a trade-off here. In some ways continuing to generate code for files
was desirable. Now customer must fix all errors before he gets generated code.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| No |
No |
Low |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1013
Summary: Allow DATASOURCENAME to override data source name in bean
implementation
Description:
There is a class parameter DATASOURCENAME. DATASOURCENAME
can be used to override the data source name in the bean implementation. For
instance, Parameter DATASOURCENAME="jdbc/common"; in the class results in the
following line being generated in bean implementation: String dataSource =
"java:/comp/env/jdbc/common";
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1015
Summary: Fix problem in creating and using finder extensions in EJB
Description:
To support programming finders and other extensions to
our generated EJB interface, this change form introduces the notion of
extensions. The basic idea is the following approach to adding a finder.
- Extend the generated bean implementation. ejb-jar.xml will point to this
extension as the bean implementation and the extended home and home local
interfaces. The extension will have the implementation of the finder.
- Have an extended home interface (and home local interfaces) that extends
the normal home interface. The extended home interface will contain the
finder prototype.
In this DevChange we augment the EJB Wizard to
allow it to automatically generate support for such extensions. We introduce a
new class parameter:
When this is set we change the generated code in the following way. For
the discussion, let's say the name of the persistent class from which the
entity bean is being generated is Package.Class. Let's say the EXTENSIONPREFIX
is Ext. In ejb-jar.xml, the <EJB-CLASS> is pointed to the extension. The name
of the extension is Package.EJBExt_Class_Bean. For example, for Sample.Person
the name of the normally generated bean implementation is
Sample.EJBPerson_Bean and the name of the extension (to which ejb-class
refers) is Sample.EJBExt_Person_Bean. In ejb-jar.xml, <LOCAL-HOME> points to
ISC.EJBExt_Class_Home_Local. In ejb-jar.xml <LOCAL> points to
ISC.EJBRegression_Local. Into these extensions one can put one's finder. We
generate extensions Package.EJBExt_Class_Home.java and
PackageEJBExt_Home_Local.java. Into these extensions one can put the prototype
for one's finder. We also automatically generate "stubs" for these extensions
if one sets the following class parameter
In this case we automatically generate stubs for
Package.EJBExt_Class_Bean.java, Package.EJBExt_Class.java and
PackageExt_Class_Home.java. In development, one would first turn EXTENSIONGEN
on and then turn it off once one has stubs to use. Here is an example of
defining these parameters in a class.
Class ISC.Regression Extends %Persistent [ ClassType = persistent ]
{
Parameter EXTENSIONPREFIX = "Ext";
Parameter EXTENSIONGENON=1;
etc.,
}
Here is an example of the generated home interface:
public interface EJBRegression_Home
extends javax.ejb.EJBHome,ISC.EJBExt_Regression_Home
With EXTENSIONGENON set to a non-zero value, we generate a stub for the
ISC.EJBExt_Regression_Home interface. After this stub is generated one can
place one's finder there and then turn off EXTENSIONGENON. Now one can
regenerate EJB code and one's extension will still be there and be operative,
so one's finder can accessed by EJB even after code regeneration. Note that the
extension to our generated bean can call getConnection in the bean
implementation to get the data source that can be passed to JDBC function
calls.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1016
Summary: Fix dataSource name
Description:
The dataSource name in EJB has been corrected. There
shouldn't be a slash after the colon.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1017
Summary: Produce code that compiles even when ROWID renamed
Description:
We generate value.getID() for ROWID accessor but this may
not be correct if ROWID has been defined to have a different name. This is now
fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1018
Summary: Allow Session Bean generation when PERSISTENCETYPE="CMP"
Description:
When PERSISTENCETYPE="CMP", a <PROPERTY DOES NOT EXIST>
error occurs. This has been corrected.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1021
Summary: Eliminate duplicate entries from remote interface
Description:
For primitives we used to export to the remote interface
get_XXX and getXXX and set_XXX and getXXX which did the same thing. Now we
only export get_XXX and set_XXX.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1023
Summary: Correct JBoss connection leak
Description:
Previously, we consumed connections in the JBoss
connection pool every time we got the children of a many-one relationship.
This turns out to be an adverse interaction with JBoss. Our work-around is to
close the connection (used for the select) before doing a find of entity
beans.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1024
Summary: Allow Caché' host and port to be configurable in EJB
configuration
Description:
We introduced new projection parameters CACHEHOST and
CACHEPORT which allow the host and port of the EJB projection to be
configured. The host and port are used by the JDBC driver configuration to
connect to Caché. Host is a standard host name: it can be a DNS name like
foobar.mydomain.com or it can be a dotted decimal name like 192.168.1.105. The
default is host of 127.0.0.1 and port of 1972.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1025
Summary: Fix calculation of supers in Java binding
Description:
We have fixed the calculation of superclass names so that
it functions correctly.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1028
Summary: Make generation of special method exists(db,oid) depend on
persistency of super not persistency of class
Description:
We generate a special methods exists(db,oid) when a class
is persistent. However, a class can be persistent either because its super is
persistent or because classes to the right of left-most super are persistent.
In latter case, this special method won't compile because it invokes methods
on the persistent class which the class does not extend. We changed this to
look at left-most superclass. The only special method affected in this case is
exists(db,oid)
public static boolean exists (Database db, Oid oid)
throws CachéException {
This does not affect any existing customer code. Customers who had
generated code that had this happen and met these special conditions would be
generating Java code that does not compile. So this change does not affect any
Java code that currently compiles.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1030
Summary: When invalid SERVERTYPE display invalid server message
Description:
In EJBFlags.Validate, if the SERVERTYPE value is invalid,
an invalid server message is generated.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1032
Summary: Get accessors are not const when they are overridden
Description:
When a get method is overridden, the C++ generator
generates code that does not compile because the methods called are not const
and cannot be called from const method.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1034
Summary: Don't allow CMP generation unless primary key
Description:
If there are no primary keys on a class, quit with an
error when doing CMP generation.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1042
Summary: Fix potential problem in constraint names in EJB binding
Description:
We named the finder findBy<CONSTRAINT_NAME> but
Constraint_Name is the SQL name and can contain non-Java acceptable
characters. We now use Constraint_Object_Name which is Java compatible.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1043
Summary: Remove <distributable> from web.xml and make test servlet
work with JBoss and Jetty
Description:
We used to generate the <DISTRIBUTABLE> element.
<DISTRIBUTABLE></DISTRIBUTABLE>
The distributable element, by its presence in a web application
deployment descriptor, indicates that this web application is programmed
appropriately to be deployed into a distributed servlet container. We removed
this since it causes problems with JBoss and Jetty. The book Professional Java
Server Programming J2EE Edition by Wrox Press has a discussions on pages 406
and 472 of "Distributable Applications" regarding the requirements of writing
a distributable application. The requirement is that all attributes we set in
HttpSession are serializable. In the case of our generated Sample servlet, all
session attributes are strings, in fact a single string containing the id.
Strings are serializable so we meet the requirement to be distributable. Even
though we are distributable we take out the generation of this attribute and
the customer can add it to web.xml.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1044
Summary: Remove debug statements from EJB Wizard
Description:
This changes removes debugging code that was
inadvertently left in the released version.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1045
Summary: Close quick statement in EJB callbacks
Description:
QuickStatement uses resources on the server side that
must be released. The JDBC driver frees these resources when close is called.
The EJB Wizard now generates code that calls close in the EJB callbacks when
they are through using QuickStatement.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1054
Summary: Let the App Server control concurrency
Description:
We introduce a new projection parameter
APPSERVERCONTROLSCONCURRENCY. The default is zero. When it is set to 1 the App
Server controls concurrency and QuickLoads act like SELECTS and QuickStores
acts like UPDATES. When it is off (0 the default) QuickLoad acts like a
"SELECT FOR UPDATE." If one wants the JDBC isolation levels to be honored one
must set APPSERVERCONTROLSCONCURRENCY to 1. Otherwise, ejbLoad does a
QuickLoad which acts like a "SELECT FOR UPDATE" and does row level locking.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1055
Summary: Added Support in the CLASSPATH Variable for JBoss 3.0.6
Description:
Previously, compiling with JBoss failed, due to a new
version of that product having moved a .jar file. The CLASSPATH variable now
accounts for this change.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1056
Summary: Add TransactionIsolation parameter to EJB projection
Description:
This change allows an answer to the question: should the
App Server or Database control concurrency? 0 - an ejbLoad acts like a SELECT
FOR UPDATE and Database controls concurrency 1 - an ejbLoad acts like a SELECT
and App Server Controls concurrency and you use TRANSACTIONCONTROL parameter
to set isolation level
Parameter APPSERVERCONTROLSCONCURRENCY = 0;
Transaction isolationlevel TRANSACTION_READ_COMMITTED (default) or
TRANSACTION_READ_UNCOMMITTED (dirty read) or TRANSACTION_NONE
Parameter TRANSACTIONISOLATION = "TRANSACTION_READ_COMMITTED";
Transaction isolation is still a meaningful parameter when
APPSERVERCONTROLSCONCURRENCY is 0 and it interacts in some ways with ejbLoad
acting like a SELECT FOR UPDATE. IMPORTANT NOTE: This parameter is not
supported in Pramati.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL1057
Summary: Removed TRANSACTION_NONE from Supported Transaction Types
Description:
Previously, we used TRANSACTIONCONTROL when it meant
TRANSACTIONISOLATION in projection parameter documentation for
APPSERVERCONTROLSCONCURRENCY. Also, TRANSACTION_NONE is not a valid value for
our JDBC driver transaction isolation.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1060
Summary: Addressed Various Issues with the Java Projection
Description:
We now use REFERENCE which might be SQLUser.Osoba instead
of REFERENCE_CLASS which is User.Osoba.
We now project a class name
rather than a table name.
We now load children of one-many or one-one
relationships does not compile.
Qs is now closed before loading related
data to get around JBoss bug.
An error message generated from bad
transaction isolation has been eliminated.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java, EJB
Platforms: All
DevKey: JSL1062
Summary: Guard EJB projection against invalid parameters
Description:
When projections are defined on top of EJB projections
using inheritance they can work incorrectly. The problem happens when a
projection and a class that uses the projection is in the same project. The
parameters array passed to the projection ends up having bad values.
This
change guards against that.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL1064
Summary: Improve error message when Class in ClassList is not
persistent
Description:
An ambiguous error is reported when an EJB projection
with a relationship is generated:
ERROR #6609: ClassList must contain only Persistent classes
This has been corrected by improving the Caché ObjectScript compiler to
handle this situation properly.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL962
Summary: Project stored procedure methods in Language bindings
Description:
When a method is marked as a sqlproc we now project it.
We used to exclude its projection.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL969
Summary: Fix Java binding file names
Description:
For package names that began with % the wrong file name
would be generated unless the class name was of the form %Library.ClassName.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL970
Summary: Process Output parameters properly
Description:
If a parameter was marked as output it was not processed
properly. For instance, Output Arg As %String Or *arg:%String &arg is
processed properly.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL985
Summary: getConnection needs to be protected not private
Description:
Having getConnection be protected not private allows the
entity bean we generate to be extended to provide things like finder methods.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL986
Summary: Allow datasource to be looked up from environment
Description:
Currently we directly point at JNDI name of datasource.
With this change we go through environment for datasource which allows
application programmer to employ indirection. If The Namespace name is <NS> the
entity bean will use java:/comp/env/<NS>Database for the JNDI lookup of
datasource.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL989
Summary: Support generating of extensions that are used for things like
finders
Description:
To support programming finders and other extensions to
our generated EJB interface, this change form introduces the notion of
extensions. The basic idea is the following approach to adding a finder.
- Extend the generated bean implementation. ejb-jar.xml will point to this
extension as the bean implementation. The extension will have the
implementation of the finder.
- Have the home interface extend an interface that contains the finder.
Since an interface can extend multiple interfaces, this allows the home
interface of the bean to have the finder prototype and announce to EJB that
the finder is defined.
In this DevChange we augment the EJB Wizard
to allow it to automatically generate support for such extensions. We
introduce a new class parameter:
When this is set we change the generated code in the following way: In
the discussion, let's say the name of the persistent class from which the
entity bean is being generated is Package.Class. Let's say the EXTENSIONPREFIX
is Ext.
- In ejb-jar.xml, the <EJB-CLASS> is pointed to the extension. The name of
the extension is Package.EJBExt_Class_Bean. For example, for Sample.Person
the name of the normally generated bean implementation is
Sample.EJBPerson_Bean and the name of the extension (to which ejb-class
refers) is Sample.EJBExt_Person_Bean.
Into this extension one can put
one's finder
- The generated remote, local, home, and local_home interfaces all extend
- Package.EJBExt_Class, and
- Package.EJBExt_Class_Home respectively
Into these
extensions one can put the prototype for one's finder. We also automatically
generate "stubs" for these extensions if one sets the following class
parameter
In this case we automatically generate stubs for
Package.EJBExt_Class_Bean.java, Package.EJBExt_Class.java and
PackageExt_Class_Home.java. In development, one would first turn EXTENSIONGEN
on and then turn it off once one has stubs to use. Here is an example of
defining these parameters in a class.
Class ISC.Regression Extends %Persistent [ ClassType = persistent ]
{
Parameter EXTENSIONPREFIX = "Ext";
Parameter EXTENSIONGENON=1;
etc.,
}
Here is an example of the generated home interface:
public interface EJBRegression_Home extends javax.ejb.EJBHome,ISC.EJBExt_Regression_Home
With EXTENSIONGENON set to a non-zero value, we generate a stub for the
ISC.EJBExt_Regression_Home interface. After this stub is generated one can
place one's finder there and then turn off EXTENSIONGENON. Now one can
regenerate EJB code and one's extension will still be there and be operative,
so one's finder can accessed by EJB even after code regeneration.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Java
Platforms: All
DevKey: JSL992
Summary: Call methods in property accessors when overridden set or
get
Description:
If the programmer/user overrides the set or get method of
a property that is a collection, serial or reference we do NOT generate the
correct code for Java or C++. At this point we can't because the class
compiler has ambiguous information about the situation. The problem is that
the class compiler generates a special stub method for such setters. The
generator sees the stub but that is the wrong stub to project to Java;
projecting that stub leads to nonsense. With this change we support in 5.1 and
5.0.1, the projection of the overridden get/set methods for datatypes. This
does not work for non-datatypes such as reference, serial or collection.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL994
Summary: Fix JSL992 handling of calculated properties in the C++
binding
Description:
Calculated properties don't go through generated user
method in the C++ binding, C++ has special processing for them. In the Java
binding, they do go through generated user method.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL995
Summary: Check if property exists before checking if calculated
Description:
We noticed a situation in which getClassMethods failed.
The problem was that in certain circumstances it returned a <SUBSCRIPT> error
because we checked to see if a property is calculated when the property did
not exist. This happens because in C++ we don't generate a method if it is
method that corresponds to calculated Get. We now guard against several cases:
1) don't run check if method name is less than 4 characters 2) don't run check
unless method is of form XXXGet 3) don't run check if inferred property name
XXX is name of non-existent property
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: JSL996
Summary: Guard against null DefaultArgs
Description:
getClassMethods will fail if DefaultArgs is null. Here is
an example of the error:
USER>s res=##class(%CPPStoredProc).getClassMethods(1,"ISC.Override")
. . s DefaultArg=$LI(DefaultArgs,i)
^
<NULL VALUE>zgetClassMethods2+42^%ooLibrary.CPPStoredProc.1
U
Previously, the C++ binding would simply fail with "method not found"
errors.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: All
DevKey: LFT1073
Summary: $ZU(158) function call failing on Caché 5 Unicode
Description:
On Unicode systems enumerating Windows printers would
show only the first letter of the name. This is now fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: System
Platforms: All
DevKey: LFT1076
Summary: Corrected JOBEXAM / Control Panel TCP read data corruption
Description:
JOBEXAM (or %SS or Control Panel process view) could
corrupt local variables of processes doing a TCP read. This is fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
Yes |
No |
Category: CSP
Platforms: UNIX, OpenVMS
DevKey: LRS648
Summary: Fix/enhance UNIX and OpenVMS file renaming using $zu(140,6)
Description:
Copying or renaming files in the operating system, using
%Library.File.CopyFile for example, now works correctly.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: NLS
Platforms: All
DevKey: LRS649
Summary: Fix a NLS data calculations
Description:
On systems with very large buffer pools, certain offsets
were not computed correctly in the NLS utilities.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Installation
Platforms: All
DevKey: LRS657
Summary: Fix installation recompile hang
Description:
During install, recompilation of routines in a database
containing no routines may hang.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: System
Platforms: OpenVMS
DevKey: LRS666
Summary: Fix Callin/Callout interfaces for 32-bit pointers on OpenVMS
Description:
Ensure callin-callout on VMS conforms to 32 bit calling
standards, even though internally Caché on VMS now uses 64 bit addressing.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
Yes |
Category: System.I/O
Platforms: All
DevKey: LRS669
Summary: Fix timeout bug in LAT device open (ttyopenlat)
Description:
This fixes a problem where an oOpen of reverse |LAT| does
not time out when lat.exe is not running.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Object.Java
Platforms: All
DevKey: MAB112
Summary: Support for projection of queries in generated Java classes
Description:
Added a constructor to com.intersys.objects.CachéQuery
class, which is intended to be used from generated classes.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB118
Summary: Added SQLProcContext class to Java Binding client
Description:
Added SQLProcContext class to Java Binding client, so sql
stored procedures which use it can be projected.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: SQL.JDBC
Platforms: All
DevKey: MAB119
Summary: The same SQL normalization for JDBC and ODBC preparser
Description:
Changed JDBC preparser to use the same normalization as
ODBC preparser.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: MAB120
Summary: Conversion of pseudo-ASCII bytes in setAsciiStream according to
default locale
Description:
If bytes higher than 127 are encountered in the stream
used in setAsciiStream, they are converted to characters using default locale
and to UTF-8 after that.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB124
Summary: Enhancement for building Java client Documentation
Description:
Removed non-public methods from JavaDoc documentation;
added window title to all JavaDoc windows; and added Document Header to
Overview.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: MAB126
Summary: Correct transformation from LONGVARCHAR with getString()
Description:
CachéResultSet and CachéCallableStatement incorrectly
transformed LONGVARCHAR columns when used with getString if the value was
undefined in the default locale. This should be now fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB134
Summary: Fixed bug with Iterator.remove() in Caché Array
Description:
Fixed bug that Iterator.remove() method for Caché Arrays
removed the next element instead of current.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
Yes |
No |
Category: Object.Java
Platforms: All
DevKey: MAB135
Summary: Added ability to initialize Java Binding using wrapper connection
from App Server
Description:
Before this change java.sql.Connection object passed
com.intersys.objects.CachéDatabase.getDatabase(Connection) method had to be
instance of com.intersys.jdbc.CachéConnection. Now it can be a wrapper object
obtained from an Application Server, provided it wraps
com.intersys.jdbc.CachéConnection.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB142
Summary: Improvements in LightDatabase
Description:
We fixed a few issues with LightDatabase:
- Now collections of serial objects should work read/write regardless of
their storage.
- If an object to be opened has a different class than the one that called
open we instantiate a Java object of the right class.
Also fixed a
bug with setting null as a collection property. Backported Stream generation
in quick to 5.0.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB143
Summary: Fix for empty array not listening to server updates
Description:
There was a bug that an empty array did not listen to
server updates. For example adding an element to an empty array on server side
was not reflected on the client. This change fixes the issue.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: MAB145
Summary: Fixed counting characters/bytes when using getUnicodeStream from
JDBC
Description:
This includes changes to
jdbc.CachéInputStream/CachéReader to repeat fetch until either end of stream is reached
or requested number of units is received. It also fixed counting characters/bytes when
using getUnicodeStream.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB146
Summary: %TimeStamp with milliseconds throws Exception
Description:
If a java class with a %TIMESTAMP property is generated
with Projection, and it uses the method getPropertyName to get the value of
the field, this works only if no milliseconds are saved in Caché. If the
Property has milliseconds the exception java.lang.numberFormatException: For
input string: "1.0000000" occurs.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: SQL.JDBC
Platforms: All
DevKey: MAB151
Summary: PreparedStatement.setAsciiStream() does not convert chars to
Unicode
Description:
In case when Caché server is 8-bit and it's encoding does
not match client encoding and client attempts to send a character, that is not
supported by server encoding, the exception is raised now. Previously client
would hang.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB160
Summary: constructClone failing
Description:
%ConstructClone is now instance method, not a class
method, and has been deprecated. The new instance method is called
constructClone() without underscore.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB161
Summary: Incorrect Java binding for Lists containing Japanese
characters
Description:
In the Java binding, when a string property of List type
includes Japanese characters, the value is sent erroneously to Java client.
The Japanese characters are being translated incorrectly. This has been fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
Yes |
No |
Category: Object.Java
Platforms: All
DevKey: MAB162
Summary: Java ArrayOfDataTypes etc iterator.remove()
Description:
There was an error deleting the last element of Array
using method Iterator.remove(). The issue is fixed now.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Java
Platforms: All
DevKey: MAB163
Summary: Saving Non-ASCII Characters Using Light Java Binding
Description:
An error that caused losing Unicode information when
saving non-ASCII strings using Light java Binding is now fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production |
This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Library
Platforms: All
DevKey: MAK600
Summary: %Net.HttpRequest object now reads in correct charset
Description:
The %Net.HttpRequest class when reading from the web
server would read in as much data as it could in one go. This meant that if
the headers told it to switch charset to say iso-8859-1 then it had already
read on most of the body of the message in utf-8 (as this is the charset is
reads the headers in) and so even though it switched charset tables this did
not effect data already read into the buffer. Now it reads the headers line by
line and switches charset when it gets to the body of the message so it will
use the proper charset. In addition we have added a ReadRawMode property to
the HttpRequest object which if true will force the read of the body of the
response in RAW or untranslated mode rather than using the charset specified
in the headers. There is also a property ResponseStream which if set to a
stream object will use this stream to store the body of the response rather
than constructing a stream itself. This can be used to make the HttpRequest
enter the response into a file stream rather than a global stream for example.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: MAK615
Summary: Find in Files does not find items in CSR files
Description:
Searching for *.csr in the FindInFiles item in Studio was
not finding any hits because it failed to open the CSR files to look for
possible matches. It now does.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Library
Platforms: All
DevKey: MAK618
Summary: %Net.HttpRequest object not encoding form data in correct
charset
Description:
Form data inserted into the %Net.HttpRequest it URL
encoded when it is sent to the server. However if the page it is posted to is
encoded in say utf-8 then once it has URL decoded these values it also
converts it from utf-8 into the internal format. The %Net.HttpRequest class
was not encoding the value in the correct charset before URL encoding the data
and so posting non ASCII characters did not work correctly. This is fixed now.
Also issuing a Get/Post/Head would had the side effect of changing the charset
of the current device to RAW mode. It now leaves the charset of the current
device unchanged.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Utilities
Platforms: All
DevKey: MAK620
Summary: MSM-Activate did not work against Unicode Caché server
Description:
MSM-Activate did not allow Unicode data to be passed to a
Unicode Caché server. It worked fine with 8bit data, but although this was
supported by the Unicode MSM server this code was never ported to the Caché
MSM-Activate server code. Now it correctly utf-8 encodes the data being sent
as it does against a Unicode MSM server.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Medium |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: MAK625
Summary: Importing a CSP page fails
Description:
If you ask to load a CSP page from a file the load
functions in Caché now handle this case properly. Before loading a CSP page
from a file was never supported and only loading a CSP page from another local
URL was allowed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK626
Summary: Support object generators for datatype methods
Description:
Methods of a class can be object generators which is an
object oriented way to create the method code on the fly. However you could
not write a datatype method as an object generator method because this was not
implemented, it is now fully supported.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Studio
Platforms: All
DevKey: MAK627
Summary: Fix problem sorting classes by size in Studio
Description:
Sorting classes by size in Studio reported an UNDEFINED
error at zgetClassList+45^%ooLibrary.RoutineMgr.1
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: Studio
Platforms: All
DevKey: MAK630
Summary: Unselected classes deleted in open dialog
Description:
If in Studio you right click on a package and select
Delete and there was a class with the same name as the package then this class
would be deleted as well as the classes inside the package. This was caused by
GetPackageList returning this class in addition to the classes inside the
package. This class is not inside this package and so is returned in error.
Now the GetPackageList does not return this class which fixes the Delete
package problem.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: CSP.Samples
Platforms: HP
DevKey: MAK631
Summary: ClassLogo.jpg not shown in StreamServe.csp on HP
Description:
The encryption function in CSP could return a value with
a space in which it should not do. This prevented the decryption from working
which is the reason the stream server example page does not work on this
platform. This is fixed.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: CSP
Platforms: All
DevKey: MAK637
Summary: When importing CSP files if no /csp/namespace pick first app that
is defined in this namespace
Description:
When importing CSP files if the application does not
match because it came from another namespace but there was a '/csp/namespace'
application defined for the current namespace it was imported there. This is
now extended so even if there is no '/csp/namespace' it will pick the first
alphabetically collating application that maps to this namespace.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: CSP
Platforms: All
DevKey: MAK638
Summary: Prevent SUBSCRIPT errors in CSPNormalizeURL^%cspServer
Description:
The function that normalizes a URL did not take into
account that the string it is normalizing could be very large and so when it
attempts to create a cache of these values by setting this URL into a
subscript of a global it may get a SUBSCIPRT error because the string is too
big. To avoid this we altered the cache so it is only set and checked if the
string is small enough.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: CSP
Platforms: All
DevKey: MAK643
Summary: OnTimeout trigger is not called for state-aware sessions
Description:
When a Preserve=1 session times out in CSP the session
event class OnTimeout method was not being called. It was only called for
Preserve=0 sessions, this fix makes it behave consistently for both Preserve=0
and Preserve=1 sessions. Note that the OnEndSession method was being called
correctly in both cases.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
No |
Category: CSP
Platforms: All
DevKey: MAK645
Summary: ..Link() not working as designed
Description:
When you include another page with the <CSP:INCLUDE> tag
or the ..Include method the %request.URL and %request.PageName in the included
page were set to the name of the included page. However they should be kept at
the name of the calling page otherwise ..Link calls will not work because they
will not pick up the correct page name. Also by keeping the %request.URL the
calling page the include page can find out who is calling it.
Likelihood of happening |
Risk this change introduces new
problems |
Distributed in ad hoc release and
installed in production
| This change is an enhancement |
| Low |
Low |
No |
Yes |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK646
Summary: Invalid code generated if last line of procedure block method is
a #define
Description:
If you define a method in Studio:
method Test()
{
#define A 1
}
When this is compiled it was generating the code:
And it never closed this procedure block.
This is because the macro processor did not detect the end of the procedure block on the line that was passed to it, '#define A 1 }' and it swallowed the entire line.
Now we put the '}' on a separate line in this case to avoid this problem.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Studio
Platforms: All
DevKey: MAK647
Summary: Studio imported class when told not to
Description:
The Load function has a flag that tells it to just find a list of the items in the file but not load anything. However if you loaded a class from an XML file and passed this flag it would still alter the sequence numbers stored in the class definition, this is now fixed.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.Class Compiler
Platforms: All
DevKey: MAK648
Summary: Do not add transient streams to save set in a deep save
Description:
If you have a persistent object which has a property that is transient and points to another persistent object and you start a deep save on the main object then even though the property is marked as transient and so it is not saved as part of the main objects saved data it still adds the related object to the save set. This can cause the related object to serialize itself to disk which may be unexpected.
This is particularly an issue when the property is a stream as the stream should be treated like a literal value and so if a stream property is marked as transient then the stream object should not be added to the save set. Caché now does this so transient streams are not added to the save set in a deep save.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Studio
Platforms: All
DevKey: MAK651
Summary: SourceControl: Trigger OnAfterSave not fired sometimes
Description:
The detection of when a class was modified was not correct in the backup logic. This prevented the OnAfterSave method from being fired when the name of an element was changed such as the name of a method. If the method body was changed then it was fired correctly. Now we always fire the OnAfterSave method when saving a class from Studio.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.Class Compiler
Platforms: OpenVMS
DevKey: MAK660
Summary: Problem with XML schema validation on class import on OpenVMS
Description:
You could not import a XML version of a class on OpenVMS and validate it against the schema because the directory to the schema was not calculated correctly on this platform. This is fixed.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Studio
Platforms: All
DevKey: MAK662
Summary: Studio becomes confused by 3rd line of INT
Description:
Make detections of an INT routine that is generated by a class compile smarter to prevent a case where it thought an INT was created by a class when it was not and it attempted to recreate the class descriptor which lead to an error message that was not valid.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Studio
Platforms: All
DevKey: MAK666
Summary: Exporting a class behaves differently when done remote vs local
Description:
Exporting a class as a CDL file on the remote machine also exports related classes but exporting it on the local machine does not. Now both only export the class you ask for.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: CSP.Net
Platforms: All
DevKey: MAK672
Summary: Function errors using %Net.HttpRequest in a job process
Description:
If you jobbed off a process so the current device was the null device and then it issues an %Net.HttpRequest, it would fail with a FUNCTION error because it is attempting to obtain the translation mode on the current device. But this is the null device.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Studio
Platforms: All
DevKey: MAK676
Summary: In the example source control class allow people to create new items
Description:
The example source control class was not allowing people to create a new routine/class as it claimed they were locked. This is fixed.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Studio
Platforms: OpenVMS
DevKey: MAK692
Summary: Get Error #5019 when deleting CSP page
Description:
The ##class(%File).Delete(filename) command would not work on OpenVMS unless you specified a version to delete. This now adds ';*' to delete all versions if there is no version explicitly defined in the filename.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object
Platforms: All
DevKey: MC347
Summary: Deal with network directory name correctly in %File:CreateDirectoryChain()
Description:
%File:CreateDirectoryChain("\\mymachine\dir1\dir2\")
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: SQL.GateWay
Platforms: All
DevKey: MIT218
Summary: Fix parameter setting
Description:
In some cases there was memory corruption because parameter length was interpreted as negative (signed/unsigned discrepancy). This is now fixed.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: SQL.GateWay
Platforms: All
DevKey: MIT229
Summary: Select count not working
Description:
The problem was that count ( * ) was for some reason unsupported in MySQL. It was changed to count(*).
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: SQL.GateWay
Platforms: All
DevKey: MIT231
Summary: Do not close cursor if an error occurred
Description:
The cursor for external queries (SQL gateway) does not get closed if a fetch returns non-zero in SQLCODE.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: SQL.GateWay
Platforms: All
DevKey: MIT234
Summary: Selecting on generated Caché ID field fails when it is a complex key in SQL Server
Description:
When we issue a select statement that contains the generated Caché ID field,
the ID field is just replaced by the primary key. In the case of a simple primary key, this is just simple replacement, however in the case of a complex key, this is expressed as a concatenation of the properties that make up the primary key. This is done by using the SQL concatenation operator (||).
So, in the case of a LOOKUP table, when you issue a statement:
in Caché, we must translate that to:
Select LK_TYPE||LK_Code from Lookup
to be sent to the MS Access database via ODBC.
The problem is that MSAcess does not support the standard SQL concatenation
operator. If you were to try the statement in MS Access (i tried this) you would get an error detailed by an unsupported use of '||'. The way to work-around this while still maintaining a standard call is to utilize the SQL concat function.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: SQL.GateWay
Platforms: All
DevKey: MIT236
Summary: "Undefined list element " error when linking a table
Description:
When testing Link table with Oracle and MySQL tables that have no schemas, you can not link those tables. You can see a list of tables in the Table window, but moving to the next window, Properties, results in an
Undefined list element
error.
Link table now works again with tables with empty schemas.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.XML
Platforms: All
DevKey: MXT373
Summary: Add limited XMLImport method for %XML.DataSet
Description:
Implement XMLImport method of %XML.DataSet. Support for this is still limited, however. See the XMLImport method description for usage and example.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT376
Summary: Support RuntimeMode property of %XML.DataSet
Description:
%XML.DataSet support the RuntimeMode property that is inherited from
%ResultSet.
The default is 1 for ODBC. RuntimeMode = 0 is LOGICAL mode and = 2 is DISPLAY.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT378
Summary: Initial fix for non-ASCII characters in SOAP response
Description:
Fix Xerces parser error when SOAP response contains non-ASCII characters.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Medium | No | Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT379
Summary: Fix parseFormal^%occName not initializing return argument
Description:
Need to initialize each node of return argument from parseFormal. Otherwise, byref flag may be reused from previous argument.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.Soap
Platforms: All
DevKey: MXT381
Summary: Resolve short class names in web method arguments
Description:
This fixes a bug where class names without packages in web method argument lists caused compile errors for Web Service or Web Client. We now generate the needed import statements in the method classes.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.Soap
Platforms: All
DevKey: MXT383
Summary: Improve SOAP client response validation
Description:
Improve SOAP web client validation of response message:
- As specified by SOAP 1.1 specification section 1.1, ignore element
name of response element.
- Always assume that the first element within the response is the
return value and do not check it's element name.
- Allow override of the expected response namespace using the
SoapNameSpace method keyword.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT384
Summary: Show use of base class for error handling in SOAP.Demo sample
Description:
Add SOAP.BaseService class to do error handling for SOAP.Demo.
Error handling is done using new OnInternalError callback for SOAP web services that allows application to modify the fault created for Caché trapped errors. The error may not be ignored, only the contents of SOAP fault may be modified.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.XML
Platforms: All
DevKey: MXT385
Summary: Optionally enforce ordering of properties on XML import
Description:
If the XMLSEQUENCE class parameter = 1, then the order of the XML elements must match the order of the class properties. This allows us to deal with XML where the same field appears multiple times and is distinguished by the order. The default is XMLSEQUENCE = 0.
If XMLSEQUENCE = 1, then the XMLIGNOREINVALIDTAG parameter is ignored and all tags must be represented as properties.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT386
Summary: Allow skipping of element tags on import and export
Description:
We introduced new a new value, XMLIO="SKIP", which will ignore the XML element on import and skip outputting the element on export. This allows an easy way to setup a class that is a subset of an XML Schema.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT388
Summary: Map class inheritance to XML using schema choice group
Description:
The XML choice schema tag is used to allow the interchangeable use any of a group of related elements. All elements in the group must have a type which is an extension or restriction of the base type. The XML schema choice group will map to a group of Caché classes which must all be subclasses of the property type. This subclass restriction is not needed for the XML schema and is not enforced, but is needed for the Caché property to work properly in most situations.
To indicate that a Caché class reference property may reference a choice of one a a group of classes, use the property parameter XMLPROJECTION=CHOICE. The type specified for the property is the base class and the classes referenced may be the base class and all or a subset of its subclasses.
The classes in the group may be explicitly specified in the XMLCHOICELIST property parameter as a comma separated list of classes. If XMLCHOICELIST is not specified, the subclasses of the property type that are included in the group are controlled by the XMLINCLUDEINGROUP class parameter. If XMLINCLUDEINGROUP=1, then the subclass is included. The default value set in %XML.Adaptor is 1, but may be overridden to 0 to exclude classes from the group. The default will result in all subclasses of the base class being in the group. Abstract classes will not be made part of the choice group, thus allowing the use of an abstract base class to be the head class for a choice group of subclasses.
Three additional values of XMLPROJECTION are supported for choice
groups:
- ELEMENT-CHOICE is equivalent to ELEMENT with CHOICE.
- WRAPPED-CHOICE is equivalent to WRAPPED with CHOICE.
- CHOICE is equivalent to the default, ELEMENT for single references and COLLECTION for collections.
Since the reference value may refer to one of a collection of classes, the type must be specified in the XML. If format="literal" (the default), the element name will be the xsdtype of the referenced class. If the format="encoded", then the element name must specify the property. Therefore the xsi:type attribute is used to specify the type.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT389
Summary: Generate correct schema for Caché array for choice group
Description:
Fix up pair types used for Caché arrays in schema to correctly handle choice groups. This allows SOAP support with SoapBodyUse="literal" for choice groups.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: CSP
Platforms: All
DevKey: MXT391
Summary: Anchors don't work on #url()
Description:
The problem was that the anchor was not being correctly separated from the URL. This applied to any use of #anchor in CSP URL, not just #url()#.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: Object.XML
Platforms: All
DevKey: MXT395
Summary: Add new support for hexBinary schema type
Description:
Add to the support for binary XML schema types:
- %Binary is existing datatype that maps to base64Binary schema type
- %xsd.base64Binary also maps to base64Binary schema type
- %xsd.hexBinary maps to hexBinary schema type
- ENCODING property parameter is added to the %Stream datatype.
Encoding only applies to binary streams with values ENCODING="base64" (for base64Binary schema type) and ENCODING="hex" (for hexBinary schema type).
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT396
Summary: Create %xsd package for Caché datatypes that map to XML schema types
Description:
Add XML schema types that map naturally to Caché types to %xsd package. See %xsd package for details.
Datatypes added: %xsd.string, %xsd.date, %xsd.time, %xsd.dateTime,
%xsd.boolean, %xsd.double, %xsd.decimal, %xsd.integer and types that correspond to type inheriting from schema integer type.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT403
Summary: Handle OUT parameters in SOAP web client
Description:
Some web services have output-only parameters for some web methods.
This situation was not previously handled correctly. This bug fix
correctly does not expect the value of the OUT parameter in the
request and returns the value of the OUT parameter in the response.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.Soap
Platforms: All
DevKey: MXT404
Summary: SOAP web client gives error if return value not expected
Description:
The SOAP web client now supports web client method corresponding to a
web server method with no return value.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.XML
Platforms: All
DevKey: MXT409
Summary: XML representation of persistent objects using object id
Description:
XMLREFERENCE=ID will project a reference to a persistent object as it's ID rather than as the object itself. XMLREFERENCE=OID will project a reference to a persistent object as it's OID rather than as the object itself. The OID contains the classname as well as the ID.
This feature is not at all equivalent to the XML use of IDREF and is meant to support export of an object using SOAP without it's referenced objects in a way that allows the later loading of the referenced objects.
XMLREFERENCE-"ID" or "OID" work with XMLPROJECTION = "attribute", "element", "wrapped" or not specified.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT412
Summary: XMLImport loses attributes in case of id="" for tag
Description:
When reading XML data using %XML.Reader with literal format (the
default), an id attribute of the form <TAG id=""> caused all
attributes of a tag to be skipped. This bug is now fixed and the ""
value of the id attribute is imported correctly along with other
attributes.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: CSP.Net
Platforms: All
DevKey: MXT413
Summary: Backport SMTP Authentication to 5.0.1
Description:
SMTP authentication with the SMTP server (as defined by RFC 2554), is now supported using the LOGIN, PLAIN and CRAM-MD5 authentication mechanisms. Additional authentication mechanisms will be added as needed.
In order to use SMTP authentication, instantiate a %Net.Authemticator object, set UserName and Password properties of the authenticator and assign it to this property.
In addition an authorized sender may be specified for an authenticated message. The AuthFrom specifies the address to be used for the AUTH parameter of the MAIL FROM SMTP command for SMTP authenticated session. If specified, this property will be the argument of the AUTH= extension to the MAIL FROM command. This property may be specified as "<>" to indicate that the original submitter of the message is not known.
An example of the use of authenticator follows.
#include %occOptions
#include %occStatus
authtestmailsend ;
; Replace information marked with [[ ]]
new auth,m,s,status
set s=##class(%Net.SMTP).%New()
; use default authentication list
set auth=##class(%Net.Authenticator).%New()
set auth.UserName=[["myUser"]]
set auth.Password=[["myPassword"]]
set s.authenticator=auth
; Optional AUTH parameter to MAIL FROM.
set s.AuthFrom=[["AuthUser"]]
set s.smtpserver=[["SMTP server name"]]
set s.timezone=[["-0400"]] may remove this line to get Universal Time
set m=##class(%Net.MailMessage).%New()
set m.From=[["test@company.com"]]
do m.To.Insert([["receiver@another.com"]])
do m.To.Insert([["Joe Smith <JSMITH@ANOTHER.COM>"]])
set m.Subject="Sent by Caché mail"
set m.Charset="iso-8859-1"
do m.TextData.Write(
"This message has been sent using an SMTP server with Authentication.")
set status=s.Send(m)
if $$$ISERR(status) do $system.OBJ.DisplayError(status)
quit
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT415
Summary: %XML.Adaptor error handling improvements
Description:
Use $ztrap to trap XMLExport Caché errors and return the error as a %Status.
Report data type validation errors correctly for attributes in XMLImport.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: Object.XML
Platforms: All
DevKey: MXT416
Summary: Allow runtime specification of %XML.Adaptor parameter XMLIGNORENULL
Description:
Add new value RUNTIME for class parameter XMLIGNORENULL.
When XMLIGNORENULL = 1, then both missing tags (NULL) and empty tag (<TAG /> are stored in Caché %String property as "" and both $c(0) and "" are exported as empty tag (<TAG />).
In the default case of XMLIGNORENULL = 0, make character streams work like %String. no tag becomes zero length stream and empty tag becomes $c(0).
If XMLIGNORENULL = "runtime" (runtime is not case sensitive), then the behavior of XMLIGNORENULL is determined by the format parameter of XMLExport and the IgnoreNull property of %XML.Reader. The default behavior for XMLIGNORENULL="runtime is the same as XMLIGNORENULL=0. Adding "ignorenull" to the format argument changes the behavior to that of XMLIGNORENULL=1. "ignorenull" should be separated by a comma from literal/encoded part of the format. Valid values for format are "", ",ignorenull", "literal", "literal,ignorenull", "encoded" and
"encoded,ignorenull".
In addition the XMLIGNORENULL parameter is supported for web services. XMLIGNORENULL may not be specified as runtime for web services.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT417
Summary: Ignore IsValidDT whose value is always 1 for XMLImport
Description:
If IsValidDT returns a value of 1, then ignore the IsValidDT method.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT418
Summary: <NOTOPEN> second call to XMLExportToStream with same stream
Description:
XMLExportToStream should leave stream open after writing XML to stream to allow additional XML to be appended.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.Soap
Platforms: All
DevKey: MXT419
Summary: Improve SOAP interoperability with XMLSPY SOAP request
Description:
Add required
<S:IMPORT namespace="http://www.w3.org/2001/XMLSchema" />
to WSDL files with methods that return a %XML.DataSet.
Support XMLSPY SOAP request format that uses <PARAMETERS> element as containing element instead of <METHODNAME> element.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.Soap
Platforms: All
DevKey: MXT420
Summary: Reorganize the XMLPROJECTION parameter
Description:
We overloaded the XMLPROJECTION parameter with too many complex options. XMLPROJECTION is now broken into 3 property parameters:
XMLPROJECTION = "element", "wrapped", "content", "attribute" or "collection". "collection" is a deprecated synonym for "wrapped"
XMLTYPECONSTRAINT = "choice", "substitutionGroup" or "explicit". XMLTYPECONSTRAINT may be specified only for properties whose type is an object reference. "explicit is the default and means only the specified type is allowed. "choice" and "substitutionGreoup" are as defined in DevChanges MXT377 and MXT388.
XMLREFERENCE = "id" or "oid". XMLREFERENCE may be specified only for properties whose type is an object reference. "id" and "oid" are as specified in Devchange MXT409. If XMLREFERENCE is not specified the referenced object is mapped to the entire object.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Medium | Yes | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT421
Summary: Order inherited properties to match XML schema extension ordering
Description:
Order projection of class properties to XML so that the properties of the current class are last following the properties inherited from the super class. This ordering corresponds to the ordering of XML elements for types derived by extension in the XML schema.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.XML
Platforms: All
DevKey: MXT422
Summary: In XML projection, support summary representation of referenced classes
Description:
Add new XMLREFERENCE values "complete" and "summary". XMLREFERENCE may be specified only for properties whose type is an object reference. XMLREFERENCE = "summary" is new and means to include only the properties of the referenced object that are listed as the summary.
The XMLDEFAULTREFERENCE class parameter specifies the default value of XMLREFERENCE if it is not specified. The default for XMLDEFAULTREFERENCE is "summary" for XML enabled classes.
If XMLDEFAULTREFERENCE may be used to specify the default XMLREFERENCE for the arguments and return value of a web service or web client. The default in this case is complete.
The summary fields to be used when an object is referenced are specified by the object's XMLSUMMARY class parameter. XMLSUMMARY is a comma separated, unordered list of properties to include in the object summary. Properties are mapped to the XML in the order that the properties appear in the class not in the list order. If XMLSUMMARY is not specified then all properties are included in the summary.
In addition XML for only the summary fields may be imported into or exported from an object. Adding "summary" to the format argument of XMLExport, XMLSchema, or XMLDTD changes the behavior to only use the summary properties. "summary" should be separated by a comma from the literal/encoded part of the format. Valid values for format are "", ",summary", "literal",
"literal,summary", "encoded" and "encoded,summary". If "ignorenull" is also used in the format it must be separated from "summary" by a comma.
Setting the Summary property of %XML.reader to 1, also changes its behavior to only import the summary properties.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: CSP.Samples
Platforms: All
DevKey: MXT423
Summary: Soap.Demo.cls has incorrect parameter: SoapBodyUse = encoded
Description:
Soap.Demo.cls has incorrect parameter set: SoapBodyUse = encoded
This parameter setting causes the GetByName Web Method to return the following error:
ERROR #6258: Invalid ENCODING parameter 'encoded' for property ''
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.XML
Platforms: All
DevKey: MXT425
Summary: In XMLImport, long attribute value causes SUBSCRIPT error
Description:
The prefix part of attribute value of colonized name (i.e. prefix:name) must be less than or equal to 255 characters in length.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.XML
Platforms: All
DevKey: MXT428
Summary: Store XML for empty character streams as "" instead of $c(0)
Description:
When saving an empty element value (<TAG />) to a character stream property, we now store "" in the stream object rather than $c(0). No element present still stores no stream.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: CSP.Samples
Platforms: All
DevKey: MXT430
Summary: In web service, allow LOCATION to be a relative path or unspecified
Description:
It is inconvenient to always need to specify full URL in LOCATION parameter. Change to allow LOCATION to be based on request URL for WSDL file.
If LOCATION is not specified, then the same path as the WSDL path is used. This is the most natural way to get the location.
If LOCATION is a relative path or absolute path without server name, then the WSDL request path is used as the base of the location URL.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.XML
Platforms: All
DevKey: MXT431
Summary: Extend %XML.DataSet to Support .Net Typed Datasets
Description:
When %XML.DataSet is returned from a Web service, it projects as a Microsoft .Net dataset. Previously, only untyped datasets were supported.
.Net-typed datasets (which include type information in the WSDL
file for a Web service) are now supported. This additional information
allows Visual Studio .Net to create a typed dataset that supports IntelliSense.
A subclass of %XML.DataSet now produces a typed dataset if the
NAMESPACE parameter is specified, and the CLASS and QUERY parameters
are overridden to specify the query underlying the dataset.
An example of the return of a typed dataset is now part of the SOAP.Demo sample.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Low | No | Yes |
Category: Object.XML
Platforms: All
DevKey: MXT433
Summary: XMLExport serial references with no data as null (no tag)
Description:
Change XMLExport to treat references to serial objects as null if all values in the serial object are "". A serial object with no value set will now export without any tags. This uses the SQL test for NULL object.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System.StartUp
Platforms: All
DevKey: NGA107
Summary: Increase SZGVXTAB to 32K
Description:
A limitation on the number of volumes that can be mounted has been increased.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: SQLManager
Platforms: All
DevKey: PYD092
Summary: Corrected several issues with SQLMigration
Description:
- When copying column definitions, the buffer size was used as the
length instead of the column precision. As a consequence, for SQL
Server NCHAR, NVARCHAR, SQL_WCHAR and SQL_WVARCHAR
datatypes, the column created in Caché was twice the size of the
original column.
- Binary data was not copied correctly.
- Some indices were copied incorrectly or missing entirely
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Caché Direct
Platforms: All
DevKey: RAW330
Summary: Fix Caché Direct registry key names
Description:
The names of the registry keys to be used by Caché Direct were changed from MServer and FormalNamespace to MServers and FormalNamespaces. The names used in CMVISM32.DLL were not changed. The proper registry names are now used.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: Studio
Platforms: All
DevKey: RAW339
Summary: Addressed Issue in which Studio Would Hang or Loop When Searching for Matching Text That Was in Contracted Code
Description:
In some circumstances, when the string being searched for
was not visible because of being in a contracted block,
doc -> GetDisplayLine was returning the wrong result.
This has been addressed.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Studio
Platforms: All
DevKey: RAW340
Summary: Studio editor: copy Unicode to clipboard on Win9x systems
Description:
On Win9x systems, an attempt to copy text to the clipboard
that had characters not in the current keyboard locale
converted the characters to '?'s. This is expected behavior,
but not necessary in all circumstances.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System.I/O
Platforms: OpenVMS
DevKey: RFD073
Summary: Modify "U" mode RMS files to read formatted files correctly
Description:
This change allows the "U" mode for sequential RMS files on OpenVMS to correctly read an exact byte stream from files of other formats (e.g. "S"tream or "V"ariable). This matches the behavior of "U" mode on Windows and UNIX.
Previously, reading a formatted RMS file in "U" mode would strip out any record indicators (i.e. CR/LF in "S"tream files and length header in "V"ariable files).
Note that this does change the previous behavior of "U" in a slightly incompatible way, but only for reading other file formats.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Medium | Yes | Yes |
Category: System
Platforms: All
DevKey: RFD076
Summary: Create list file for loading Caché KM in BMC Patrol
Description:
Add a .KML "list" file to make it easier to load the Caché Knowledge Module in BMC Patrol. Loading the ISC_CACHE.kml file automatically loads all the other .KM files necessary for Caché.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Config Mgr
Platforms: All
DevKey: RJW693
Summary: Fields of License wizard are empty when Caché (NT) uses UNIX style cache.key
Description:
This fix corrects a problem when customers copy a cache.key file from a UNIX system to a Windows system using binary ftp, the file will contain the UNIX <LF> end of line indicator instead of the DOS <CR> <LF> end of line indicator. This causes the cache.key file to be interpreted incorrectly by the Configuration Manager License Wizard, so the old values are not displayed.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: RJW709
Summary: COM port reads can fail on Windows if data arrives before the read
Description:
If data is written to a COM port from the remote side of the connection before a read is issued to the port, then some data may not be read from the COM port buffer. This could cause a read to continue until the timeout and return less data than expected. It could also cause an untimed read to never terminate even though there is data available in the com port buffer. This has been corrected.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System.Shutdown
Platforms: All
DevKey: SAP078
Summary: No error capture on calls dealloc_resident_mem()
Description:
This assures all error returns from all shared memory deallocations are logged to cconsole.log.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: OpenVMS, Windows, HP-UX
DevKey: SAP083, SAP090, SAP098
Summary: Process priorities not set right for background jobs.
Description:
The priority handling has been unified for Win/UX/OpenVMS.
All system process priorities are set internally by the system and cannot be changed by users. References to priorities are removed from the Configuration Manager and cache.cpf files.
%SS shows the system-dependent priorities for the various Caché system
processes. For OpenVMS, these range between 0 and 15 (4 is normal
priority). For Windows, these range between 1 and 31 (7 is normal
priority). For HP-UX, these range between -20 and 20 (0 is normal
priority). Priorities on NT systems (Windows 98, Win200, NT) now range between 0 and 31. 7 is normal priority, 15 and above are realtime priorities. Refer to the documentation on priority handling in 5.0.
By default, jobbed processes have priority equal to the current base priority at which the parent process is running. A system service is provided to increase/decrease the priority at which jobbed processes are started. See below.
There are 3 services provided to set and get priorities, and alter the priority of subsequent background (jobbed) processes:
$system.Util.SetPrio(n[,pid])
Raise/lower the priority of the currently executing process (or the process specified to process id "pid") by n steps from its current priority. A positive value raises the priority, a negative value lowers the priority.
The ability to raise one's priority is dependent on the system. On UX, attempts to raise a process priority fail. However, all systems allow lowering priority.
Attempts to raise/lower beyond the system imposed limits (see above) leave the priority at the highest/lowest priority.
The function returns the resulting process priority.
$system.Util.GetPrio([pid])
Returns the current priority for this process, or for the process given by "pid".
$system.Util.JobPrio(n)
Raise/lower the priority of subsequent jobbed processes by n steps from that of its parent priority. A positive value raises the priority, a negative value lowers the priority.
If the addition of the job priority increment value to the parent priority results in a priority below/above system limits, the jobbed process executes at the system limit (lowest or highest).
The function returns the current job modification value.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: System
Platforms: All
DevKey: SAP088, SAP091, SAP092
Summary: Save/Restore the process priority of the control process during job startup on UNIX and Windows
Description:
Previously the variable maintaining it was overwritten while executing JOB and so would be incorrectly reported (the priority itself was unaffected)
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Low | No | No |
Category: System
Platforms: OpenVMS
DevKey: SAP097
Summary: On VMS display the correct process priority when examining processes
Description:
This fixes a reporting issue.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| High | Low | No | No |
Category: System
Platforms: All
DevKey: SJ1403
Summary: Fix problem with 3 or more argument $BITLOGIC
Description:
This fixes problems with using the $BITLOGIC function with 3 or more arguments.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML310
Summary: Make DEFNETDIRSIZ 64 KB
Description:
The network directory table size has been increased to 64K to allow support for up to 30 networked databases.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML312
Summary: ECP server should never wait and retry on lock table full
Description:
ECP Server retry logic has been corrected so it will not repeatedly wait and retry when the lock table is full.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML313
Summary: Fix lock_c_cleanup for ECP server dismounts DB
Description:
This fix corrects a race condition where a lock request can be sent from a client to a server at the same time the server is sending a dismount message about the same database to a client.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML316
Summary: Fix DCP lock race condition
Description:
Fixes a race condition in the lock module which could result in
failure of cluster recovery when using DCP for lock transport.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML317
Summary: Display correct message for cluster ECP connection
Description:
This change causes ECP network connections to be properly identified and displayed as such.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML318
Summary: Fix un-removable lock when lock table is reset
Description:
Pending DELOCKs are now properly handled on remote servers if the lock table on that server is reset.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML320
Summary: Change for better network lock fairness on server
Description:
This improves fairness of lock promotion when more than one process
has a lock pending until the release of a higher level lock. This
only affects applications which promote locks and have high contention
on specific lock references. Also, this is only relevant for
configurations which serve locks over DCP.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Medium | Yes | No |
Category: System
Platforms: Linux, OpenVMS
DevKey: SML321
Summary: Fix telnet disconnection will leave an open transaction on OpenVMS and Linux
Description:
On Linux and OpenVMS platforms, when we disconnect the telnet session while the job still has a open transaction, the transaction won't be rolled back after the job exits. This is now fixed.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Low | No | No |
Category: System
Platforms: All
DevKey: SML322
Summary: Display lock entry in pending state
Description:
The LOCKTAB utility did not display pending state of a lock entry to remote server. So the user could get confused and think the lock is granted already (on both client and server). But it could be that the lock is granted by another job on server and it is waiting on server for the lock to be granted.
This change will display a 'P' along with '*' to indicate the lock is queued on server and waiting for it to be granted. A 'D' along with '*' to indicated the lock is waiting for server to release the lock. If neither 'p' nor 'D' is displayed it indicates the remote lock is granted.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML323
Summary: Allow ECP client send 'get file' request on ECP recovery when server is not re-started
Description:
Sometimes the ECP client would fail to re-fetch modified routines after re-connecting.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Medium | No | No |
Category: System
Platforms: All
DevKey: SML325
Summary: Fix multi-entry lock command over ECP problem
Description:
When a job requests multiple locks on a remote ECP server, and the request is blocked because one of the locks is held by another process, the request will hang because the server does not recognize when the single lock is unlocked that there are remote clients waiting to acquire it.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML329
Summary: Fix a problem when Lock and ZA on the same global by the same job
Description:
When a job uses DSM style ZA and ZD ($zu(68,8) turned on), and it uses LOCK commands and ZA commands to lock the same node without unlocking it first, it will generate null lock nodes in lock table. Eventually, this will exhaust the lock table.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML330
Summary: DTM lock error fix
Description:
Fix DTM server process "L " with more than one subscript.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML331
Summary: Let network daemon keep list of locks granted by it so it could handle some deadlock issue
Description:
The network daemons (ECP, DCP, DDP and DTM) now keep the list of locks granted by the daemon for the remote client system. This improves overall lock management.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML332
Summary: Fix a rare problem where a stranded lock was left in the lock table
Description:
This happened on multi-entry lock command and it has (parent node, childnode) sequence when one of the requested locks was already held by another process.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML334
Summary: Don't let network daemon call SWCHECKSET in waitupd(), so it won't block the cluster failover
Description:
This correction fixes a problem that could cause a client daemon job to block the progress of the recovery daemon.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML335
Summary: Display correct cluster error message for ECP
Description:
If, during remount of databases, the ECP connection failed to start, the error message displayed would indicate a DCP network instead of an ECP network.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML336
Summary: Fix bad lock encoding (e.g. ^a("10.41"))
Description:
The following lock node will generate bad lock encoded string.
It failed when the decimal value is teens (e.g. 10 to 19) and there is fraction value without trailing zero. And the number has to be a string data type. The following examples failed:
"10.11", "12.388" and "19.2334".
Though the following won't fail.
"10.40", "011.34" and "19.23340"
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML338
Summary: Fix multi-entry lock command live lock problem
Description:
This reduces the likelihood of an application deadly embrace
between processes if the application uses the multi-entry Lock
command (expressing several lock references within parentheses).
It also fixed a potential problem for ECP multi-entry lock problem
where
the client re-sends the lock list to lock and when
it conflicts on another node it won't release the previous granted node.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Low | No | No |
Category: System
Platforms: All
DevKey: SML339
Summary: Start Cluster ECP connection for slave when startup
Description:
This change is to start the cluster ECP connection when a slave node join the cluster. If we don't do this, a job could gets <NETWORK> error if it tries to initiate the very first request to the cluster master while cluster failover on other nodes. The cluster failover may take longer than 20 seconds. And the very first ECP connection could wait on 20 seconds to see if the connection is set up. After 20 seconds without success the job will get <NETWORK> error.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: AIX
DevKey: SML341
Summary: $ZTIMEZONE failed unpredictably on AIX
Description:
This corrects a problem with $ZTIMEZONE failing to return the
correct time zone.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML344
Summary: Disable Nagel Algorithm by default on TELNET devices
Description:
This reverses a correction added in 4.1 (by default) while keeping the option of Nagel available for those who have very lossy connections.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML346
Summary: Fix short timeout problem on ECP
Description:
This corrects a problem in 5.0 that sometimes a lock with 1 second timeout over ECP could not grant the lock even though the node is not locked on server side.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML350
Summary: Fix possible lock memory lost when lock table full
Description:
This corrects a problem where lock memory may be lost when an attempt to lock a lock fails because the lock table is full.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML351
Summary: Limit # of Caché job to access DSM through DDP to 1544
Description:
When a Caché job's internal job number is greater than 1544, and it tried to access a DSM server DB through DDP then it will get <DDP OVERFLOW JOB> error.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML352
Summary: Fix potential TRANSCB LRB list corruption
Description:
For DCP, in most cases when a job need to send unlock request to server it removes the lock entry in local lock table right after the request is queued in network buffer. But there is a rare case that the lock entry will stay in lock table until the unlock answer is arrived. Then, the DMNNET daemon will remove this lock entry when it processes the server's answer.
The problem is that the DMNNET daemon did not hold a resource for the action. So when it removes the lock from the list, it may interfere with another job working in the table.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms: All
DevKey: SML353
Summary: Fix hang on multi-entry lock with same global nodes over network
Description:
This corrects a problem where multiple clients attempting to lock the
same global nodes over a network may experience a hang.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms:
DevKey: SML355
Summary: Fix ECP timing hole
Description:
This fixes a potential timing hole on new cluster master during failover.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML356
Summary: Don't flush ECP journal records to disk when ECP is only being used as a lock transport for Caché clusters
Description:
The cluster mechanisms take care of recovery. Not having to create
these journal records and
flush them to disk improves cluster performance
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: SML357
Summary: Fix cluster failover potential hang
Description:
When jobs are issuing delock requests during cluster failover,
there was a slight possibility of a hang after the failover was complete.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms: All
DevKey: STC404
Summary: TASKMANAGER - set start date properly, improve queries, add simple menu to drive
Description:
Without this fix, the first run of the task would have been skipped.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| High | Low | No | No |
Category: System
Platforms: All
DevKey: STC414
Summary: Encryption functions - rename from Rijndael to AES
Description:
The encryption methods $SYSTEM.Rijndael.Encode and
$SYSTEM.Rijndael.Decode have been deprecated.
Customers should now use $SYSTEM.AESEncode and $SYSTEM.AESDecode which
better reflects the meaning of the encryption functions.
Old names remain but will be removed in a future version.
Support for $SYSTEM.Rijndael.Encode and $SYSTEM.Rijndael.Decode will
be removed in a future version.
Users should migrate to the new names.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: System
Platforms: All
DevKey: STC417
Summary: Fix collation detection in IF/ELSE clause
Description:
This fixes a potential bug for selecting collations for globals when selecting individual globals to copy.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms: All
DevKey: STC421
Summary: Fix ability to map routine types
Description:
This change adds a new algorithm for the rINDEX mapping for each specified routine type: rMAC, rINT, ROUTINE, and rOBJ.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | No |
Category: System
Platforms: All
DevKey: STC423
Summary: Fix MD5 hash for big endian platforms
Description:
The MDS hash of a string should be the same on all platforms. On big endian Unicode platforms we convert the string to be hashed to little endian, and then hash it. After the hash, we incorrectly converted the resulting string back to big endian, when it should have been left in little endian format as to be compatible with other Caché systems.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Medium | Medium | No | No |
Category: System
Platforms: All
DevKey: STC444
Summary: Fix output file error in GBLOCKCOPY
Description:
This fixes the problem where, if you choose to look at a report from GBLOCKCOPY and for your device you enter a file name, the file will contain the report and some errors. It looks as if choosing a file to output the report ends your session in GBLOCKCOPY, instead of just sending the report off and returning control to the user.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: STC450
Summary: Lock out other gcompact on same database
Description:
Database compaction was allowed to run multiple iterations at the same time on the same database. This is now prevented by the use of a lock.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: System
Platforms: All
DevKey: STC451
Summary: GBLOCKCOPY allows conversion of collation 0 globals
Description:
Previously, globals with a collation type of 0 could not be selected by GBLOCKCOPY for a conversion to standard type 5. This is now allowed.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | Yes |
Category: Misc
Platforms: All
DevKey: TR959
Summary: This fixes a problem of cache coherency in the handling of modified 2k blocks over ECP
Description:
Assume we have two linked 2 KB data blocks A and B, and only
block A is in the client cache. If a new global is added at
the end of block A (by the same client), the set does not
modify and invalidate block A in the client cache, and the
server also does not invalidate the client cache (as expected).
If the client fetches block B (after completing the set request),
then block A in the client cache is linked to B missing the new global.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: Object.ActiveX
Platforms: All
DevKey: TTS042
Summary: Fix for CachéObject: ERROR #5802: Datatype validation failed when value < 0.1
Description:
ERROR #5802 may occur while saving an object from VB when the float datatype validation encounters a value < 0.1.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Medium | Yes | No |
Category: Installation.OpenVMS
Platforms: OpenVMS
DevKey: WDS005
Summary: Set ownership of target root directory (and all subdirs) to value of CACHE$MGRUIC
Description:
This is new functionality in response to a specific customer request. If the logical name CACHE$MGRUIC is defined during a new configuration installation, cinstall.com will set the owner UIC of the target directory to the value of that logical. Subdirectories and files will inherit that UIC.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | Yes |
Category: SQLManager
Platforms: All
DevKey: YSD576
Summary: Change the Owner of a view in SQLManager
Description:
SQL Manager has been changed to allow changing the ownership of a view.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | Yes | Yes |
Category: SQLManager
Platforms: All
DevKey: YSD581
Summary: Show plan fails when default SQL schema name is user defined
Description:
Show plan fails when default SQL schema name is user defined.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: SQLManager
Platforms: All
DevKey: YSD583
Summary: Link table name with space or other characters in it
Description:
In Link Table wizard, if user enters a new table name that contains space or other characters then it gave "Invalid table name" error message.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |
Category: SQLManager
Platforms: All
DevKey: YSD584
Summary: Japanese characters garbled when printing to a printer
Description:
SQL Manager now sends Japanese characters to the printer properly.
Likelihood of happening | Risk this change introduces new problems | Distributed in ad hoc release and installed in production | This change is an enhancement |
|---|
| Low | Low | No | No |