Content starts here ALDSP 3.0/3.2 Release Notes
This page last changed on Apr 09, 2008.

edocs Home > BEA AquaLogic Data Services Platform 3.0 Documentation

ALDSP 3.0/3.2 Release Notes

AquaLogic Data Services Platform provides read and write access to information in relational databases, web services, Java functions, XML files, delimited files, and other types of disparate data.

Once developed, application developers — using access technologies such as the ALDSP mediator API, JDBC, SQL, or Workshop controls — can invoke ALDSP operations as a means of providing their applications with access to integrated, updateable data from their enterprise.

Metadata, security, and cache management facilities are provided through the Data Services Platform Console (dspconsole).

Notes:
  • This document covers both ALDSP 3.0 and ALDSP 3.2. References to ALDSP 3.0 in the notes should be seen as applying to both releases unless otherwise indicated.
  • BEA AquaLogic® Data Services Platform was originally named Liquid Data for WebLogic®. Some artifacts of the original name remain in the product, path, and other artifacts.

Contents

Revision Policy

AquaLogic Data Services Platform Release Notes is subject to revision between releases. The most recent version can always be found at:

http://download.oracle.com/docs/cd/E13167_01/aldsp/docs30/relnotes/relnotes.html

For assistance in tracking unresolved issues please contact BEA Customer Support.

What's New? 

http://download.oracle.com/docs/cd/E13167_01/aldsp/docs30/dsp30wiki/what's%20new.html

Product Installation and Upgrade

http://download.oracle.com/docs/cd/E13167_01/aldsp/docs30/install/index.html


Client Configuration Information

Supported Configurations

For support information on vendor operating systems, JDK, and hardware support, see either:

Client Support

For this release, client applications are supported on the following JDKs:

  • BEA JRockit 1.4.2 and Sun 1.4.2
  • BEA JRockit 5.0 and Sun 5.0 

Supported Interoperability Products

This section describes the following interoperability products that are supported for use with ALDSP 3.0.

ALDSP 3.0 and 3.2 Product and Version Support 

Product Version Supported
Configuration
Required
WebLogic Portal  9.2 and 10.0 (WLP to ALDSP only)
No
WebLogic Integration 9.2 (WLI to ALDSP only)
In some cases
AquaLogic Service Bus 2.6, 2.61, 3.0 No
AquaLogic Enterprise Security  3.0
No
AquaLogic Enterprise Repository  3.0.0.2
No
WebLogic Workshop  ALDSP 3.2 * 9.2 MP2 (for ALDSP Control only), 10.0 MP1, 10.1, 10.2 ALDSP 3.0* 9.2 MP2, 10.1, 10.2 In some cases

Special Configuration Instructions for WLI and WebLogic Workshop

  • Configuration Instructions for WebLogic Integration 9.2 (WLI to ALDSP only)

ALDSP 3.0 only:
WebLogic Integration 9.2 was shipped and tested with an older version of binxml.jar. To invoke ALDSP 3.0 services such as ALDSP Control, Web Services API, or Mediator API from WLI under WebLogic 9.2, it is necessary to use the current version of this file. There are two ways to do this:
  • You can change the WLI server classpath from:
    ${WL_HOME}/server/lib/binxml.jar

    to the ALDSP 3.0 version:

    ${ALDSP_HOME}/lib/binxml.jar
  • Alternatively, you can simply place the following first in your PRE_CLASSPATH:
    ${ALDSP_HOME}/lib/binxml.jar

Although there are no known issues associated with this change, making this switch may cause unexpected behavior in WLI.

  • Configuration Instructions for WebLogic Workshop in conjunction with the ALDSP Control


ALDSP 3.2

If you have installed ALDSP 3.2 into a <BEA_HOME> containing an existing 10.0, 10.0MP1, 10.1, or 10.2 version of Workshop, no link copy is needed to ALDSP Control-enable Workshop. Similarly, if you install ALDSP independently and then install a supported version of Workshop and configure Workshop to use the same Eclipse installation as ALDSP, no link copy is required.

The following table clarifies this requirement:

ALDSP Version Requirement to copy a link ALDSP configuration file to Workshop
3.0 Yes
3.2 Yes unless a supported version of Workshop (10.0, 10.0MP1, 10.1, or 10.2) is installed in the same <BEA_HOME>.
ALDSP Control Configuration Instructions for 3.0 and Some 3.2 Installations

The following table describes the compatibility matrix between ALDSP and Workshop. The location of configuration files and where they need to be installed in order for Workshop to operate as a client of an ALDSP Control is specified.

ALDSP 3.0 
Workshop
Version
Source, Link File, Destination
9.2 
Source: <aldsp_home>/eclipse-plugin/workshop9
File: com.bea.dsp.ide.control.feature.link
Destination: <workshop92_home>/workshop92/eclipse/links
10.1,
10.2
Source: <aldsp_home>/eclipse-plugin/workshop10
File: com.bea.dsp.ide.control.feature.link
Destination: <bea_home>/tools/eclipse_pkgs/1.1/eclipse_3.2.2/eclipse/links
ALDSP 3.2
Workshop
Version
 Source, Link File, Destination
10.0,
10.0MP1
Source: <aldsp_home>/eclipse-plugins/workshop1001
File: com.bea.aldsp32.eclipse.plugins.workshop1001.link
Destination: <bea_home>/tools/eclipse32/eclipse/link
9.2MP2 
Source: <aldsp_home>/eclipse-plugins/workshop9
File: com.bea.aldsp32.eclipse.plugins.workshop9.link
Destination: <workshop92_home>/workshop92/eclipse/links
10.2 
Source: <aldsp_home>/eclipse-plugins/workshop102
File: com.bea.aldsp32.eclipse.plugins.workshop102.link
Destination: <bea_home>/tools/eclipse_pkgs/1.1/eclipse_3.2.2/eclipse/links
JDBC Driver Support for Reporting Tools

 The following section provides information on JDBC driver support for reporting applications used with the AquaLogic Data Services Platform 3.0 JDBC driver:

Application and Version JDBC Native OpenLink ODBC/JDBC
Lite Bridge
Crystal Reports XI Supported  
Business Objects XI, Release 2   Supported
Hyperion BI 9+, Interactive Reporting   Supported
Microsoft Access 2000   Supported
Microsoft Excel 2000   Supported
Standards Support

The following Web services standards supported for this release:

Standards Version
SOAP 1.1, 1.2
WSDL 1.1
JAX-RPC 1.1
SDO 2.1
XML Schema 1.0
XQuery July 2004 Draft

Product Limitations and Workarounds

This section lists known limitations associated with the current BEA ALDSP release that users may encounter. Information regarding these limitations includes:

  • A CR (change request) number for each issue.
  • Applicable platform.
  • Detailed description of the problem and workarounds, where applicable.
  • Date, if the item is added or changed after the general availability release of the product.
Known Product Limitations and Possible Workarounds
Change Request
Number
Release
Found
Release
Addressed
Field Descriptions
CR364443
3.2

Manually adding a new server and modifying a data service may generate an unexpected exception in WorkSpace Studio 1.1.
Platform     All.
Description     WorkSpace Studio 1.1 may generate the following unexpected exception after you manually add a new server and then modify a data service:
org.apache.xmlbeans.XmlException: Thread AWT-EventQueue-0: The 0th supplied input is not a schema document: its type is N=
	at org.apache.xmlbeans.impl.schema.SchemaTypeSystemCompiler.compile(SchemaTypeSystemCompiler.java:211)
	at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.xmlbeans.XmlBeans.compileXmlBeans(XmlBeans.java:667)
	at org.apache.xmlbeans.XmlBeans.compileXsd(XmlBeans.java:553)
Specifically, WorkSpace Studio 1.1 can generate the exception when you do the following:
  1. Click the Servers tab and add a new server.
  2. Double-click a data service (a .ds file) to display the data service in the Overview tab.
  3. Add an operation by right-clicking in the Overview area and choosing Add Operation.
Workaround     Contact BEA Customer Support to request patch E36K for ASDSP 3.2.
CR366025
3.2

Reinstalling ALDSP 3.2 generates the following error: "A BEA product or component is already installed in this directory."  
Platform     All.
Description     The error appears when attempting to reinstall ALDSP 3.2 in a <BEAHOME> directory where ALDSP 3.2 and any of the following have been installed and uninstalled:
  • WebLogic Platform 10.2
  • WebLogic Portal 10.2
  • AquaLogic Service Bus (ALSB) 3.0
  • AquaLogic Integrator (ALINT) 3.0
Workaround     When reinstalling ALDSP 3.2, choose a new <BEAHOME> directory.
CR354149
3.2
3.2
Alias names in user-defined SQL queries may be ignored when creating SQL query-based data services using non-core supported databases.
Platform     All.
Description     JDBC version 4.0 slightly modified the semantics of the following methods:
java.sql.ResultSetMetadata.getColumnName()
java.sql.ResultSetMetadata.getColumnLabel()
In JDBC 3.0 and earlier, the getColumnName() method returned aliases as specified by the SQL AS clause. In JDBC 4.0, the call instead returns the original column name, if available. Column aliases are available using the getColumnLabel() method.
Solution     Do the following:
  1. Create a custom XML provider.
  2. Set the following attribute:
    custom-rdb-provider/database-objects/column/@label-property-in-query-metadata

    Set the attribute to column-label to have the driver use the getColumnLabel() method to retrieve the alias (or actual name if there is no alias).
    Set the attribute to column-name to have the driver use the getColumnName() method.

    The attribute is optional; if it is not present then the value of the parent provider is used. Note that AbstractSQLProvider uses the getColumnName() method.
CR359755
3.2

Stored procedures may return an incorrectly rounded value for the MONEY datatype using the BEA SQL Server JDBC driver.
Platform     All (using BEA SQL Server JDBC driver).
Description     When using the BEA SQL Server JDBC driver, stored procedures may incorrectly round MONEY datatype values. For example, consider the following stored procedure:

