Oracle® Application Server Release Notes
10g (9.0.4) for Solaris Operating System (SPARC) Part No. B10629-15 |
|
![]() Previous |
![]() Next |
This chapter describes issues with Oracle Application Server TopLink (OracleAS TopLink). It includes the following topics:
This section describes general issues and their workarounds for OracleAS TopLink.
Note: This section applies to all supported platforms. In OracleAS TopLink, file paths and script names are identical on all platforms. By default, this section uses the Windows file path separator ("\"). Substitute the file path separator appropriate for your platform as required. |
It includes the following topics:
Section 11.1.4, "EJB QL Parsing and Running JSPs on BEA WebLogic 8.1 Service Pack 1"
Section 11.1.8, "Using OracleAS TopLink - Web Client with Right-to-left Languages"
Section 11.1.10, "Using OracleAS TopLink with IBM WebSphere 5.1"
Beginning with Release 2 (9.0.3), the base package for the entire structure became oracle.toplink
. Use the Package Rename tool to upgrade any existing application source code and OracleAS TopLink Mapping Workbench project that refers to a pre-Release 2 (9.0.3) versions.
Note: If you are upgrading from a version previous to Release 2 (9.0.3), you must convert the package names before opening your project(s) in OracleAS TopLink 10g (9.0.4). |
For more information on the Package Rename tool, see the Oracle Application Server TopLink Getting Started Guide.
In 10g (9.0.4), OracleAS TopLink modified the API as follows:
For DatabasePlatform.initializePreallocatedSequences():
use DatabaseSession.getSequencingControl().initializePreallocated()
instead.
DatabasePlatform.setUsesNativeSequencing(boolean)
is now marked as INTERNAL
and should not be used by users. Use DatabaseSession.getSequencingControl().shouldUseNativeSequencing()
and shouldUseTableSequencing()
instead.
Changes to oracle.toplink.tools.codegen
. To maintain existing code, use the following:
For AttributeDefinition
, use ReflectiveAttributeDefinition
instead.
For MethodDefinition
, use ReflectiveMethodDefinition
instead.
Additional code definition implementations include NonreflectiveMethodDefinition
and NonreflectiveAttributeDefinition
.
Added RemoteCORBAConnection.scrollableCursorPreviousObject
.
Added RemoteEJBConnection.scrollableCursorPreviousObject
.
Added RemoteJMSConnection.scrollableCursorPreviousObject
.
Added RemoteRMIConnection.scrollableCursorPreviousObject
.
If you attempt to run the EJB 1.1 CMP Single Bean example with BEA Weblogic 6.1 on the Sybase SQL Server, Sybase throws a SQL error.
In OracleAS TopLink 10g (9.0.4), OracleAS TopLink builds and parses against ANTLR 2.70. BEA WebLogic 8.1 Service Pack 1 ships with ANTLR 2.72. Using OracleAS TopLink EJB QL parsing and running JSPs simultaneously in the same application with BEA WebLogic 8.1 SP1 causes parsing problems due to incompatibilities between the ANTLR versions. Consider the following:
To use OracleAS TopLink EJB QL parsing with BEA WebLogic 8.1 SP1, without running JSPs simultaneously, place the antlr.jar
file (version 2.70 provided with the OracleAS TopLink install), as the first item in the class path.
Consider the following XML parser dependency issues:
By default, both OC4J and OracleAS TopLink use the OracleAS XML Parser for Java v2. When using OC4J and OracleAS TopLink together, ensure that both use the same version of OracleAS XML Parser for Java v2. Failure to do so may result in XML parsing failures and application errors.
To determine what version of OracleAS XML Parser for Java v2 is used in your OracleAS TopLink installation:
Display the comment associated with the <
ORACLE_HOME
>\lib\xmlparserv2.jar
file (where <
ORACLE_HOME
>
is the directory in which you installed OracleAS TopLink).
On Windows, configure WinZip to display comments: select Options > Configuration
, select the Miscellaneous tab, and ensure that the "Show comments when opening Zip files" check box is checked. Open the <
ORACLE_HOME
>\lib\xmlparserv2.jar
file with WinZip.
On UNIX, use: unzip -l <
ORACLE_HOME
>/lib/xmlparserv2.jar
The comment shows the build that this version of OracleAS XML Parser for Java v2 belongs to. For example: Label: XDK_MAIN_SOLARIS_031006
.
Ensure that this build is the same as the build associated with the OracleAS XML Parser for Java v2 used in OC4J.
Crimson (http://xml.apache.org/crimson/
) is the XML parser supplied in the Java 2 Platform, Standard Edition (J2SE) and in some JAXP reference implementations.
If you use Crimson with the JAXP API to parse XML files whose system identifier is not a fully qualified URL, then XML parsing will fail with a "not valid URL" exception.
Other XML parsers defer validation of the system identifier URL until it is specifically referenced.
If you are experiencing this problem, consider one of the following alternatives:
Ensure that your XML files use a fully qualified system identifier URL.
Use another XML parser (such as the OracleAS XML Parser for Java v2).
In 10g (9.0.4), OracleAS TopLink only supports UTF-8 encoding. The SAXParseException
with OracleAS TopLink Exception, Error Code 9006 occurs if you attempt to read a non-UTF-8 formatted XML file.
The markup in the document preceding the root element must be well-formed.
Start of root element expected.
If any of these exceptions occurs, assess the possibility that UTF-8 encoding is the issue.
The OracleAS TopLink - Web Client does not correctly display text for some right-to-left languages.
If you configure a Login or Query to use statement caching and communication to the database is lost and then restored, previously cached statements may fail to execute.
For example, it is a common practice to define an exception handler and register it with a Session using Session.setExceptionHandler()
. When the exception handler is invoked to handle a loss of communication and the handler reestablishes the connection to the database, any attempt to re-execute a previously cached statement will fail.
When using OracleAS TopLink with WebSphere Application Server 5.1, we recommend that applications be configured and deployed with their class loader mode set to PARENT_FIRST
.
If an application must be configured with its class loader mode set to PARENT_LAST
, then select one of the following options:
Remove (or rename) the <JAVA_HOME>\lib\jaxp.properties
file, where <JAVA_HOME>
is typically <WebShpere_Install>\java\jre
.
Place the xerces library included in the WebSphere installation after xmlparserv2.jar
in the same shared library. This file is located in <WebShpere_Install>\java\jre\lib\xml.jar
.
Discovery through clustering is only supported for ClusteringService with JMS. The new Remote Command Manager (RCM) should now be used for cache synchronization instead of ClusteringService.
The following issues exist in OracleAS TopLink Mapping Workbench 10g (9.0.4):
Section 11.1.12.2, "Migrating Projects from Earlier Versions"
Section 11.1.12.3, "JDK Issue with Microsoft Windows and ATI Video Cards"
Section 11.1.12.4, "Using Mapped Network Drives with Windows XP"
Section 11.1.12.12, "Improper Set Method for Array Type Attributes"
Section 11.1.12.13, "Canceling in Expression Builder May Still Modify a Query"
Section 11.1.12.15, "Code Generated Project Class Uses String Values for All Types in Expressions"
New Oracle9i and Oracle8i database-specific platform files have been introduced in this release. Previous releases included a generic Oracle database platform file. When importing an OracleAS TopLink Mapping Workbench 9.0.3 project that uses the generic Oracle database platform:
Select Oracle8i or Oracle9i as the Database Platform on the Database property sheet, as appropriate. If your project uses a pre-Oracle8i database, select Oracle. See "Working with Databases" in the Oracle Application Server TopLink Mapping Workbench User's Guide for more information.
Note: To use OracleAS TopLink Mapping Workbench with Oracle Database 10g, select Oracle9i. |
Save the project, close the project, then re-open the project.
If you are migrating an OracleAS TopLink Mapping Workbench project from a version prior to version 3.6, contact Oracle Support Services support for assistance at:
On Microsoft Windows platforms, Java 2D functionality in J2SE 1.4.1 can cause a system crash (blue screen). Although the JDK 1.4.1_02 release fixes this bug, some non-Java applications may trigger a system crash. If you still encounter this problem when you run the OracleAS TopLink Mapping Workbench, update your ATI driver.
The latest drivers for a particular card are usually available on the web site of your computer, video card, or video chip manufacturer. For more information, also see the J2SE 1.4.1 release documentation at:
On Microsoft Windows XP platforms with mapped network drives, the OracleAS TopLink Mapping Workbench File Chooser dialogs (such as Save File or Open File) may experience slow responses for opening and traversing directory trees. Unmapping the network drives to eliminate this behavior.
Due to limitations in JAWS 4.5.1, input field labels in the OracleAS TopLink Mapping Workbench are not read properly. Oracle recommends using JAWS 3.7 and version 103 Access Bridge for maximum accessibility.
Changing the icon size of the OracleAS TopLink Mapping Workbench toolbar may cause the application to fail at the next startup. You must edit the workbench.xml
file and change small-icon="false"
to "true"
.
Referencing an extremely large directory (such as your root directory) or .jar
file in your project's classpath may considerably slow the class chooser dialog and negatively impact performance.
If you attempt to generate source code for a descriptor but cancel the process before the OracleAS TopLink Mapping Workbench writes the new source code, a dialog indicates that the source code was successfully updated. However, if you canceled the process, the OracleAS TopLink Mapping Workbench did not overwrite any existing code.
In 10g (9.0.4), the OracleAS TopLink Mapping Workbench does not support generation of code for inner classes.
If you attempt to generate source code from a table with BLOBs, the generated Java code may contain errors in type the type definition and method parameters. You must edit the source code to eliminate the errors.
If you select Use Joining for a one-to-one mapping in the OracleAS TopLink Mapping Workbench, the generated SQL is incorrect and will return null instances.
Example 11-1
Customer has three objects linked by a 1:1 mapping: Customer has an Address; Address has a Country. Each class is mapped to a different table: Customer toCUSTOMER
; Address toADDRESS
; Country toCOUNTRY
. With the Use Joining option, the OracleAS TopLink Mapping Workbench generates incorrect queries.
To join the relationships correctly, use the following syntax:
readAllByExample.addJoinedAttribute("address");
readAllByExample.addJoinedAttribute(tpBuilder.get("address").get("country"));
Do not use the OracleAS TopLink Mapping Workbench with the Sun JRE 1.4. Refer to the Oracle Application Server TopLink Getting Started Guide for complete information on supported platforms.
When creating a variable one-to-one mapping, the OracleAS TopLink Mapping Workbench may incorrectly show the following warning message in the status bar:
The following specified Query Key Names are no longer valid: xxx
where xxx is a name of query key specified in Query Key Associations tab of mapping. This warning may be safely ignored.
The following OracleAS TopLink Mapping Workbench warning message may appear when a writable mapping and an aggregate mapping are associated with the same field:
The following fields have multiple writable mappings: <field name>.
If the aggregate mapping does not actually write to the field (for example, the field is used as part of a target foreign key reference), the warning may be safely ignored.
The OracleAS TopLink Mapping Workbench does not generate proper set method for array type attributes.
When using the OracleAS TopLink Mapping Workbench Expression Builder, it is possible to inadvertently modify a query even if you select cancel to discard your changes.
For example, if you create a nested compound query, edit the query to remove the compound component, and then press Cancel to discard the changes, the changes are still applied. If this occurs, you must edit the query again and replace the inadvertently removed compound component.
When using the OracleAS TopLink Mapping Workbench to create EJB 2.0 CMP bean descriptors, avoid creating multiple mappings to the bean's primary key field. If such a descriptor contains multiple mappings to its primary key field, the required direct-to-field mapping must be the last primary key mapping in the descriptor. If it is not, the OracleAS TopLink Mapping Workbench will fail to write the primary-key-field element to the ejb-jar.xml
file.
For example, if the descriptor contains a direct-to-field mapping for the primary key followed by a one-to-one mapping using the primary key as a foreign key, then the primary-key-field element is not written to the ejb-jar.xml
file.
When you define an expression in the OracleAS TopLink Mapping Workbench, you can select the type of any literal value. If you export the project Java source, all literal values are written out as String type.
For example, if you define a query with a literal value (100000) of type Long and then export the project Java source, the literal value is written out as a String type.
Example 11-2 Query in Exported Project Java Source
ReadObjectQuery namedQuery0 = new ReadObjectQuery(examples.sessions.threetier.model.Employee.class); namedQuery0.setName("testQuery"); ... namedQuery0.setSelectionCriteria(expBuilder0.get("salary").equal("100000")); descriptor.getQueryManager().addQuery("testQuery", namedQuery0);
This section describes known errors in the documentation. It includes the following topics:
Section 11.2.1, "Configuring the OracleAS TopLink Web Client"
Section 11.2.2, "OracleAS TopLink Mapping Workbench Tutorial"
Section 11.2.3, "OracleAS TopLink Mapping Workbench User's Guide"
In the "Configuring the Web Client" section of the Oracle Application Server TopLink Application Developer's Guide, the correct path of the web.xml
file should be: <ORACLE_HOME>
\toplink\config\toplinkwc
.
When using the Web Client with Oracle Application Server Containers for J2EE, substitute your local <J2EE_HOME>
directory in place of the <ORACLE_HOME>
\toplink\examples\oc4j\904\server\
indicated in the document.
To deploy to BEA WebLogic, you must also define a reference to this datasource in the <ORACLE_HOME>
\toplink\config\toplinkwc\weblogic.xml
file, as follows:
<reference-descriptor> <resource-description> <res-ref-name>jdbc/DataSourceName</res-ref-name> <jndi-name>jdbc/DataSourceName</jndi-name> </resource-description> </reference-descriptor>
In the "Configuring the Application Server" section, the first step of the procedure (where you are instructed to copy the toplinkwc.ear
file to an application server-specific directory) is not required. When you run the assembleWebClient
script located in the <
ORACLE_HOME
>\toplink\bin
directory, the system assembles and deploys the toplinkwc.ear
file for you, as specified in the build.properties
file.
When completing the tutorials in the Oracle Application Server TopLink Mapping Workbench User's Guide, be aware of the following changes:
To use sequencing, in addition to creating the sequence table from the OracleAS TopLink Mapping Workbench, you must also create the sequence table in the database.
When creating the sequence table, use size 38 for both SEQ_NAME
and SEQ_COUNT
.
When implementing inheritance for the BaseProject
descriptor, ensure that the Read Subclass On Query option is selected.
Figure B-49 incorrectly omits the BaseProject
class indicator type. Although BaseProject
is an abstract class and does not require an indicator value, it is listed on the Inheritance tab.
The OracleAS TopLink Mapping Workbench User's Guide contains the following documentation errata:
In Chapter 2, "Understanding Projects", in the section entitled "Mapping EJB 2.0 Entities",
"Update Descriptors from ebj-jar.xml"
should be:
"Update Project from ejb-jar.xml"
In Chapter 6, "Understanding Relationship Mappings", in the section entitled "Working with One-to-One Mappings",
ADDRESS
row
should be:
ADDRESS
table
In Appendix C, "Troubleshooting", in the section entitled "Error Messages" under the error message No class indicator value should be defined for the abstract class [class name], the Cause and Action definitions are as follows:
Cause: Abstracts class do not use class indicator valuesAction: On the Class Indicator Values tab, choose <none selected> as the Class Indicator Field.