![]() ![]() ![]() ![]() ![]() ![]() |
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 AquaLogic Data Services Platform mediator API, JDBC, SQL, or AquaLogic Data Services Platform controls — can invoke AquaLogic Data Services Platform functions 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 (ldconsole).
Note: | BEA AquaLogic Data Services Platform was originally named Liquid Data for WebLogicŪ. Some artifacts of the original name such as `ld' remain in the product, path, and other artifacts. |
Release Notes are subject to revision between releases. The most recent version can always be found at:
http://download.oracle.com/docs/cd/E13167_01/aldsp/docs25/relnotes/index.html
Items modified or added post-release are so marked and dated.
This document includes the following topics:
AquaLogic Data Services Platform version 2.5 adds a number of new features to AquaLogic Data Services Platform. Table 1 list many of these features.
As a WebLogic Workshop application, AquaLogic Data Services Platform generally supports the same platforms, operating systems, processor architecture, SDKs, and RDBMS systems as does supported servers, as described under WebLogic Server and Client Support.
Note: | For details on post-release testing of other operating systems, SQL databases, JDBC drivers, and Web services see the online version of these Release Notes: |
http://download.oracle.com/docs/cd/E13167_01/aldsp/docs25/relnotes/relnotes.html
Note: | The minimum RAM recommendations are for supporting a single instance of WebLogic Server on which AquaLogic Data Services Platform is running. You may need more memory if you run two or more instances of WebLogic Server and AquaLogic Data Services Platform. Some systems use disk space as virtual RAM. Performance when running in virtual RAM may be markedly slower than when running in physical RAM. |
The following abbreviations are used in this section:
A supported version of WebLogic Platform 8.1 is needed for development and runtime (client). The following table (Table 3) details WebLogic server and client support.
For data service development a complete installation of a supported version of WebLogic Platform 8.1 is recommended. The following chart lists tasks associated with data service development and deployment and the minimal platform component installations.
(For the purposes of this table ALDSP stands for AquaLogic Data Services Platform; WLS stands for WebLogic server.)
The following table (Table 5) lists operating systems and/or hardware that are supported for this release. Testing Status indicates when testing has occured. Test criteria is defined in Table 2.
Platforms and versions in boldface (also with gray backgrounds on PDF pages) support both design time (data service development through WebLogic Workshop IDE) and runtime. Others support runtime only.
Platforms not specifically listed are not supported.
In general any thread-safe, transaction-callable relational database management system (RDBMS) accessible through JDBC should be available to AquaLogic Data Services Platform.
Several vendor-specific levels of support are provide, as shown in Table 6.
The specific database version has been tested and found to be compatible with AquaLogic Data Services Platform. Extended support means that support is provided for stored procedures and some database functions. See
Table 7 for full details on vendor and version support.
|
|
Databases which have been tested with AquaLogic Data Services Platform 2.5 are listed in Table 7. Subsequent versions of particular DBMS systems should work to the same level of support, but have not been specifically verified.
4.41
|
1PointBase Server is an all-Java DBMS product included with WebLogic Platform 8.1 distribution solely for evaluation purposes, either in the form of custom trial applications or through packaged sample applications provided with WebLogic Platform. Non-evaluation development or other use of the PointBase Server requires that a separate PointBase Server license be obtained directly from DataMirror. AquaLogic Data Services Platform does not support PointBase for production server deployments. |
The following table (Table 8) describes results of testing AquaLogic Data Services Platform against various databases under different JDBC drivers. Both the BEA and native drivers were tested in XA and non-XA modes. Limitation encountered are noted as CR numbers in the Comments column.
Details related to these CR numbers can be found in Product Limitations and Workarounds.
The following table (Table 9) describes the matrices for configuring the AquaLogic Data Services Platform JDBC driver for supported reporting applications.
Note: | In cases where the reporting tool supports JDBC connectivity, use the AquaLogic Data Services Platform JDBC driver. |
The following table (Table 10) lists Web services standards supported by AquaLogic Data Services Platform 2.5.
This section contains a table (Table 11) which lists known limitations associated with the current BEA AquaLogic Data Services Platform 2.5 release that users might encounter. Information regarding these limitations includes a CR (change request) number for each problem, applicable platform, a detailed description of the problem and workarounds, where applicable.
Limitations added to this list post general release availability are identified by date as well as CR number.
Please contact BEA customer support at:
for assistance in tracking unresolved issues.
Create a SQL table with a single row contain the parameter value and pass that table parameter to the query. For detailed informations on table parameter s and creating a TableParameter class object see the topic "Table Parameter Support" in the
Using SQL to Access Data Services chapter of Application Developer's Guide.
|
|||
This problem can occur due to differences in the way Web service templates are generated under WebLogic 8.1 and Weblogic 9.2 The template that is generated by a WebLogic Service 9.2 test browser expects a qualified schema and therefore adds namespace prefixes to all elements in the schema. For details see: CR288104 Details.
By contrast, the schema associated with the WebLogic 8.1-level data service does not have elementFormDefault set, so it defaults to unqualified. However, the WebLogic 9.2 Web service sends a qualified xml fragment, causing an error when the schema is passed to the AquaLogic Data Services Platform server running under WebLogic 8.1.
|
|||
Users working with Weblogic 9.2-level Web services should replace the template generated by the WebLogic 8.1 test browser with the template generated by the WebLogic 9.2 test browser. Alternatively, generated code can be edited to include the XMLBean values in the method before passing it to the AquaLogic Data Services Platform control method.
|
|||
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.
|
|||
This problem can occur when compiling schema files into SDOs using AquaLogic Data Services Platform. If an element or attribute has the same name (such as `sequence') as an SDO reserved method (such as `getSequence( )'), SDO will — through the XMLBean Java code generator — attempt to "uniqueify" the method by generating `getSequence2', as an example.
|
|||
If you see such an exception, check the ALDSP 2.x server log. If an error such as the following appears:
|
|||
|
|||
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):
|
|||
|
|||
If a user defines a security policy in WebLogic admin console for AquaLogic Data Services Platform console (
ldconsole.ear ), only the user in the Administrator role can access/login to the AquaLogic Data Services Platform console. Other read-only roles (Operator, Monitor, Deployer) fail to access to AquaLogic Data Services Platform console, instead returning the error:
|
|||
By default ldconsole is allowing access ONLY to administrator group. Only when security policy is defined, are other users allowed per defined security policies.
|
|||
<weblogic_home>/liquiddata/platform_patches/81SP4/CR233032 |
|||
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 ) xs:decimal( "9223372036854775807" ) |
|||
After creating a AquaLogic Data Services Platform control it may be necessary to edit the generated JWS file. For example, in the case of enabling Web service security, the user may need to modify the JWS property that specifies a Web service security file.
* @editor-info:link autogen-style ...
|
|||
Before editing a generated JWS file in Workshop open the file in a text editor and copy the line beginning:
* @editor-info:link autogen-style ... |
|||
Default values for SDO properties are always null. When no values are passed during an insert operation, the generated SQL insert contains a null. This can lead to an exception of the following form on the database side:
The reason this exception occurs is that when metadata is created for database tables, the default value of the database setting is not captured in SDO. So, for example, if the value of the column is "not null" in the database and the SDO datagraph passed a null value to the database, the exception will occur.
|
|||
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.
|
|||
SQL generation for fn:lower-case() and fn:upper-case() functions produces SQL statements that fail to execute against MS Access database.
|
|||
Apply fn-bea:fence() to the parameter of an fn:lower-case() or fn:upper-case() function to block SQL pushdown and force evaluation in the engine.
|
|||
When using inter-domain transactions between 8.1 SP4 and 8.5 SP5, the following command-line argument needs to be passed to the 8.1 SP5 domain:
-Dweblogic.transaction.SecurityInteropMode=compatibility |
|||
|
|||
See CR229758 Details.
|
|||
When using BEA JDBC driver for Oracle, retrieving UROWID returns an error, identified by the following message:
[BEA][Oracle JDBC Driver]Internal error: Net8 protocol error |
|||
Modify your stored procedure call by reducing the size of the INOUT parameter using TRIM. See Sample code related to CR202962, in Listing 1.
|
This section contains code and other additional information related to previously described release notes.
AquaLogic Data Services Platform Web service generation may fail to compile if the original Web service was created in Workshop.
Assume that you have a Workshop-generated Web service named getCustomerOrderByCustomerID. A WSDL for this Web service with default targetnamespace would create the following schema elements:
{http://www.openuri.org/}getCustomerOrderByCustomerID
{http://www.openuri.org/}getCustomerOrderByCustomerIDResponse
When you import this WSDL, the same schema elements will be in the imported schema file and will be associated with the data service read function. When you build a Data Service control for this read function and generate a Web service from that control, a Web service function is created:
org.openuri.GetCustomerOrderByCustomerIDResponseDocument getCustomerOrderByCustomerID(org.openuri.GetCustomerOrderByCustomerIDDocument p0)
When compiling this Web service file, WebLogic Workshop now generates two identical schema elements each:
{http://www.openuri.org/}getCustomerOrderByCustomerID
{http://www.openuri.org/}getCustomerOrderByCustomerIDResponse
If user had modified either the target namespace of this final JWS or changed the function name to a different one such as:
org.openuri.GetCustomerOrderByCustomerIDResponseDocument getCustomerOrderByCustomerIDNEW(org.openuri.GetCustomerOrderByCustomerIDDocument p0)
Then the types generated will be as follows:
Thus the schema clash would be avoided.
String comparison operations involving MSSQL may return incorrect results when the comparison operation is computed by MSSQL.
Depending on the database and server configuration, MSSQL Server may use case-insensitive collation for string comparison operations (this is the default configuration).
When generating SQL the AquaLogic Data Services Platform does not take database string collation into account. This can lead to different results being produced by expressions that were "pushed down" to a MSSQL database, as compared to their evaluation by the XQuery engine.
The following types of expressions are affected:
For example, consider the following two-row, two-column table based on:
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 the XQuery semantics the query should return:
<ID>2</ID>
as only the second record matches the selection criteria.
However, when 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>
There are several workarounds to conforming with XQuery semantics for string comparisons when pushing computations down to MSSQL.
Consider changing the collation setting that the database uses for string comparisons. See "SQL Server Collation Fundamentals" document located as of this writing at:
Collation can change on a server, database or column level basis.
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 comparison operation and pushing down 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 query first limits the number of results that the XQuery engine must process and then applies the second selection to obtain the correct XQuery semantics.
Listing 1 contains 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;
/
Here is the Java Web service schema generated under WebLogic 9.2, following by the same schema generated under WebLogic 8.1:
First is shown the generated Web service schema under WebLogic 9.2. Notice that the schema is fully namespace qualified:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns="http://a/b/c/d/e"; xmlns:m1="ld:DataServices/CustomerDB/CUSTOMER">
<soapenv:Body>
<hello>
<m1:CUSTOMER>
<m1:CUSTOMER_ID>s</m1:CUSTOMER_ID>
<m1:FIRST_NAME>s</m1:FIRST_NAME>
<m1:LAST_NAME>s</m1:LAST_NAME>
<m1:CUSTOMER_SINCE>2001-01-01</m1:CUSTOMER_SINCE>
<m1:EMAIL_ADDRESS>s</m1:EMAIL_ADDRESS>
<m1:TELEPHONE_NUMBER>s</m1:TELEPHONE_NUMBER>
<m1:SSN>s</m1:SSN>
<m1:BIRTH_DAY>2001-01-01</m1:BIRTH_DAY>
<m1:DEFAULT_SHIP_METHOD>s</m1:DEFAULT_SHIP_METHOD>
<m1:EMAIL_NOTIFICATION>1</m1:EMAIL_NOTIFICATION>
<m1:NEWS_LETTTER>1</m1:NEWS_LETTTER>
<m1:ONLINE_STATEMENT>1</m1:ONLINE_STATEMENT>
<m1:LOGIN_ID>s</m1:LOGIN_ID>
</m1:CUSTOMER>
</hello>
Here is the generated Web service schema under WebLogic 8.1:
<getADDRESS xmlns="http://www.openuri.org/";
xmlns:cus="ld:DataServices/CustomerDB/CUSTOMER">
<cus:CUSTOMER>
<CUSTOMER_ID xmlns="">string</CUSTOMER_ID>
<FIRST_NAME xmlns="">string</FIRST_NAME>
<LAST_NAME xmlns="">string</LAST_NAME>
<CUSTOMER_SINCE xmlns="">2008-09-29</CUSTOMER_SINCE>
<EMAIL_ADDRESS xmlns="">string</EMAIL_ADDRESS>
<TELEPHONE_NUMBER xmlns="">string</TELEPHONE_NUMBER>
<!--Optional:-->
<SSN xmlns="">string</SSN>
<!--Optional:-->
<BIRTH_DAY xmlns="">2014-09-19</BIRTH_DAY>
<!--Optional:-->
<DEFAULT_SHIP_METHOD xmlns="">string</DEFAULT_SHIP_METHOD>
<!--Optional:-->
<EMAIL_NOTIFICATION xmlns="">1</EMAIL_NOTIFICATION>
<!--Optional:-->
<NEWS_LETTTER xmlns="">1</NEWS_LETTTER>
<!--Optional:-->
<ONLINE_STATEMENT xmlns="">1</ONLINE_STATEMENT>
<!--Optional:-->
<LOGIN_ID xmlns="">string</LOGIN_ID>
</cus:CUSTOMER>
</getADDRESS>
The most up-to-date product documentation is available from the BEA edocs documentation Web site at the following location:
To access the AquaLogic Data Services Platform documentation home page in a Web browser:
Alternatively, from within a HTML document, click the View as PDF link on the top navigation bar to open a PDF version of the currently displayed document.
Information about BEA products including AquaLogic Data Services Platform can be found at:
Documentation for all BEA products in both PDF and HTML format can be found at:
If you do not have Adobe Acrobat Reader, you can obtain it from the Adobe Web site at:
Samples, examples, sample tutorials, and the RTLApp sample application are designed to be run on the ldplatform domain, located at:
<weblogic81>/samples/domains
The ldplatform domain contains the data necessary for these samples to be developed and run.
![]() ![]() ![]() |