ALTER PROCEDURE [wireless].[SP_SMALLMONEY_OUT] (  @P_ID VARCHAR(10),  @P_SMALLMONEY SMALLMONEY OUT
)
AS
BEGIN
SELECT @P_SMALLMONEY = C_SMALLMONEY
FROM ALL_DATATYPES
WHERE C_ID = @P_ID
END

Using an original value of 234.4000 in the database, the BEA SQL Server driver returns the following incorrect value:

234
Workaround     Contact BEA Customer Support to request the BEA SQL Server JDBC Driver Version 3.4.0057. Alternatively, use the Microsoft SQL Server JDBC driver.
CR361824
3.2

A source upgrade of a Workshop 8.1 JWS to Workshop 10 may cause failures when communicating with old clients.
Platform     All.
Description     A source upgrade of a Workshop 8.1 JWS to Workshop 10 may generate different WSDL definitions and cause failures when communicating with old clients.
Workaround     There are several functionality changes between Workshop 8.1 JWS and Workshop 10 JWS implementations. Refer to the following link to identify and resolve source upgraded jws files in Workshop 10:

http://download.oracle.com/docs/cd/E13224_01/wlw/docs102/guide/upgrading/conUpgradingWebServices.html
CR366180 3.2
Tabular view in the Test tab of WorkSpace Studio 1.1 may incorrectly switch the display of @attr and element values.
Platform     All.
Description     When displaying results in the Test tab of WorkSpace Studio 1.1, an element value may appear in the @attr column and the @attr value may appear in place of the first element.
Workaround     Use the Tree view or Text view to display the results.
CR364732
3.2   Using complex types with simple content from an ALDSP 3.2 client to an ALDSP 3.0 server may generate an optimistic locking failure errors.
Platform     All.
Description     Using complex types with simple content from an ALDSP 3.2 client and serializing it to an ALDSP 3.0 server may generate an optimistic locking failure due to incorrect processing of the change summary on the ALDSP 3.0 server.
Workaround     Upgrade the ALDSP 3.0 server to an ALDSP 3.2 server if using complex type with simple content.
CR366431 3.2
Business Objects and Crystal Reports Table Browser displays the same column name multiple times.
Platform     All.
Description     Publishing data service functions to a SQL map using the same table name in multiple schemas can cause certain reporting tools, such as Business Objects and Crystal Reports, to display the same column name multiple times (as many times as the table is published) in the Table Browser user interface.
Workaround     Do not use the same table name in multiple schemas when publishing data service functions to a SQL map.
CR365752 3.2
Data Services Studio user interface behavior is replaced with Workspace Studio after installing ALDSP 3.2 in an existing ALDSP 3.0 BEA_HOME directory.
Platform     All.
Description     When installing ALDSP 3.2 in the same BEA_HOME directory as a current installation of WebLogic Server 9.2.2 and ALDSP 3.0, the installation application recognizes the presence of Data Services Studio (Eclipse 3.2.2) and installs new plug-ins for both WorkSpace Studio 1.1 and Data Services Studio.
After the installation is complete, the Data Services Studio user interface behavior is replaced with Workspace Studio.
Workaround     Install ALDSP 3.2 in a new BEA_HOME directory.
CR365527 3.2
ALDSP classpath patch does not appear in the server logs.
Platform     All.
Description     After using the BEA Smart Update tool to install the ALDSP classpath patch, a record of the patch does not appear in the server logs.
Workaround     To get the patch information, do the following:
  1. Set the domain path by running:
    setDomainEnv.cmd

    or

    setDomainEnv.sh
  2. Run the java weblogic.version --verbose command to print the version. The output appears similar to the following:
    WebLogic Server Temporary Patch for CR345472 Thu Jan 17 16:13:48 EST 2008
    ImplVersion: 10.0.1.0WebLogic Server Temporary Patch for CR322355 Tue Oct 23 10:53:45 PDT 2007
    ImplVersion: 10.0.1.0AquaLogic DataServices Platform 3.2 10.0 SP1 2008-03-21 15:32:50 PDT
    Patch for CR365525 ImplVersion: 10.0.1.0
CR357742
3.0
3.2
Unable to start the AquaLogic Data Services Platform 3.0 sample domain from the QuickStart page.
Platform     All.
Description     When attempting to launch the ALDSP 3.0 sample domain by clicking the "Start AquaLogic Data Services Platform 3.0" link on the QuickStart page, a pop-up window appears displaying the following message:
The link to this application has not been implemented yet. Check this out later!
Workaround     Click Start -> BEA Products -> BEA AquaLogic Data Services Platform -> Examples -> Start Examples Server to start the sample domain.
CR258884 3.0
  Security filter decisions are not audited.
Platform     All.
Description     Security filter decisions (XQuery functions for security) are not audited.
Workaround     None.
CR345482 3.0   Hyperion Interactive Reporting System is not supported.
Platform     All.
Description     ALDSP 3.0 does not support the Hyperion Interactive Reporting System.
Workaround     None.
CR339279 3.0   Upgrading ALDSP 2.5 projects that include multibyte characters may generate errors and produce garbled characters.
Platform     All.
Description     When upgrading an ALDSP 2.5 project that includes multibyte characters to ALDSP 3.0, the following error may appear in the log view:
'Some characters cannot be mapped'
Similarly, when opening the updated data service file, the following error may appear:
'Exception Message: 'Some characters cannot be mapped   'MS932'
Garbled characters may also appear in the data service file.
Workaround     The data service file was properly upgraded. Reopen the data service file to have the multibyte characters appear properly.
CR266307 3.0   Namespace URIs can become invalid when using file and folder names containing embedded spaces.
Platform     All.
Description     ALDSP does not support file and folder names containing one or more embedded spaces. This can cause namespace URIs to become invalid during certain operations such as a Refactor > Move and Refactor > Rename, among others.
Workaround     Do not create file or folder names containing embedded spaces.
CR350103 3.0   ALDSP license changes unexpectedly after installing a new version.
Platform     All.
Description     ALDSP uses the first license found in the AquaLogic Data Services Platform license group (in the license.bea file). If you install multiple versions of ALDSP, your license may change unexpectedly because of the order of the licenses, as shown in the following segment:
<license-group format='1.0' product='AquaLogic Data Services Platform' release='3.0'>
   <license
      component='Data Services Runtime'
      cpus='unvalued'
      expiration='2008-01-28'
      ip='any'
      licensee='BEA Evaluation Customer'
      signature='ZgOAWQ...'
      type='EVAL'
      units='5'
   />
   <license
      component='Data Services Runtime'
      cpus='unvalued'
      expiration='2008-06-04'
      ip='any'
      licensee='BEA Evaluation Customer'
      serial='616351266349-2343532799844'
      signature='MC4CFQ...'
      type='EVAL'
      units='unlimited'
   />
</license-group>
Note that in this example, the number of "units" in the license changes from an unlimited number to five.
Workaround     If you have multiple versions of ALDSP installed, do the following:
  1. Verify that the most flexible license appears first in the AquaLogic Data Services Platform license group (in the license.bea file).
  2. Restart the server.
CR346860 3.0   ALDSP 2.5 SDOGen Web service clients need additional steps to run in backward compatibility mode.
Platform     ALDSP 2.5
Description     ALDSP 2.5 Web service clients that use static SDOGen do not work out-of-the-box after the ALDSP server and the DSP Control/JWS is source upgraded.
Workaround     To use static SDOGen Web service clients, do the following:
  1. In the source upgraded JWS file, modify the portName attribute of the @WLHttpTransport annotation and ensure that it matches the entry present in the 8.1 generated WSDL.
  2. Generate the WSDL file for the JWS and save the file to a local disk.
  3. Remove the parameterOrder attribute from the WSDL file.
  4. Use the saved WSDL file in the client instead of the WSDL file dynamically available from the JWS.
    For example, consider the following WebLogic 8.1 call:
    String wsdl = 'http://acme/services/CustReadCtrlTest.jws?WSDL'weblogic.jws.proxies.CustReadCtrlTestSoap soapCtrl = new   weblogic.jws.proxies.CustReadCtrlTest_Impl(wsdl).getCustReadCtrlTestSoap();

    Modify the statement to match the following:

    String wsdl ='file://local/services/CustReadCtrlTest.wsdl';
    weblogic.jws.proxies.CustReadCtrlTestSoap soapCtrl = new
       weblogic.jws.proxies.CustReadCtrlTest_Impl(wsdl).getCustReadCtrlTestSoap()
CR351310, CR351492 3.0    Missing entries in the generation log.
Platform     All.
Description     The generation log may not contain entries for target entities that cannot be updated. In this case, the update map may be incomplete.
Workaround     None.
CR337329 3.0    Running ALDSP 3.0 in the same domain as WebLogic Integration (WLI) 9.2 can cause conflicts.
Platform     ALDSP 3.0 and WebLogic Integration 9.2
Description     ALDSP 3.0 and WLI 9.2 install incompatible versions of the xquery.jar file. The software installed by ALDSP 3.0 is a newer version and is not certified for use with WLI 9.2.
Workaround     Do not create a domain that is provisioned for ALDSP 3.0 and WebLogic Integration 9.2.
CR354314 3.0  3.2  Changes made to multiple dataspaces in a single session do not apply to all dataspaces at runtime.
Platform     All.
Description     After acquiring a lock for a session, making changes to multiple dataspaces, and committing the session, the changes are reflected only in a single dataspace. Restarting WebLogic Server causes the changes to be reflected in all modified dataspaces.
Workaround     Make changes to only a single dataspace during a session. After committing the session, start a new session to make changes to another dataspace.
CR344413 3.0    Importing an AquaLogic Service Bus (ALSB) SB proxy or accessing an ALSB SB proxy physical data service requires the ALSB sbresource servlet to be available.
Platform     All.
Description     When importing web services that are routed through an ALSB SB proxy, ALDSP requests the SB proxy WSDL through the ALSB sbresource servlet.

