Table 2 Known Product Limitations and Applicable Workarounds
|
|
|
When accessing data service metadata through the DSP JDBC driver when a schema is specified only data services in the root (or specified) directory appear.
|
|
If a schema is specified in the DSP JDBC driver configuration, you will get access to the data service functions in the specified (or root) directory, but not in any sub-directories.
Alternatively, if you do not specify a schema you will get all the functions in all the data services in all the projects of your application.
|
|
|
|
While you can gain access to all data service functions in your application through the JDBC driver by simply not specifying a schema, this may be inconvenient due to the large number of data service functions in your application.
Another approach is to put all the data service functions you plan to access via the DSP JDBC driver into a single folder; then specify that folder.
|
|
DSP documentation states that reverting an upgrade of Data Services Platform from version 2.1 to version 2.0 is not possible. In fact, it is.
|
|
Reverting to the previous version of DSP is discouraged and is not a supported operation. A manual approach is possible, however, and is described in the Workaround section.
|
|
|
|
To revert to the 2.0 version of DSP from version 2.1 edit your application's .work file, removing the component containing the version number:
<component name="DataServices"> <option name="project.version" value="ALDSP2.1" /> </component>
Then open your application with Data Services Platform 2.0.
|
|
Cannot use the WLS Administration Console to define a security policy for accessing the DSP console.
|
|
If a user defines a security policy in WebLogic admin console for DSP console ( ldconsole.ear ), only the user in the Administrator role can access/login to the DSP console. Other read-only roles (Operator, Monitor, Deployer) fail to access to DSP console, instead returning the error:
Authentication Denied The username or password has been refused by WebLogic Server.
|
|
|
|
By default ldconsole is allowing access ONLY to administrator group. Only when security policy is defined, are other users allowed per defined security policies.
The operation can be completed using the following steps:
- Log in to the WLS console with admin credentials.
- Create a new user (such as "jsmith").
- Assige the user to the Monitors group.
- Log out of the WLS console.
- Log in to ldconsole in the Admin role.
- Edit security settings in the DSP metadata browser to add a security policy allowing read access to users of group "Monitors".
- Log in to the ldconsole page using the "jsmith" user credentials.
|
|
Under some conditions a data service project deployment fails with an error similar to:
Deployment failed, Last Message from the server ...
|
|
Under some conditions the weblogic-application.xml can become corrupted when deploying a DSP-enabled application, leading to a DSP deployment failure.
|
|
|
|
A software patch is available at:
Alternatively, a Clean before a Build automatically repairs the weblogic-application.xml file.
|
|
Data services cannot have multibyte namespace prefixes.
|
|
During metadata import, tables with multibyte names may create multibyte namespace prefixes based on the table name's first few characters. The resulting data service file will not be parsed correctly because the XMLBeans parser is unable to handle multibyte namespace prefix value.
|
|
|
|
A software patch is available at:
|
|
Metadata synchronization update preview shows "Problem in parsing XML fragment" error.
|
|
If your project contains Java function signatures referring to XMLBeans, then erroreous results may be reported when doing a metadata update.
|
|
|
|
Delete the <project.jar> file in your application's library folder that was created when you last built your project. Then synchronize and rebuilt.
|
|
String comparison operations involving MS-SQL may return incorrect results when the comparison operation is computed by MS-SQL.
|
|
|
|
|
|
|
|
Samples Tutorial I and Samples Tutorial II documentation are not updated from the 2.0.1 level.
|
|
|
|
|
|
|
|
When importing DSP projects into Workshop if the Copy into Application Directory option is not selected, importing a DSP project not already located in the application results in resource not found errors.
|
|
DSP requires that projects be contained in the application folder. This is handled automatically if the Copy into Application Directory option in Workshop is selected.
|
|
|
|
Select Copy into Application Directory option when importing DSP projects.
|
|
A ClassCastException occurs when the DSP JDBC driver is invoked from DB Visualizer if ldjdbc.jar is not higher on the CLASSPATH.
|
|
The problem occurs when trying to retrieve data after ldjdbc.jar has been added via DB Visualizer ![Arrow symbol](/global_resources/images/arrwrite.gif) Database ![Arrow symbol](/global_resources/images/arrwrite.gif) Driver Manager.
|
|
|
|
Put ldjdbc.jar on dbvisualizer's class path ahead of weblogic.jar.
|
|
In creating a BigDecimal (basis for xs:decimal) from a long value (basis for xs:integer) sometimes the result are not always correct.
|
|
|
|
|
|
To avoid the possibility of an incorrect result use a string literal instead of an xs:integer literal. Instead of:
|
|
An exception during an SDO update operation can occur if the order of elements in the client diffgram is changed and validate is active.
|
|
Sometimes the order of elements in a diffgram changes which can lead to datagraph validation failure.
|
|
All using ADO.NET clients.
|
|
If possible, turn off validation for the operation.
|
|
Workshop removes a necessary line when editing a DSP Control-generated JWS file.
|
|
After creating a DSP 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.
If the JWS is edited in Workshop, a line in the header beginning:
is automatically removed. This line in the JWS header is needed in order to generate ADO.NET-enabled WSDL files.
|
|
|
|
Before editing a generated JWS file in Workshop open the file in a text editor and copy the line beginning:
Then edit the file in Workshop and in the process restore the line to the JWS file.
|
|
SDO does not support periods [ . ] in element names.
|
|
SDO is dependent on XPath which supports indexing from 0. For example SDO's Customer.0 equals XPath's Customer[1]. Since periods are already used for this type of notation, they cannot appear in element names.
|
|
|
|
Avoid using periods in element names.
|
|
When no values are passed during an insert operation, the generated query contains a null, which leads to an exception on the database side.
|
|
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:
java.sql.SQLException: ORA-01400: cannot insert NULL into ("COMMON"."CASE"."CREATE_USERNM")
The reason this exception appearsis that when metadata is created for database tables, the default value of the database setting is not retained in SDO. So, for example, if the value of the column is "not null" in the database and the SDO datagraph passes a does not have a value assigned to that column, the exception will occur.
|
|
|
|
Make sure that SDO properties for database columns that cannot be set to null are populated properly, either through client code or through server-side update override code.
|
|
SDO does not support periods in element names.
|
|
A more general limitation statement is that SDO does not support periods in schema paths, including leaf elements.
|
|
|
|
Avoid using periods in schema paths.
|
|
End point name changes do not take effect for operations in document-style Web services.
|
|
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.
|
|
|
|
|
|
Documentation should make clear that the samples tutorial needs to be created on the ldplatform samples domain.
|
|
Samples, sample tutorials, and the RTLApp sample application are all designed to be run on the ldplatform domain, located at:
<weblogic81>/samples/domains
This is where the sample data used in the various samples and applications is located.
|
|
|
|
|
|
DSP Console should provide a means to block a user from running ad hoc queries.
|
|
Occasions may arise when it is necessary to block a particular user or user group from running ad hoc queries.
|
|
|
|
Users or user groups can be blocked from running ad hoc queries by securing the EJB method executeQuery() from the WebLogic Administration Console.
|
|
Obscure error message when changing Web service end point settings if an incorrect operation name is used.
|
|
"javax.xml.rpc.JAXRPCException: Unable to find operation 'null' in port 'AVP2Port'. Please check the WSDL"
most likely means that an invalid operation name has been selected.
|
|
|
|
Find correct operation name and change accordingly.
|
|
Security decisions are not audited.
|
|
XQuery functions supporting security are not tracked by the audit framework.
|
|
|
|
|
|
Use of Java keywords in schema elements and namespaces can cause name conflicts.
|
|
Schema elements and namespaces are converted into Java classes and packages as part of schema compilation process. This creates the potential for name conflicts with Java keywords and constructs.
|
|
|
|
Avoid as necessary using syntax which the JVM might recognize as a reserved word or construct.
|
|
Some base platforms may not properly handle "pushed down" constants.
|
|
SQL statements sent to base (not specifically supported) database platforms use a "best guess" as to the syntax for string literals which may not work in all cases.
An example of this is MySQL which requires every backslash [ \ ] to be escaped with another backslash.
Such cases are not handled by SQL generation code and might result in invalid SQL being generated.
|
|
All using a base database platform.
|
|
There are two possible workarounds for this problem:
|
|
Invalid SQL syntax generated for MS Access when fn:lower-case() or fn:upper-case() is used.
|
|
SQL generation for fn:lower-case() and fn:upper-case() functions produces SQL statements that fail to execute against MS Access database.
fn:lower-case() is translated into LOWER() and fn:upper-case() into UPPER.
The problem is that MS Access doesn't support these functions (LOWER, UPPER), hence such generated SQL statements cannot be executed.
for $i in CUSTOMER() where lower-case(data($i/FIRST_NAME)) eq "john" return $i/CUSTOMER_ID
SELECT t1."CUSTOMER_ID" AS c1
WHERE LOWER(t1."FIRST_NAME") = 'john'
|
|
|
|
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.
for $i in CUSTOMER() where lower-case(fn-bea:fence(data($i/FIRST_NAME))) eq "john" return $i/CUSTOMER_ID
SELECT t1."CUSTOMER" AS c1, t1."FIRST_NAME" FROM "CUSTOMER" t1
The function can then be successfully executed by MS Access.
|
|
Metadata import wizard fails to detect in/out parameters.
|
|
In some situations associated with MSSQL and Sybase stored procedures, a resultset is returned which is not automatically detected.
|
|
|
|
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.
|
|
Running a Web service created from a Data Services Control from a remote machine yields the following exception: "Current server is the coordinator and transaction is not found."
|
|
Inter-domain transactions between WebLogic Server 8.1SP4 and 8.1SP5 require that a command line be passed.
|
|
|
|
When using inter-domain transactions between 8.1 SP4 and 8.5 SP5 the following command-line flag to the 8.1 SP5 domain is needed:
More details on the JTA transaction can be found at:
|
|
Multi-dimension soap arrays are not supported in RPC mode.
|
|
Currently the Web services wrapper provided by DSP only supports single-dimension arrays in RPC style Web services
|
|
|
|
|
|
The initial invocation of a Web service call from the 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.
|
|
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.
|
|
|
|
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.
|
|
Wildcards may not work when specifying a catalog name.
|
|
The JDBC driver may not support the use of wildcards (i.e., WIRE% for WIRELESS) as a means of identifying database catalogs. The result is that no catalog is found when a wildcard is used to specify an available database catalog.
|
|
|
|
Use the exact name, not wildcards, when specifying a catalog name.
|
|
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.
|
|
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 will upon execution fail.
- Similarly, input handling by base databases (as well as Oracle databases) may not match the XQuery specification. The reason for this is that while 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.
|
|
All platforms running base databases and Oracle databases
|
|
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(...))
|
|
SDO update sequence is not preserved.
|
|
SDO update does not preserve the sequence of update objects; instead it updates in alphabetical order (example: address, credit card, customer). Since the insertion order is automatic, the update will fail unless the update elements match alphabetical order.
|
|
|
|
If the dependency order matches alphabetical order, the update will be successful.
|
|
An exception appears for XQuery functions accessing metadata derived from Microsoft SQL Server stored procedures containing xs:decimal.
|
|
When importing a stored procedure from Microsoft SQL Server, the BEA JDBC driver incorrectly maps SQL decimal type to schema integer (xs:int) type.
|
|
|
|
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.
|
|
ROWTYPE input cursor is not supported when creating a data service from a stored procedure.
|
|
Stored procedure IN and INOUT cursors containing ROWIDs are not currently supported for metadata import.
|
|
|
|
Avoid importing metadata on stored procedures which required use of IN or INOUT ROWID parameters.
|
|
WSDLs with multiple services are not supported.
|
|
A limitation of the WebLogic web services stack interferes with the ability to handle WSDL files with multiple data services.
|
|
|
|
Split multiple services into multiple WSDL files.
|
|
Erroneous results may occur when using fn:matches() with a regular expression containing a caret (^).
|
|
The match beginning-of-line operator (^) in regular expressions produces erroneous results when used with fn:matches() .
|
|
|
|
|
|
Identifiers within two characters of the maximum length allowed by the database may result in an error.
|
|
Some databases place limits on the length of identifiers (30 in the case of Sybase). Data Services Platform places single quotes around pushdown queries, effectively reducing the maximum identifier length by two characters (28 in the case of Sybase).
|
|
All platforms running Sybase (and possibly other) databases.
|
|
Possible options include renaming the table or creating a view with a shorter name.
|
|
Some data sources may not appear when attempting to import metadata.
|
|
The functionality to manage JDBC data sources and connection pools during metadata import is limited to the same level of functionality provided by BEA Workshop (Tools ![Arrow symbol](/global_resources/images/arrwrite.gif) WebLogic Server ![Arrow symbol](/global_resources/images/arrwrite.gif) DataSource Viewer).
|
|
|
|
For full functionality use the WebLogic Administration Console to manage JDBC data sources and connection pools.
|
|
SOAP 1.2 for Web services runtime is not supported.
|
|
This version of Data Services Platform cannot invoke SOAP 1.2 based Web services.
|
|
|
|
|
|
Linux application built in Workshop may fail with the message "Error creating temporary file".
|
|
While building an application inside Workshop on Linux, you may get the above error when 1) the application includes a large number of schema files, and 2) when the Platform Installation is under a different user's name than the user running Workshop.
|
|
|
|
Ensure that the Workshop instance is running under the same name as was used for Platform installation.
|
|
Access control policies associated with a data service function may disappear if the function's number of parameters is changed.
|
|
A data service function's signature is it's QName and the number of parameters (arity) of the function. If you set security policies on a function and changes the number of parameters to the function, then this function is treated as a new function and the previously set policies will no longer be in effect.
|
|
|
|
If a functions arity is changed, the user will have to reapply security policies to that function.
|
|
The BEA JDBC XA driver for DB2 returns the error XAER_RMERR when a local transaction read is followed by a global transaction read.
|
|
Pertains to a known JDBC driver problem described in BEA CR229071.
|
|
|
|
For the 3.4 JDBC driver, set the driver property to:
AllowImplicitResultSetCloseForXA=false
|
|
Data Services Platform Web service generation may fail to compile if the original Web service was created in Workshop.
|
|
If you have a data service created from a Workshop-originated Web service and then, subsequently, you turn your data service into a web service via a Data Services Platform control, the project build will fail due to a duplicate schema element error.
|
|
|
|
|
|
BEA Informix JDBC driver does not return nullability information.
|
|
The BEA Informix driver does not return information about table column nullability (that is, it is marked as unknown). Thus during metadata import the minOccurs of the elements corresponding to the columns in the generated XML schemas is set to 0.
|
|
All platforms running Informix.
|
|
Modify the imported metadata files by changing the minoccurs value for the nullable columns from 0 to 1.
|
CR214983, CR211701, CR201821
|
MSSQL VARIANT datatype has only limited support.
|
|
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.
|
|
|
|
|
|
In Source View syntax highlighting may become off by a character if certain sequences appear in the query.
|
|
If your query has any of the following patterns:
- Numeric XML character entity references, e.g.,