Similarly, when accessing a physical data service that was created using the ALSB SB proxy, the ALDSP runtime retrieves the SB proxy WSDL through the ALSB sbresource servlet. 

Both operations require that the ALSB sbreource servlet be available and running.
Workaround     Ensure that the ALSB sbreource servlet is deployed and running.
CR343216 3.0    Oracle timestamp with time zone returns an incorrect value.
Platform     Oracle 9i (using the BEA Oracle JDBC driver).
Description     The timestamp (with time zone) returned using the BEA Oracle JDBC driver may be incorrect.
Workaround     Use the native Oracle JDBC driver.
CR341851 3.0    An upgraded JWS that returns an XMLBean type will not compile.
Platform     Workshop for WebLogic Platform 9.2.2
Description     All operations on an upgraded JWS that returns an XMLBean type will have a compile error similar to the following after the upgrade:
The name 'getCustomerByIdResult' specified in javax.jws.WebResult is different to the XmlBean name of 'CUSTOMER'

The message indicates that the return type does not match the element name defined by the XMLBean schema.

Workaround     Remove the @WebResult annotation or change the name to match the schema type.
CR338622 3.0  3.2 Test View in ALDSP does not perform full XML Schema validation of the results of an operation.
Platform     All.
Description     Schema validation behavior has changed from ALDSP 2.x to ALDSP 3.0. Using ALDSP 2.x, schema validation occurs on the query return. In ALDSP 3.0, the validation is performed at the SDO structural level and does not constitute a full schema validation.
Workaround     During testing, temporarily wrap the function body using the XQuery validate construct to validate the results of calling the function against the XML Schema, as shown in the following example:
validate {
   xquery expression
}
CR342747 3.0    Crystal Reports is unable to use read functions (accepting no parameters) published as stored procedures.
Platform     Crystal Reports (using the JDBC driver).
Description     Using a read function (accepting no parameters) published as a stored procedure with Crystal Reports generates an exception similar to the following:
java.sql.SQLException: Invalid stored procedure reference:
ReportingToolCertDataServices.Xtreme.'Read
	at
com.bea.dsp.jdbc.exceptions.DSPExceptionFactory.create(DSPExceptionFactory.java:148)
	at
com.bea.dsp.jdbc.driver.CallableDSPStatementImpl.updateWithNamedParameters(CallableDSPStatementImpl.java:2913)
Workaround     Publish the read function without parameters as a table instead of a stored procedure.
CR345630 3.0    The ALDSP 2.5 server side streaming API cannot be used in ALDSP 3.0 without modification.
Platform     All.
Description     In ALDSP 2.5, the streaming API is available on the server side only when used in the same ALDSP 2.5 application as a local Mediator API client. ALDSP 3.0, however, no longer uses the J2EE deployment model for dataspace deployment.

As a result, a client using the ALDSP 2.5 streaming API cannot be deployed inside an ALDSP 3.0 dataspace. Doing so results in the following exception:
javax.naming.LinkException.
Workaround     ALDSP 3.0 supports the streaming API for all Java Mediator API clients (remote and local). Modify the streaming API client code to use the ALDSP 3.0 Java Mediator API and use the streaming facility in this API.
CR317803 3.0    Unable to display data lineage graph using the Metadata Browser with Netscape 8.1.
Platform     Microsoft Windows, Netscape 8.1
Description     When using Netscape 8.1, clicking the Data Lineage tab in the Metadata Browser may not display the data lineage graph nor prompt to download and install the SVG viewer.
Workaround     To view data lineage graphs using Netscape 8.1, do the following:
  1. Close the Netscape browser.
  2. Download and install SVG viewer plug-in.
  3. Copy the NPSVG3.dll file to the <NetscapeHome>/plugins folder.
  4. Restart the Netscape browser.
    Alternatively, you can use the tabular view of the Metadata Browser to display the data lineage.
CR343348 3.0    The fn:doc() and fn-bea:collection() functions cannot be accessed using the client API.
Platform     All.
Description     ALDSP 3.0 does not offer access to the fn:doc() and fn-bea:collection() functions through the client API. These functions can cause security vulnerabilities and are therefore blocked from client access. The functions are, however, available for use within data service XQuery bodies.
Workaround     None.
CR318031 3.0    The Eclipse IDE displays the following error message: "An out of memory error has occurred."
Platform     All.
Description     When working with the Eclipse IDE, an "Internal Error" dialog appears displaying the following error message:
"An out of memory error has occurred...Do you want to exit the workbench?"
Workaround     Do the following:
  1. Edit the configuration file. When using the Data Service Studio to launch Eclipse, edit the $<ALDSP_HOME>/bin/aldsp.ini file. When using Eclipse independent of Data Service Studio, edit the eclipse.ini file.
  2. Specify the following memory parameters for the Eclipse IDE:
    -vm
    <JDK_home>/jre/bin/java.exe
    -clean
    -vmargs
    -Xms256m
    -Xmx1024m
    -XX:PermSize=128m
CR347480 3.0    Upgrading an application to ALDSP 3.0 may produce the following error message: "This project needs to migrate WTP metadata."
Platform     All.
Description     When upgrading an application from ALDSP 2.5 to ALDSP 3.0, the following error may appear under the Problems tab:
This project needs to migrate WTP metadata
Workaround     This is an Eclipse error and can occur independent of ALDSP. Do the following:
  1. Using Studio, rename the project.
  2. Select the project in the Project Explorer and choose Project > Build Automatically from the main menu to toggle the feature off.
  3. Select the project in the Project Explorer and choose Project > Clean from the main menu.
  4. Close and relaunch Studio.
  5. Optionally, rename the project to the original name.
  6. Select the project in the Project Explorer and choose Project->Build Automatically from the main menu to toggle the feature on.
CR347074 3.0    Changes to the database definition are not reflected in PreparedStatement calls or in the data service after updating the metadata.
Platform     All.
Description     SQL queries use the PreparedStatement interface which, by default, is cached by the WebLogic Server. The default JDBC PreparedStatement cache size for is 10.
This can result in incorrect prepared statements being used from the cache when database table or column definitions have changed between prepared statement calls.
Workaround     Set the PreparedStatement cache size to 0 when the database table definitions are changed. Using the WebLogic Server Administration Console, do the following:
  1. Click to expand the Services, JDBC, and Connection Pool nodes to display the list of connection pools in the current domain.
  2. Click the connection pool that you want to configure. A dialog displays in the right pane showing the tabs associated with this instance.
  3. Click the Configuration tab, then click the Connections tab.
  4. In Statement Cache Size, enter zero (0) for the number of statements to cache per connection per connection pool instance.
  5. Click Apply to save your changes.
  6. Reset the value of the PreparedStatement cache size to the original value.
CR297695 3.0    An "optimistic locking failure" exception can occur if Oracle checks for an empty string when the actual value is null.
Platform     Oracle
Description     Oracle stores both empty strings and null strings as NULL, and both are always returned as NULL which may cause an optimistic locking error during an update operation. Consider the following mapping:
<SomeElement>{ data($db_row/VARCHAR_COLUMN)}</SomeElement>
where VARCHAR_COLUMN is a database column of VARCHAR type. In this case, the element is always created even when the column value is NULL. An SDO mapping would therefore map an empty element to the empty string value "".

When the updated element is submitted to the database, the following exception occurs:
DataServiceException: Optimistic locking failure

The exception occurs because the DSP-generated SQL statements instruct Oracle to check for an empty string when the actual value is NULL.
Workaround     Map the column to an optional element, as shown in the following:
<SomeElement?>{ data($db_row/VARCHAR_COLUMN)}</SomeElement>
This ensures that the element is not created if the column value is NULL.
CR345834 3.0    Expensive functions in LET clauses, such as calls to web services, may be invoked multiple times resulting in degraded performance.
Platform     All.
Description     XQuery 3.0 inlines LET clauses that are used only once. This can affect the number of times an expensive function, such as a web service, is called.

For example, consider the following query:
declare function tns:test($id1 as xs:string, $id2 as xs:string ){
let $order1 := tes:getOrder($id1)/OrderDetail

let $order2 :=
  for $x in tes:getOrder($id2)/OrderDetail
  return
    <ORDER>
       <ORDER_ID>{fn:data($x/stns:orderID)}</ORDER_ID>
    </ORDER>

  for $o1 in $order1
   return
      <ORDER>
	<ORDER_ID>{fn:data($o1/stns:orderID)}</ORDER_ID>
        <ORDER_DATE>{fn:data($o1/stns:orderDate)}</ORDER_DATE>
        <TOTAL_ORDER_AMOUNT>
           { fn:data($o1/stns:totalOrderAmount) }</TOTAL_ORDER_AMOUNT>
	<STATUS>
           { $order2[$o1/stns:orderDate = $o1/stns:estimatedShipDate] }</STATUS>
      </ORDER>
};
In this example, ALDSP 3.0 inlines both $order1 and $order2 since each are used only once after being defined. This causes the system to perform repeated evaluations of the web service calls as part of the FOR clause (instead of retrieving the saved values from the variables) resulting in degraded performance.
Workaround     Configure ALDSP to prevent the inlining of expensive LET clauses in loops by doing the following:
  1. Set the following system property to false:
    weblogic.xml.query.compiler.INLINE_SINGLE_EXPENSIVE_LETS_INTO_LOOPS=false
  2. Restart the WebLogic Server.
    By default this property is set to true (which is also the default behavior of ALDSP 2.5).
CR314392 3.0    An exception occurs when deploying an ALDSP 3.0 application generated using Workshop for WebLogic 9.2 MP1 or earlier.
Platform     ALDSP 3.0, Workshop for WebLogic 9.2 MP1 or earlier.
Description     An exception can occur when deploying an ALDSP 3.0 application (using the Admin Console) using a WSDL file generated from Workshop for WebLogic 9.2 MP1 or earlier.

ALDSP does not support WSDL files generated using Workshop for WebLogic 9.2 MP1 or earlier.
Workaround     Generate the WSDL using Workshop for WebLogic 9.2 MP2 and then rebuild and redeploy the application.
CR321293 3.0    The server is unable to locate a referenced schema file specified using the Eclipse XSD Editor.
Platform     Eclipse XSD Editor on Microsoft Windows
Description     Microsoft Windows does not distinguish case in file and folder names.

Therefore, the Eclipse XSD Editor on Microsoft Windows will not flag an error when you specify a schema file name using incorrect case. For example, the editor will not flag the following entry when the actual schema file name is ProfileView.xsd:
<xsd:import namespace="urn:test"   schemaLocation="profileView.xsd"/>
Workaround     Verify the case when referencing schema file names using the Eclipse XSD Editor on Microsoft Windows.
CR327132 3.0    A schema is generated with "minOccurs=0" for all columns, not just columns that are not null.
Platform     Informix (using BEA XA and BEA Non-XA JDBC drivers).
Description     When creating a schema using an Informix database with either BEA XA or BEA Non-XA drivers, a schema is generated with "minOccurs=0" for all columns, not just columns that are not null.
Workaround     None.
CR327305 3.0    The nativeSize of data types appears as zero (0) after importing tables using Sybase drivers.
Platform     Sybase (using Sybase JDBC drivers)
Description     When using Sybase drivers, the nativeSize of data types appear as zero (0) after importing tables, as shown in the following sample output:
xquery version "1.0" encoding "WINDOWS-1252";
(::pragma xds <x:xds xmlns:x="urn:annotations.ld.bea.com" targetType="t:sqlQuery"
xmlns:t="ld:SY/datasource/TC_SQLWhereWithConstant/sqlQuery">
<creationDate>yyyy-mm-ddThh:mm:ss</creationDate>
<relationalDB name="datasource" providerId="Sybase-12.5.2"/>
<field xpath="FIRST_NAME" type="xs:string">
   <extension nativeXpath="FIRST_NAME" nativeType="varchar" nativeTypeCode="12" nativeSize="0"
      nativeFractionalDigits="0"/>\\
   <properties nullable="false"/>
</field>
<field xpath="LAST_NAME" type="xs:string">
   <extension nativeXpath="LAST_NAME" nativeType="varchar" nativeTypeCode="12" nativeSize="0"
      nativeFractionalDigits="0"/>\\
   <properties nullable="false"/>
</field>
Workaround     Use the BEA Sybase JDBC drivers.
CR327820 3.0    Certain SQL queries may generate a schema with a missing element name.
Platform     Sybase
Description     When using Sybase, SELECT statements similar to the following may generate schemas with a missing element name:
SELECT t1.PRODUCT_ID, sum(t2.QUANTITY)
FROM PRODUCT t1 JOIN CUST_ORDER_LINE_ITEM_APPL t2 on (t1.PRODUCT_ID = t2.PRODUCT_ID)
GROUP by t1.PRODUCT_ID
Workaround     Specify aliases for the columns in the SQL statements. For example, you could rewrite the previous SELECT statement as follows:
SELECT t1.PRODUCT_ID as PRODUCT_ID, sum(t2.QUANTITY) as QUANTITY
FROM PRODUCT t1 JOIN CUST_ORDER_LINE_ITEM_APPL t2 on (t1.PRODUCT_ID = t2.PRODUCT_ID)
GROUP by t1.PRODUCT_ID
CR328457 3.0    The Oracle JDBC driver and the BEA Oracle JDBC driver return different lengths for CHAR output parameters in stored procedures.
Platform     Oracle (using the Oracle JDBC driver and BEA Oracle JDBC driver).
Description     The Oracle driver and the BEA Oracle driver may return different lengths for CHAR output parameters in stored procedures. For example:
CREATE OR REPLACE PROCEDURE
MYPROCEDURE1(P_CHAR_OUT OUT CHAR)
...<procedure_body>...
In this example, P_CHAR_OUT is the output parameter returned by the stored procedure.
Workaround     None.
CR328861 3.0    Ad-hoc queries in DSP controls that return XML that does not conform to the declared XML type generate an exception.
Platform     All.
Description     When writing ad-hoc queries in a DSP control, if the ad-hoc query returns XML that does not conform to the declared XML type, the following exception is generated while marshalling the SDO data object.
java.lang.IllegalArgumentException: A type with this name
'ADDRESS_TYPE@urn:schemas-bea-com:ld-addr' already exists in this type system.
<ComponentHandler.handleRequest:115>
java.lang.IllegalArgumentException: A type with this name
'ADDRESS_TYPE@urn:schemas-bea-com:ld-addr' already exists in this type system.
Workaround     Ensure that ad-hoc queries in DSP controls conform to the XML schema for the return type.
CR331184 3.0    An exception occurs while parsing a NEIM schema.
Platform     All.
Description     An XmlException exception similar to the following may occur while parsing a NEIM schema (when attempting to create a data service and associated schema, for example):
org.apache.xmlbeans.XmlException: D:\Eclipse
Workspaces\DSPDemo\NEIM\Schema\lexs\lexs.xsd:54:5: error: Problem parsing referenced XML resource - D:\Eclipse
Workspaces\DSPDemo\NEIM\Schema\lexs\lexs-digest.xsd:689:1: error: Unexpected element: CDATA
at org.apache.xmlbeans.impl.schema.SchemaTypeSystemCompiler.compile(SchemaTypeSystemCompiler.java:225)

This may be caused by extra newline and whitespace characters at the end of the file.

Workaround     Remove any newline or whitespace characters from the end of the NEIM schema file.
CR332755 3.0
  An exception can occur when using the ALDSP 2.5 JDBC driver with ALDSP 3.0 applications.
Platform     All.
Description     When attempting to get a connection using the ALDSP 2.5 JDBC driver (ldjdbc.jar) with an ALDSP 3.0 application, an IncompatibleClassChangeError exception can occur similar to the following:
Exception in thread "main" java.lang.IncompatibleClassChangeError:
Implementing class
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
Workaround     Contact BEA Customer Support to request the patch for CR333047 (patch file: CR333047_810sp6.jar) and add the file to your client classpath.
CR333489 3.0    XQueries may return an incorrect timestamp using the BEA XA driver.
Platform     Oracle (using the BEA XA JDBC driver).
Description     The BEA XA driver may return an incorrect timestamp when issued a query similar to the following:
<result>
{
for $i in f1:DATA_TIMESTAMP_ZONE()
return
   <row>
      {$i/C_ID}
      {
      if (fn:data($i/C_TIMESTAMP_ZONE_3) instance of xs:dateTime) then
         <C_TIMESTAMP_ZONE_3>
            <type>TIMESTAMP_ZONE</type>
            <xmltype>xs:dateTime</xmltype>
            <data>{fn:data($i/C_TIMESTAMP_ZONE_3)}</data>
         </C_TIMESTAMP_ZONE_3>
      else
         <C_TIMESTAMP_ZONE_3></C_TIMESTAMP_ZONE_3>
      }
   </row>
}
</result>
In this example, the expected return value is the following:
<C_TIMESTAMP_ZONE_3>
   <type>TIMESTAMP_ZONE</type>
   <xmltype>xs:dateTime</xmltype>
   <data>1999-04-15T08:00:00-07:00</data>
</C_TIMESTAMP_ZONE_3>
The BEA XA driver instead returns the following:
<C_TIMESTAMP_ZONE_3>
   <type>TIMESTAMP_ZONE</type>
   <xmltype>xs:dateTime</xmltype>
   <data>1999-04-09T17:20:00+09:00</data>
</C_TIMESTAMP_ZONE_3>
Workaround     Use the Oracle native XA JDBC driver.
CR333689 3.0    XQueries may return inconsistent results using the BEA XA driver.
Platform     Oracle (using the BEA XA JDBC driver).
Description     The BEA XA driver may return inconsistent results when issued a query similar to the following:
declare namespace ns = "ld:test/RDBMS/OR-CR/DATA_NUMBER";
declare namespace ns1 = "ld:test/RDBMS/OR-CR/DATA_FLOAT";
declare namespace ns2 = "ld:test/RDBMS/OR-CR/DATA_NUMBER_N_S";
declare namespace ns3 = "ld:test/RDBMS/OR-CR/DATA_NUMBER_N";
declare variable $ext as xs:decimal external;

<result>
{
   <column>
   {
      let $x := for $y in ns:DATA_NUMBER()
      where ($y/C_ID  mod 2) ne 0
      return $y/C_NUMBER mod $y/C_ID
         return(
            <all>
               <test1>{$x}</test1>
               <sql>{fn-bea:get-sql($x)}</sql>
            </all>
         )
      }
   </column>
}
{
   <const>
   {
      let $x := for $y in ns1:DATA_FLOAT()
      where $y/C_ID gt ($y/C_FLOAT mod 2)
      return fn:concat( xs:string($y/C_ID), xs:string( 5 mod 4))
         return(
            <all>
               <test2>{$x}</test2>
               <sql>{fn-bea:get-sql($x)}</sql>
            </all>
         )
      }
   </const>
}
{
   <func>
   {
      let $x := for $y in ns2:DATA_NUMBER_N_S()
      where fn:string-length(xs:string($y/C_ID)) eq fn:abs( -5 mod 4)
      return fn:concat( xs:string($y/C_NUMBER_38_38 ), xs:string(4 mod 5))
         return(
            <all>
               <test3>{$x}</test3>
               <sql>{fn-bea:get-sql($x)}</sql>
            </all>
         )
      }
   </func>
}
{
   <join>
   {
      let $x:= for $y in ns:DATA_NUMBER()
      for $z in ns2:DATA_NUMBER_N_S()
      where $y/C_ID eq $z/C_ID
      return $y/C_NUMBER mod $z/C_NUMBER_38_38
         return(
            <all>
               <test1>{$x}</test1>
               <sql>{fn-bea:get-sql($x)}</sql>
            </all>
         )
   }
   </join>

}
{
   <orderby>
   {
      let $x:= for $y in ns:DATA_NUMBER()
      where true()
      order by $y/C_ID mod $y/C_NUMBER
      return $y/C_ID mod $y/C_NUMBER
         return(
            <all>
               <test1>{$x}</test1>
               <sql>{fn-bea:get-sql($x)}</sql>
            </all>
         )
      }
   </orderby>
}
</result>

In this example, the expected return value is the following:

<result><column><all><test1>1.1E-130 2.33</test1><sql>SELECT
MOD(t1.'C_NUMBER',CAST(t1.'C_ID' AS NUMBER)) AS c1
FROM 'CRM'.'DATA_NUMBER' t1
WHERE (MOD(t1.'C_ID',2) != 0)</sql></all></column><const><all><test2>11 21
31</test2><sql>SELECT (TO_CHAR(t1.'C_ID') || '1') AS c1
FROM 'CRM'.'DATA_FLOAT' t1
WHERE (CAST(t1.'C_ID' AS NUMBER) &gt;
MOD(t1.'C_FLOAT',2.0))</sql></all></const><func><all><test3>.123456789012345678901234567890123456784
.1234 .14</test3><sql>SELECT (TO_CHAR(t1.'C_NUMBER_38_38') || '4') AS c1
FROM 'CRM'.'DATA_NUMBER_N_S' t1
WHERE (NVL(LENGTH(TO_CHAR(t1.'C_ID')),0) =
1)</sql></all></func><join><all><test1>1.1E-130 -1.1E-30
0.03</test1><sql>SELECT MOD(t1.'C_NUMBER',CAST(t2.'C_NUMBER_38_38' AS
NUMBER)) AS c1
FROM 'CRM'.'DATA_NUMBER' t1
JOIN 'CRM'.'DATA_NUMBER_N_S' t2
ON (t1.'C_ID' = t2.'C_ID')</sql></all></join><orderby><all><test1>-INF
9.0E-31 0.67</test1><sql>SELECT MOD(CAST(t1.'C_ID' AS NUMBER),t1.'C_NUMBER')
AS c1
FROM 'CRM'.'DATA_NUMBER' t1
ORDER BY MOD(CAST(t1.'C_ID' AS NUMBER),t1.'C_NUMBER')
ASC</sql></all></orderby></result>

The BEA XA driver instead returns the following:

<result><column><all><test1>1.1E-130 2.33</test1><sql>SELECT
MOD(t1.'C_NUMBER',CAST(t1.'C_ID' AS NUMBER)) AS c1
FROM 'CRM'.'DATA_NUMBER' t1
WHERE (MOD(t1.'C_ID',2) != 0)</sql></all></column><const><all><test2>11 21
31</test2><sql>SELECT (TO_CHAR(t1.'C_ID') || '1') AS c1
FROM 'CRM'.'DATA_FLOAT' t1
WHERE (CAST(t1.'C_ID' AS NUMBER) &gt;
MOD(t1.'C_FLOAT',2.0))</sql></all></const><func><all><test3>.123456789012345678901234567890123456784
.1234 .14</test3><sql>SELECT (TO_CHAR(t1.'C_NUMBER_38_38') || '4') AS c1
FROM 'CRM'.'DATA_NUMBER_N_S' t1
WHERE (NVL(LENGTH(TO_CHAR(t1.'C_ID')),0) =
1)</sql></all></func><join><all><test1>1.1E-130 -1.1E-30
0.03</test1><sql>SELECT MOD(t1.'C_NUMBER',CAST(t2.'C_NUMBER_38_38' AS
NUMBER)) AS c1
FROM 'CRM'.'DATA_NUMBER' t1
JOIN 'CRM'.'DATA_NUMBER_N_S' t2
ON (t1.'C_ID' = t2.'C_ID')</sql></all></join><orderby><all><test1>0.0 9.0E-31
0.67</test1><sql>SELECT MOD(CAST(t1.'C_ID' AS NUMBER),t1.'C_NUMBER') AS c1
FROM 'CRM'.'DATA_NUMBER' t1
ORDER BY MOD(CAST(t1.'C_ID' AS NUMBER),t1.'C_NUMBER')
ASC</sql></all></orderby></result>
Workaround     Use the Oracle native XA driver.
CR334116 3.0    RequestConfig.OUTPUT_FILENAME and invokeToFile() causes a DASException to occur.
Platform     All.
Description     The RequestConfig.OUTPUT_FILENAME capability has been removed from ALDSP 3.0. Similarly, the mediator function invokeToFile() is no longer available in ALDSP 3.0 Note that the RequestConfig.OUTPUT_FILENAME flag is still available to ensure backward compatibility with certain methods, however, the feature is no longer supported in ALDSP 3.0 and causes the DASException to occur if used.
Workaround     None.
CR324401 3.0    Binary string datatype parameters to DB2 stored procedures may cause an exception to occur.
Platform     DB2
Description     Using binary string datatype parameters (for bit data) with DB2 stored procedures may cause an XQueryTypeException similar to the following to occur:
Caused by: weblogic.xml.query.exceptions.XQueryTypeException: [ad-hoc], line 3, column 39:
{err}XP0004: Invalid static type: {http://www.w3.org/2001/XMLSchema}hexBinary
   at
weblogic.xml.query.compiler.TypeMatchExpression.typeCheckNoCache(TypeMatchExpression.java:124)
   at weblogic.xml.query.compiler.Expression.typeCheck(Expression.java:308)
Workaround     Do not use binary string datatype parameters with DB2 stored procedures.
CR329108 3.0    Projects are not listed when added during new server configuration.
Platform     All.
Description     Projects do not appear under a configured server in the Server View when you complete the following steps:
  1. You create a new server and then delete the server (maintaining the configured runtime).
  2. You create a new dataspace runtime (the target runtime is defined but not the target deployment server).
  3. You add a new server using the same runtime created earlier.
  4. You add the project while creating the server.
Workaround     When adding the project, click 'Finish' on the 'Add and Remove Projects' screen instead of 'Click Next and Finish.'
CR339199 3.0    SQL substitution statements do not work in applications migrated from ALDSP 2.5 to ALDSP 3.x dataspaces.
Platform     All.
Description     SQL substitution statements created for ALDSP 2.5 may no longer work after the application is migrated to an ALDSP 3.0 dataspace. This is because the original SQL statements may have changed between ALDSP 2.5 and ALDSP 3.0.
Workaround     When migrating applications from ALDSP 2.5 to ALDSP 3.0 dataspaces, recreate and test any SQL substitution statements.
CR351305 3.0    Microsoft Visual Studio displays an error when referencing data service libraries containing functions that return item().
Platform     Microsoft Visual Studio/ADO .NET
Description     ADO .NET does not support WSDL files that use xs:anyType as the return value. Since ALDSP converts functions that return item() to anyType*, Visual Studio displays an error similar to the following when attempting to reference data services containing these types of functions:
Custom tool error: Unable to import WebService/Schema.
Unable to import binding 'librarySoapBinding' from namespace 'ld:Logical/library_ws'.
Unable to import operation 'XqueryNoInputOutput'.
The element, XqueryNoInputOutputResponse, from namespace,
ld:Logical/library_ws, was imported in two different contexts: (StructMapping, MembersMapping).
Workaround     Do not .NET-enable data service functions that return item().
CR349648 3.0    Unable to see an ADO DataSet when two schemas are imported in the data service.
Platform     All.
Description     ADO.NET has the following requirements for supporting complex types in an ADO.NET DataSet, as described in the ADO.NET documentation:
  • You need to define the entire XML type in a single schema definition file. Do not use include, import, or redefine statements.
  • You need to define one global element in the XML type and all other complex types as anonymous complex types within that element. Also, define one global element in the schema and define all other complex types as anonymous complex types within the element. Do not define any of the following: global attribute, global attributeGroup, or global simple type.

    You need to ensure that the name of an element in an anonymous complex type is unique within the entire schema definition. Note that the name of an element for simple types need not be unique unless the occurrence of the element is unbounded. Note also that ADO.NET does not support schemas with more than one type section that has the same target namespace.
Workaround     Do one of the following:
  • Write another create procedure that unwraps the key to the primitive return type if the key constitutes a single atomic type element in the key schema.
  • Associate a user-created EDS key that does not have the same namespace as the return type namespace.
  • Write another create procedure that does not return the key but instead drops it.
  • Expose EDS that do not have keys.
CR349102 3.0    XQSE procedures and functions do not support element-level security.
Platform     All.
Description     Read-only library functions and non-read-only library procedures of a data service do not support element-level security. Element-level and data-driven security apply only to read and navigate functions.
Workaround     As an alternative to element-level security, you can make relevant XQSE functions and procedures protected or private, and write a single-line XQuery wrapper function for functions and procedures that you need to make public.
CR348492 3.0    Eclipse-based tools are installed on Solaris and HP/UX-based systems even though they are not officially supported on these platforms.
Platform     Solaris and HP/UX.
Description     In silent/console mode, the AquaLogic Data Services Platform installer application installs Eclipse on Solaris and HP/UX-based systems and creates links to the client tools.
Workaround     Do not use the tools on Solaris and HP/UX-based systems. The ALDSP Eclipse-based IDE tools are supported on Microsoft Windows and Linux-based platforms. The tools are not supported on Solaris and HP/UX-based systems.
CR347980 3.0  3.2  Missing vertical scroll bar in the Design View when viewing a schema tree.
Platform     All.
Description     The vertical scroll bar does not appear when viewing a schema in the Design View if no functions exist. This is true even if the schema tree expands beyond the currently displayed view.
Workaround     Adding a function displays the scroll bar.
CR347865 3.0    The tree display in the Test View may not display fonts correctly on Linux-based systems.
Platform     Linux.
Description     When using AquaLogic Data Services Platform on Linux-based systems, the default Linux font size may render text in the tree display of the Test View too large, resulting in labels that are vertically clipped.
Workaround     Decrease the default Linux desktop application font size to 8 point or smaller by choosing Application > Preferences > Font > Application Font. If you do not have the Application menu on your desktop, consult the Linux documentation on how to set application fonts.
CR346978 3.0    Unable to specify a key for certain types of entity data services.
Platform     All.
Description     When attempting to manually select the fields to specify the key for a web-service-based data service, the AquaLogic Data Services Platform (Eclipse ALDSP perspective) may display an "Invalid Key Specified" dialog indicating that the system cannot save the schema file.
Workaround     To specify the key for a data service, the following conditions must be met:
  • The key schema element must be in the same namespace as the EDS return type namespace.
  • The key schema element and the path selector elements must be in the same namespace as key schema element namespace.
CR346456 3.0    The ALDSP perspective does not appear in Eclipse following installation of ALDSP.
Platform     Eclipse
Description     A pre-installed version of Eclipse configured to use JDK1.4 will not be able to detect an ALDSP installation.
Workaround     When using a pre-installed version of Eclipse, configure Eclipse to use JDK 150_10 or higher.
CR339726 3.0    Deploying a dataspace with name longer than 64 characters is not supported.
Platform     All.
Description     Dataspace names are limited to 64 characters. Attempting to deploy a dataspace with a name longer than 64 characters causes a 'Name not valid' message to appear in the ALDSP Console.
Workaround     Use dataspace names with fewer than 64 characters.
CR339900 3.0    An illegal URI error message is displayed when creating a new logical data service.
Platform     All.
Description     When creating a new logical data service, including preceding or embedded spaces in the schema file or folder name causes an illegal URI error message to appear, similar to the following:
ERROR: ld:JoinPattern/Logical/CustAddrCredit_1toM_1toM_Inner_Join.ds, line 9,
column 125: {err}XQ0046:
'ld:JoinPattern/Logical/schemas/ CUSTOMER_ADDRESS_CREDIT_INNER_JOIN.xsd':
illegal URI UpdatePattern/JoinPattern/Logical
CustAddrCredit_1toM_1toM_Inner_Join.ds	line 9	1188433233135	3403
Workaround     Do not include preceding or embedded spaces in schema file and folder names.
CR352843 3.0 
 
AquaLogic Data Services Platform 3.0 requires two Workshop for WebLogic 9.2 MP2 patches to be applied following installation.
Platform     Workshop for WebLogic 9.2 MP2
Description     Two required Workshop for WebLogic 9.2 MP2 patches are not automatically applied as part of the AquaLogic Data Services Platform 3.0 installation process.
This issue does not apply to ALDSP 3.2.
Workaround     After installing ALDSP 3.0, manually apply the following Workshop for WebLogic 9.2 MP2 patches using the smartupdate tool:
  • RQSU
  • PF7M

    The patches are in the 'downloaded' state after ALDSP 3.0 installation. You must have Workshop for WebLogic 9.2 MP2 installed to apply the patches.
CR343891 3.0    Asynchronous operations do not propagate the transaction context.
Platform     All.
Description     Asynchronous web services and Java controls do not propagate the transaction context, regardless of the transaction requirements or settings (such as ReadTransaction). Asynchronous operations are likewise unable to start new transactions.
Workaround     None.
CR352226 3.0  3.2  When performing certain tasks after adding an external function, an error message may appear.
Platform     All.
Description     After adding an external function, one of the following errors may appear:
  • Clicking the Source tab may cause a "Resource is out of sync with the file system" error to appear.
  • Clicking the Source tab and modifying the code may cause the following update conflict error message to appear: "The file has been changed on the file system. Do you want to overwrite the changes?"
  • Right-clicking to delete an existing function from the Overview page may cause the following refactoring message to appear: 'The file "..." is out of sync with the underlying file system."
Workaround     Click Refresh in the Project Explorer. Alternatively, you can click "Yes" to overwrite the file.
CR338127 3.0  3.2 Unable to display data lineage graph using Solaris-based web browsers.
Platform     Firefox web browser on Solaris.
Description     The Solaris version of the Firefox web browser does not include a native SVG viewer or plug-in. Therefore, you cannot display a graphical view of the data lineage.
Workaround     Display the data lineage using the tabular view.
CR338237 3.0  3.2 Unable to display data lineage graph using HP-UX-based web browsers.
Platform     Firefox web browser on HP-UX.
Description     The HP-UX version of the Firefox web browser does not include a native SVG viewer or plug-in. Therefore, you cannot display a graphical view of the data lineage.
Workaround     Display the data lineage using the tabular view.
CR352805 3.0 
Unable to deploy Java projects upgraded using ALDSP 3.0.
Platform     All.
Description     When upgrading Java projects (required by a data service) using ALDSP 3.0, the upgrade process adds Java 6.0 facets that makes the Java projects non-deployable in a WebLogic Server 9.2 MP2 environment.
Workaround     Do the following:
  1. In the \.settings\org.eclipse.wst.common.project.facet.core.xml file of the upgraded Java project, change the line <installed facet='jst.java' version='6.0'/> to <installed facet='jst.java' version='5.0'/>.
  2. In the \.settings\org.eclipse.jdt.core.prefs file of the upgraded Java project, change the value of the following properties from 1.6 to 1.5:
    • org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
    • org.eclipse.jdt.core.compiler.compliance=1.5
    • org.eclipse.jdt.core.compiler.source=1.5
CR343934 3.0  3.2  Starting to service administration requests on a deployed dataspace that is in the active state generates an error.
Platform     All.
Description     When a deployed dataspace is already in the active state, clicking to start servicing administration requests causes a deployment exception to be logged and displays the following message:
EAR activation for dataspace '<name>' failed. Cause(s): - [Deployer:149156]
Illegal state for operation start: 'STATE_ACTIVE'
Workaround     Do not start servicing administration requests on a deployed dataspace that is in the active state. Instead, do the following:
  1. Stop the dataspace.
  2. Click to start servicing administration requests
CR352634 3.0    Certain data service functions cannot be published as stored procedures.
Platform     All.
Description     The following types of data service functions cannot be published as stored procedures:
  • Functions with side-effects (procedures)
  • Functions with a simple return type
Workaround     None.
CR333331 3.0    SQL query generates an "Extra characters at the end of a datetime or interval" error.
Platform     Informix, all UNIX (using the Informix XA JDBC driver).
Description     When using the native Informix XA driver, certain SQL queries may generate an "Error executing SQL query: Extra characters at the end of a datetime or interval" error, as shown in the following example:
Caused by: com.bea.ld.wrappers.rdb.exceptions.RDBWrapperException: [ad-hoc],
line 10, column 1: {bea-err}RDBW0004: [ifrtl20ds]: [SELECT DISTINCT
t1.cc_type AS c1
FROM rtlall_20:informix.credit_card t1, rtlall_20:informix.address t2
WHERE ((t1.customer_id = t2.customer_id) AND (t1.exp_date >= {ts '2007-01-01
00:00:00'}) AND (t2.city = 'San Jose'))]:
Error executing SQL query: Extra characters at the end of a datetime or interval.
	at
com.bea.ld.wrappers.rdb.exceptions.RDBWrapperException.create(RDBWrapperException.java:81)
Workaround 3.0    Use the BEA Informix JDBC driver.
CR344349     A query produces an invalid XML character in the resulting document.
Platform     DB2 (using the native DB2 JDBC driver).
Description     When using the native DB2 driver, a query may produce an invalid XML character (Unicode: 0x0) in the resulting document.
Workaround     Use the BEA DB2 JDBC driver.
CR345306 3.0    SOAP 1.2 encoding not supported for ALDSP native web services.
Platform     All.
Description     ALDSP supports SOAP 1.1 and 1.2, and uses the version to determine the type of SOAP binding to create during WSDL generation. The default is 1.1. SOAP 1.2 encoding is not supported. Encoding is an optional feature defined by the SOAP 1.2 specification.
Workaround     Create JAX-RPC handlers to handle encoded messages.
CR355266 3.0    ALDSP 2.5 applications using JPD calls fail to work with ALDSP 3.0.
Platform     All.
Description     ALDSP 3.0 does not support applications migrated from ALDSP 2.5 to ALDSP 3.0 that use JPD call outs in update overwrites.
Workaround     This feature is not available in ALDSP 3.0. Future versions of ALDSP will support this feature.
CR294861
3.0    An exception occurs if a timestamp with time zone is fetched before LONG_RAW.
Platform     All (using the Oracle JDBC driver).
Description     When using an Oracle database, if a timestamp with a time zone is fetched before a LONG_RAW a "... Stream has already been closed" exception occurs. This is consistent with the way Oracle handles LONG_RAW fetched before blob and clob.
Workaround     Reverse the fetch order of timestamp with time zone and LONG_RAW when using Oracle.
CR286359 3.0    When importing or synchronizing metadata with an Oracle database, the native width of float elements may be incorrectly calculated.
Platform     All (using the BEA Oracle JDBC driver).
Description     When importing or synchronizing metadata with an Oracle data source, the width of float elements may be rendered incorrectly (15 instead of 6 or 9). This problem has been observed when using the WebLogic JDBC Oracle driver (version 3.0.5.0).
Workaround     Metadata synchronization using Oracle's native JDBC driver (Oracle.jdbc.driver.OracleDriver) did not exhibit this problem. Therefore, if the width of native float elements is an issue use the Oracle JDBC driver.
CR292257 3.0    Duplicate names are allowed when mapping stored procedures to data services during metadata import.
Platform     All.
Description     The SQL name mapping user interface may allow more than one stored procedure with the same name to be configured under the same schema. However, if more than one stored procedure with the same name is configured, the user will see unexpected results in the JDBC metadata API and on execution of the procedures via JDBC.
Workaround     In the Publish Data Service Functions for SQL Use wizard, manually rename stored procedures so that there are no duplicate names.
CR291781 3.0    Excel Add-in will initially attempt to reuse HTTP basic authentication login credentials for all Web services hosted on the same port.
Platform     All.
Description     In cases where multiple Web services are configured in a single Excel worksheet, and these Web services are hosted by the same host machine and port number, the Excel Add-In will initially attempt to reuse the previously accepted username/password for these services.
If the username/password is not valid for a particular Web service, a login dialog will be displayed. Subsequent Web service invocations during the same Excel session will use the correct login information for each service.
Workaround     No action has to be taken, unless it is not deemed acceptable that an attempt is made to authenticate a web service call initially with incorrect credentials.
In such cases Web services requiring different credentials should be grouped in different servers OR Web services requiring different credentials hosted on the same host/port should be used on separate Excel worksheets.
CR290239 3.0    Several underlying WSDL Element definition attributes and Attribute definition attributes are not currently supported in the AquaLogic Data Services Platform Excel Add-in.
Platform     All.
Description     The following Element definition attributes are currently unsupported:
  • substitutionGroup
  • default
  • fixed
  • form
  • abstract
  • block
  • final

    The following Attribute definition attributes are currently unsupported:
  • default
  • fixed
  • form
  • abstract
  • block
  • final
Workaround     Any WSDL containing the definition attributes listed above may not function as expected. If problems are encountered, remove these definition attributes from your WSDL.
CR284834 3.0    You need to maximize performance when accessing data in an Informix database through ALDSP.
Platform     All using Informix database systems.
Description     The WebLogic Informix JDBC driver is less performant than the native Informix JDBC driver when accessing data through AquaLogic Data Services Platform.
Workaround     No workaround necessary, but for best performance with Informix data use the native JDBC driver.
CR279492 3.0    When using a data service based on a Web service at runtime, a validation error may occur if form and/or elementFormDefault do not match. This happens because redefinition of the 'Form' attribute is not supported.
Platform     All.
Description     At design time, if:
  •  The elementFormDefault attribute in the primary schema does not match the elementFormDefault attribute in an imported or included schema, or
  • if the form attribute of an element does not match the elementFormDefault attribute in the primary schema

     then at runtime validation errors will occur when accessing Web service-based data services.
Workaround     The elementFormDefault in the primary schema and any imported or included schemas should match prior to compilation. Also, the form attribute of the element should match the elementFormDefault in the primary schema.
CR288384 3.0    The Data Lineage feature in AquaLogic Data Services Platform administration console requires the X11 graphical environment in Linux and UNIX environments.
Platform     UNIX and Linux
Description     The following error:

java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment

may occur while accessing the Data Lineage feature of AquaLogic Data Services Platform Administration Console.

The circumstances arise when the Administration Server hosting AquaLogic Data Services Platform Administration Console is running on a Linux or UNIX host with one of the following conditions (not an exhaustive list):

  • A headless environment is in use — for example, without monitor and/or X server.
  • With a monitor, but the user running the administration server is not the same user logged-in from the monitor, and therefore, does not have display permissions to the default display (:0.0).
Workaround     To resolve this issue, set the following headless property to true:

-Djava.awt.headless=true


The property can be found in the Weblogic Server startup script (startWeblogic.sh) in the section of the script where the server is started.
CR283262

3.0 
  Unable to add criteria to SQL when using MS Excel with EasySoft or OpenLink.
Platform     All.
Description     In Microsoft Query, adding a query criteria using the Add Criteria window, (Criteria ?Add Criteria) throws an error message when accessing AquaLogic Data Services Platform data sources.
Workaround     To work around this issue:
  1.  In the Microsoft Query window, select the Records menu option. If the Automatic Query option is checked, then clear this option.
  2. Click View > Criteria. This will add a Criteria window to the query window into which you can enter appropriate criteria.
  3. To execute query with the criteria added, click Records > Query Now.
CR264597 3.0    String comparison operations involving MS-SQL (and Sybase) may return incorrect results when the comparison operation is computed by MS-SQL.
Platform     All.
Description     See CR264597 Details
Workaround     See CR264597 Details
CR204243 3.0    When casting xs:decimal from an xs:integer or xs:long, resulting values may not be precisely correct.
Platform     All.
Description     As above.
Workaround     To avoid the possibility of an incorrect result use a string literal instead of an xs:integer literal. For example instead of:

xs:decimal( 9223372036854775807 )


use:

xs:decimal( "9223372036854775807" )

CR260587 3.0    An exception during an SDO update operation can occur if the order of elements in the client diffgram is changed and the Validate option is active.
Platform     All, using ADO.NET clients.
Description     Sometimes the order of elements in a diffgram changes, potentially leading to datagraph validation failure.
Workaround     If possible, turn off validation for the operation.
CR265950     End-point name changes do not take effect for operations in document style Web services.
Platform     All.
Description     Document style Web services use input (call parameter) types to determine the Web service operation being invoked. The operation name is not included in the SOAP request. For this reason, overwriting the operation name as part of an end point change does not work for document style Web services.
Workaround     None.
CR256214 3.0    Some DBMS systems may not properly handle "pushed down" constants.
Platform     Database platforms for which only generic support is provided.
Description     SQL statements sent to base (not specifically supported) database platforms use a "best guess" as to the syntax for string literal. Such formulations may not work in all cases. An example of this is MySQL which requires every backslash

[aldsp2: \ ]

to be escaped with another backslash.

Such cases are not handled by SQL generation code and might result in invalid SQL being generated.

Workaround     There are two possible workarounds for this problem:
  • Convert constants to parameters by using an external variable instead of a constant. For example:

    where $customer_id eq fn-bea:fence("CUSTOMER001")

  • Properly escape the XQuery string literal according to the rules of the underlying database.
CR248407 3.0    Metadata import wizard fails to detect in/out parameters.
Platform     All.
Description     In some situations associated with MSSQL and Sybase stored procedures, a resultset is returned which is not automatically detected.
Workaround     First, manually build a schema that is mapped to the output of the resultset. Then, when importing metadata use the wizard, add a ROWSET and link it to the previously created schema.
CR242938 3.0    Multi-dimension soap arrays are not supported in RPC mode.
Platform     All.
Description     The Web services wrapper provided by AquaLogic Data Services Platform only supports single-dimension arrays in RPC style Web services.
Workaround     None.
CR224815 3.0    The initial invocation of a Web service from an application server typically takes more time than subsequent calls. If the timeout value is less than the time required for the first call, the alternate expression (typically a timeout error) will be evaluated.
Platform     All.
Description     There is "startup overhead" the first time that a web service is invoked. The overhead can exceed the timeout threshold, leading to the specified timeout error.
Workaround     When setting timeout on expressions that have a Web service invocation, set the timeout value to be greater than the measured amount of time required for the first invocation.
CR239369 3.0    XQueries may generate invalid SQL for databases not supporting UPPER and LOWER (SQL-92).
Also, empty input handling for base databases (databases not specifically support) as well as Oracle deviates from the XQuery specification when UPPER(null) or LOWER(null) is pushed down to the database level.
Platform     All platforms running base databases and Oracle databases.
Description     There are two aspects to this problem:
  •  XQueries containing upper-case() or lower-case() functions are pushed down for database processing as UPPER and LOWER. Some databases may not support these SQL-92 keywords, however. In such cases the generated SQL will be invalid and upon execution will fail.
  • Similarly, input handling by base databases (as well as Oracle databases) may not match the XQuery specification. The reason for this is that the XQuery specification requires that functions return an empty string if input is an empty sequence. However, when these functions are pushed down, they return an empty sequence instead. This happens because LOWER(NULL) is NULL in SQL.
Workaround     Use the fn-bea:Fence() function to prevent pushdown of upper-case() or lower-case() functions to the database. Example:

lower-case(fn-bea:fence(...))

CR207637 3.0    An exception appears for XQuery functions accessing metadata derived from Microsoft SQL Server stored procedures containing xs:decimal.
Platforms     All.
Description     When importing a stored procedure from Microsoft SQL Server, the BEA JDBC driver incorrectly maps SQL decimal type to schema integer (xs:int) type.
Workaround     During stored procedure import, change the data type from xs:int to xs:decimal. Alternatively, you can change the imported data service's metadata to specify the schema type for the affected column to be xs:decimal.
CR203394 3.0    ROWTYPE input cursor is not supported when creating a data service from a stored procedure.
Platform     All.
Description     Stored procedure IN and INOUT cursors containing ROWIDs are not currently supported for metadata import.
Workaround     Avoid importing metadata on stored procedures which required use of IN or INOUT ROWID parameters.
CR214585 3.0    Erroneous results may occur when using fn:matches() with a regular expression containing a caret (^).
Platform     All.
Description     The match beginning-of-line operator (^) in regular expressions produces erroneous results when used with fn:matches().
Workaround     Do not use fn:matches() with a regular expression containing a caret (^).
CR215251 WLS 9.0    Identifiers within two characters of the maximum length allowed by the DBMS may result in an error.
Platform     All platforms running Sybase (and possibly other) databases.
Description     Some DBMS systems place limits on the length of identifiers (30 in the case of Sybase). AquaLogic Data Services Platform places single quotes around queries being pushed to the database, effectively reducing the maximum identifier length by two characters (28 in the case of Sybase).
Workaround     Possible options include renaming the table or creating a view with a shorter name.
CR226019 3.0    Access control policies associated with a data service function may disappear if the function's number of parameters is changed.
Platform     All.
Description     A data service function's signature is its QName and the number of parameters (arity) of the function. If you set security policies on a function and then change the number of parameters to the function, the function is treated as new and any previously set policies will no longer be in effect.
Workaround     If a function's arity is changed, reapply security policies to that function.
CR213916 3.0    BEA Informix JDBC driver does not return nullability information.
Platform     All platforms running Informix.
Description     The BEA Informix driver does not return information about table column nullability (that is, it is marked as unknown). During metadata import the minOccurs of the elements corresponding to the columns in the generated XML schemas is set to 0.
Workaround     Modify the imported metadata files by changing the minoccurs value for the nullable columns from 0 to 1.
CR214983, CR211701, CR201821 3.0    MSSQL VARIANT datatype has only limited support.
Platform     All.
Description     There are two limitations with this MSSQL VARIANT data type (sql_variant):
  • For SQL_VARIANT data type update will fail.
  • You cannot read a null value for the SQL_VARIANT data type.
Workaround     None available.
CR221015, CR319972 3.0    During metadata import the BEA Sybase JDBC driver may not display all tables to which user has authorized access.
Platform     All platforms accessing Sybase through the BEA Sybase JDBC driver.
Description     During metadata import the BEA Sybase JDBC driver may not show all tables which have been granted access to the user.
Workaround     This is a BEA Sybase driver limitation. For the import purpose, you can change to dbo user to see the full complement of available tables.
CR202963 3.0    When using BEA Oracle JDBC driver with a TIMESTAMP values, stored procedures are truncated.
Platform     All platforms running Oracle with the BEA Oracle JDBC driver.
Description     When using the BEA's Oracle JDBC driver, if a stored procedure returns a TIMESTAMP value then the value gets truncated at the milliseconds level. For example, if the value was:

1997-01-31 09:26:50.124

then the stored procedure will return a

1997-01-31 09:26:50.0

value.

Workaround     Use the Oracle JDBC driver stored procedures that returning TIMESTAMP values.
CR223429, CR228802 3.0    Sybase JDBC driver does not support a getBlob() call.
Platform     All platforms running Sybase with the Sybase JDBC driver.
Description     The AquaLogic Data Services Platform cache configuration does not work if using Sybase JDBC driver because the configuration implementation uses a getBlob( ) call on the JDBC driver. The Sybase JDBC driver does not support getBlob( ).
Workaround     Use the BEA JDBC driver for Sybase databases when utilizing Sybase as the AquaLogic Data Services Platform cache data source.
CR214730 3.0    SQL Server JDBC driver incorrectly renders the tinyint maximum value.
Platform     All platforms running SQL Server with the SQL Server JDBC driver.
Description     The SQL Server tinyint maximum value of 255 gets interpreted as -1 by the Microsoft SQL Server JDBC driver.
Workaround     Use the BEA JDBC driver for SQL Server.
CR223486, CR226239, CR226171 3.0    The Informix JDBC driver does not support standard JDBC syntax for specifying TIMESTAMP values.
Platform     All platforms running Informix with the Informix JDBC driver.
Description     The Informix native driver does not support standard JDBC syntax for specifying TIMESTAMP values. For example:

1979-03-01 00:00:00.0

is not supported.

Workaround     Use the BEA JDBC driver for Informix.
CR199675 3.0    The BEA JDBC driver for Oracle does not support UROWID column type for data retrieval.
Platform     All platforms running Oracle with the BEA JDBC driver.
Description     When using BEA JDBC driver for Oracle, retrieving UROWID returns an error, identified by the following message:
[aldsp2:BEA][aldsp2:Oracle JDBC Driver]Internal error: Net8 protocol error
Workaround     Use the Oracle JDBC driver if your data contains UROWID column type.
CR212515 3.0    The Oracle stored procedure returning PL/SQL RECORD, BOOLEAN, or table with non-scalar element types is not supported.
Platform     All platforms using Oracle.
Description     Oracle stored procedure limitations are detailed in the following currently-available document:
http://www.stanford.edu/dept/itss/docs/oracle/9i/java.920/a96654/ref.htm#1007714
Workaround     None available
CR202041 3.0    Metadata for SQL Server stored procedures returning CURSOR output cannot be created.
Platform     All platforms using SQL Server.
Description     When importing metadata from SQL Server, stored procedures that return CURSOR output are not supported.
Workaround     Modify the imported data service file to identify the correct data type for the cursor.
CR227440 3.0    Metadata for DB2 stored procedures returning CLOB data cannot be created.
Platform     All platforms using DB2.
Description     When importing metadata from DB2, stored procedures returning CLOB data are not supported.
Workaround     None available.
CR265965 3.0    Updating or deleting Oracle's CHAR/NCHAR with trailing blanks failed with an Optimistic locking failure message using Oracle JDBC driver.
Platform     All using Oracle's non-XA JDBC driver.
Description     With Oracle's non-XA JDBC driver, CHAR and NCHAR columns can only be updated if the number of characters is 1024 or less.
Workaround     Where possible use BEA's Oracle JDBC driver (Type 4).
CR202962 3.0    Oracle stored procedures containing CHAR or NCHAR as input may cause a Server error.
Platform     All.
Description     If you have Oracle stored procedures that use an INOUT parameter, you may get an error when you run a stored procedure using AquaLogic Data Services Platform. The error is similar to:

java.lang.RuntimeException: ORA-01460: unimplemented or unreasonable conversion requested
ORA-06512: at "WIRELESS.SP_CHAR", line 17

Workaround     Modify your stored procedure call by reducing the size of the INOUT parameter using TRIM. See aldsp2:Sample code related to CR202962, in aldsp2:Listing 1.

Supplemental Release Note Documentation

This section contains code and other additional information related to previously described release notes.

CR264597 Details

Summary

String comparison operations involving MSSQL (and Sybase) may return incorrect results when the comparison operation is computed by MSSQL.

Description

Depending on the database and server configuration, MSSQL Server may use case-insensitive collation for string comparison operations (this is the default configuration). This is in contrast to XQuery string comparison operations, which are case-sensitive.

When generating SQL, the AquaLogic Data Services Platform currently does not take database string collation into account. This can lead to different results being produced by expressions that are "pushed down" to an MSSQL database, as compared to the results from their evaluation by the XQuery engine.

The following types of expressions are affected:

  • string comparison operations
  • string functions: fn:contains( ), starts-with( ), ends-with() 
  • order by clauses
  • group by clauses.

For example, consider the following two-row, two-column table based on:

CUSTOMER(ID, FIRST_NAME)

ID FIRST_NAME
1 John
2 john

The following XQuery might return different results depending whether it is evaluated by the database or not.

for $c in CUSTOMER()
where $c/FIRST_NAME eq "john"
return $c/ID

According to XQuery semantics, this query should return:

<ID>2</ID>

as only the second record matches the selection criteria.

However, when the AquaLogic Data Services Platform pushes the query to the underlying MSSQL database, the following SQL is generated:

SELECT t1."C_ID" AS c1
FROM "CUSTOMER" t1
WHERE t1."FIRST_NAME" = "john"

This might result in both records being returned by the MSSQL database (with case-insensitive string collation set):

<ID>1</ID>
<ID>2</ID>

Workaround

There are several workarounds to conforming with XQuery semantics for string comparisons when pushing computations down to MSSQL.

Option 1

Consider changing the collation setting that the database uses for string comparisons. See "SQL Server Collation Fundamentals" document located as of this writing at:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar

Collation can change on a server, database or column level basis.

Option 2

Use the fn-bea:fence( ) function to block pushdown. In the above example, this would be rendered as:

for $c in CUSTOMER()
where fn-bea:fence(data($c/FIRST_NAME)) eq "john"
return $c/ID

Notice, however, that this approach may negatively impact performance since the AquaLogic Data Services Platform engine now must fetch and process the entire table.

To optimize performance, consider replicating the comparison operation in the query, thus allowing one copy to be evaluated by the database while keeping the second copy on the AquaLogic Data Services Platform engine. The following query illustrates such an approach:

for $c in CUSTOMER()
where $c/FIRST_NAME eq "john"
where fn-bea:fence(data($c/FIRST_NAME)) eq "john"
return $c/ID

This approach limits the number of results that the XQuery engine must process but still applies the second selection in order to obtain the correct XQuery semantics.

CR202962 Listing 1

Here is the sample code for CR202962:

** CREATE OR REPLACE PROCEDURE WIRELESS.SP_CHAR
(P_CHAR_IN IN CHAR,
P_CHAR_OUT OUT CHAR,
P_CHAR_INOUT IN OUT CHAR,
P_ID_OUT OUT VARCHAR2 )
IS
TEMP VARCHAR2(10);
BEGIN
SELECT C_ID INTO P_ID_OUT
FROM WIRELESS.ALL_DATATYPES
WHERE C_CHAR = P_CHAR_IN;

SELECT C_CHAR INTO P_CHAR_OUT
FROM WIRELESS.ALL_DATATYPES
WHERE C_ID = '2';

SELECT C_ID INTO TEMP
FROM WIRELESS.ALL_DATATYPES
WHERE C_CHAR = P_CHAR_INOUT;

SELECT 'WORK' INTO P_CHAR_INOUT
FROM WIRELESS.ALL_DATATYPES
WHERE C_ID = TEMP;
END;
/
to adjust the size of PCHAR_INOUT using TRIM (see highlighted code)
CREATE OR REPLACE PROCEDURE WIRELESS.SP_CHAR
(P_CHAR_IN IN CHAR,
P_CHAR_OUT OUT CHAR,
P_CHAR_INOUT IN OUT CHAR,
P_ID_OUT OUT VARCHAR2 )
IS
TEMP VARCHAR2(10);
\*ACHAR CHAR(500);

BEGIN
ACHAR := trim(P_CHAR_INOUT);
\*
SELECT C_ID INTO P_ID_OUT
FROM WIRELESS.ALL_DATATYPES
WHERE C_CHAR = P_CHAR_IN;

SELECT C_CHAR INTO P_CHAR_OUT
FROM WIRELESS.ALL_DATATYPES
WHERE C_ID = '2';

SELECT C_ID INTO TEMP
FROM WIRELESS.ALL_DATATYPES
\*WHERE C_CHAR = ACHAR; // used to fail here
\*
SELECT 'WORK' INTO P_CHAR_INOUT
FROM WIRELESS.ALL_DATATYPES
WHERE C_ID = TEMP;

END;
/
Version: 3.0 / 3.2
Document Date: January 2008
Revision: April 2008
Document generated by Confluence on Apr 09, 2008 17:11