- Alphabetic XML character entity references, e.g.,
& , &apos , > , < , and "
- The
{{ and }} tokens.
- Escaped single and double quotes.
then syntax highlight may become off by one.
|
|
|
|
|
|
During metadata import the BEA Sybase JDBC driver may not display all tables to which user has authorized access.
|
|
During metadata import the BEA Sybase JDBC driver may not show all tables which have been granted access to the user.
|
|
All platforms accessing Sybase through the BEA Sybase JDBC driver.
|
|
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.
|
|
When using BEA Oracle JDBC driver with a TIMESTAMP values, stored procedures are truncated.
|
|
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.
|
|
All platforms running Oracle with the BEA Oracle JDBC driver.
|
|
Use the Oracle JDBC driver stored procedures that returning TIMESTAMP values.
|
|
Sybase JDBC driver does not support a getBlob() call.
|
|
The 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( ).
|
|
All platforms running Sybase with the Sybase JDBC driver.
|
|
Use the BEA JDBC driver for Sybase databases when utilizing Sybase as the Data Services Platform cache data source.
|
|
SQL Server JDBC driver incorrectly renders the tinyint maximum value.
|
|
The SQL Server tinyint maximum value of 255 gets interpreted as -1 by the Microsoft SQL Server JDBC driver.
|
|
All platforms running SQL Server with the SQL Server JDBC driver.
|
|
Use the BEA JDBC driver for SQL Server.
|
|
The Informix JDBC driver does not support standard JDBC syntax for specifying TIMESTAMP values.
|
|
The Informix native driver doesn't support standard JDBC syntax for specifying TIMESTAMP values. For example: 1979-03-01 00:00:00.0 is not supported.
|
|
All platforms running Informix with the Informix JDBC driver.
|
|
Use the BEA JDBC driver for Informix.
|
|
The BEA JDBC driver for Oracle does not support UROWID column type for data retrieval.
|
|
When using BEA JDBC driver for Oracle, retrieving UROWID returns an error, identified by the following message:
|
|
All platforms running Oracle with the BEA JDBC driver.
|
|
Use the Oracle JDBC driver if your data contains UROWID column type.
|
|
The Oracle stored procedure returning PL/SQL RECORD, BOOLEAN, or table with non-scalar element types is not supported.
|
|
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
|
|
All platforms using Oracle.
|
|
|
|
Metadata for SQL Server stored procedures returning CURSOR output cannot be created.
|
|
When importing metadata from SQL Server, stored procedures that return CURSOR output are not supported.
|
|
All platforms using SQL Server.
|
|
Modify the imported data service file to the identify the correct data type for the cursor.
|
|
Metadata for DB2 stored procedures returning CLOB data cannot be created.
|
|
When importing metadata from DB2, stored procedures returning CLOB data are not supported.
|
|
|
|
|
|
Updating or deleting Oracle's 'CHAR'/'NCHAR' with trailing blanks failed with `Optimistic locking failure' using Oracle JDBC driver.
|
|
With Oracle's non-XA JDBC driver CHAR and NCHAR columns can only be updated if the number of characters is 1024 or less.
|
|
All using Oracle's non-XA JDBC driver.
|
|
Where possible use BEA's Oracle JDBC driver (Type 4).
|
|
Oracle stored procedures containing CHAR or NCHAR as input can cause a Server error.
|
|
|
|
If you have Oracle stored procedures that use an INOUT parameter, you may get an error when you run a stored procedure using Data Services Platform. The error appears as:
java.lang.RuntimeException: ORA-01460: unimplemented or unreasonable conversion requested
ORA-06512: at "WIRELESS.SP_CHAR", line 17
|
|
Modify your stored procedure call by reducing the size of the INOUT parameter using TRIM. See Sample code related to CR202962, in Listing 1.
|