Oracle® Application Server Release Notes
10g Release 2 (10.1.2) for hp-ux PA-RISC (64-bit) B15511-05 |
|
![]() Previous |
![]() Next |
This chapter describes general issues and workarounds in Oracle Application Server TopLink 10g (9.0.4.5). It includes the following topics:
The following issues exist with OracleAS TopLink 10g (9.0.4.5):
When using Oracle JDBC 9.0.1 driver, resultSet.getTimestamp(int)
returns oracle.sql.TIMESTAMP
, instead of java.sql.Timestamp
. As a result, oracle.sql.TIMESTAMP
is stored in the DatabaseRow. Although OracleAS TopLink converts it to java.sql.Timestamp
at a later stage for a successful read, serialization on an attribute of ValueHolderInterface type representing an object mapped to TIMESTAMP field will fail because DatabaseRow is an attribute of ValueHolder and oracle.sql.TIMESTAMP
is not serializable.
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).
Use the following command:
prompt> 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.
When you install OracleAS TopLink in conjunction with the Oracle Application Server 10g Release 2 (10.1.2) installation, changes introduced to the OracleAS XML Parser for Java v2 in 10g Release 2 (10.1.2) can cause issues for users that use OracleAS TopLink 10g (9.0.4.5) in conjunction with BEA WebLogic Application Server, 8.1 (BEA CR136750
).
Users will encounter a NoSuchMethodError
associated with the constructor of the javax.xml.namespace.QName
class. To resolve this problem, users must download the Sun Web Services Development Kit from Sun and place the jax-qname.jar
file on their classpath ahead of both the toplink.jar
and the weblogic.jar
entries.
To download the Sun Web Services Development Kit, go to http://www.sun.com
.
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.5), 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.
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 re-establishes 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_LAST
.
To configure an application with its class loader mode set to PARENT_LAST
, 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
.
The following issues exist in OracleAS TopLink Mapping Workbench 10g (9.0.4.5):
Section 7.1.6.3, "Refreshing Descriptors with Dependent Classes"
Section 7.1.6.5, "OracleAS TopLink Sessions Editor Preferences"
Section 7.1.6.10, "Improper Set Method for Array Type Attributes"
You cannot map inherited attributes on a descriptor whose superclass has no descriptor. You can select the root descriptor, but cannot map its attributes.
In order to map the project, import the superclass into the project. OracleAS TopLink Mapping Workbench creates a descriptor for the superclass. Then deactivate this descriptor or remove it from the project.
If you change a descriptor to an interface or abstract class in code (outside of OracleAS TopLink Mapping Workbench), when you refresh the class in OracleAS TopLink Mapping Workbench, you may receive an ExternalClassNotFoundException
.
For example: A project contains two descriptors: Employee and EmployeeInterface. Both are classes and Employee extends EmployeeInterface. Outside of OracleAS TopLink Mapping Workbench you edit the EmployeeInterface code to change it to an interface and make Employee implement the interface. When you refresh the classes in OracleAS TopLink Mapping Workbench, you will receive the error.
To avoid this situation, refresh EmployeeInterface first, then refresh Employee.
When you refresh a descriptor, the OracleAS TopLink Mapping Workbench does not refresh dependent classes if they are not included in the OracleAS TopLink Mapping Workbench project.
For example, if you define a descriptor with an after load class and method which is not included in the OracleAS TopLink Mapping Workbench project and you change the after load class outside of the OracleAS TopLink Mapping Workbench, when you refresh the descriptor, the OracleAS TopLink Mapping Workbench does not pick up the change.
To work around this issue, add all dependent classes to the OracleAS TopLink Mapping Workbench project. Because you do not map them, right-click each dependent class and uncheck the Activate Descriptor option. Now when you refresh the project, the OracleAS TopLink Mapping Workbench refreshes both descriptors and dependent classes.
If the path to your JDBC driver(s) contains spaces, then the path must be enclosed in double-quotes in the setenv.cmd
file. For example:
set JDBC_CLASSPATH="C:/Program Files/some directory/driver.jar/"
Before changing any other general preferences (such as the text editor location), you must select a default Look and Feel in the General Preferences dialog and click OK. Then reopen the General Preferences dialog and make any additional changes.
On the Windows platform, if your classpath contains directories with names that have spaces in them, the OracleAS TopLink Mapping Workbench may fail to start with error "Cannot Find Main Class".
If this is the case, consider removing spaces from directory names in the JDBC, Oracle home, and JRE classpaths.
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 start-up. You must edit the workbench.xml
file and change small-icon="false"
to "true"
.
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 cancelled the process, the OracleAS TopLink Mapping Workbench did not overwrite any existing code.
In 10g (9.0.4.5), the OracleAS TopLink Mapping Workbench does not support generating Project Java Source for Descriptors mapped to inner classes.
If you attempt to generate source code from a table with BLOBs, the generated Java code may contain errors in the type definition and method parameters. You must edit the source code to eliminate the errors.
The following issues exist with the OracleAS TopLink Web Client:
If you configure the OracleAS TopLink Web Client with OC4J 10g (9.0.4), ensure the uix2.jar
used by the Web Client is properly referenced. Add the following to the OC4J application.xml
file, where your <ORACLE_HOME>
is OraHome1:
<library path="/OraHome1/jlib/uix2.jar
" />
The following issues exist in the OracleAS TopLink Examples:
The duplicate entries of ibm-application*.xmi
in bmp.ear
cause a Save Failure Exception
when deploying the BMP example on IBM WebSphere 5.0.2. To correct this, comment out the following element inside build.ear
in the build.xml
file:
<metainf dir="${config.dir}"> <include name="ibm-application*.xmi"/> </metainf>
Running the configureExamples.sh
on RedHat Enterprise Server 3.0 may cause a missing class for multipleCopy error. To correct this, modify the build.xml
file to contain the absolute path to the toplink_customtasks.jar
. For example:
<taskdef name="multipleCopy"
classname="org.apache.tools.ant.taskdefs.MultipleCopy"
classpath="<COMPLETE_ABSOLUTE_PATH>
/customtasks.jar"/>
where <COMPLETE_ABSOLUTE_PATH>
= /home/iasuser/mwtesting/ant/lib/toplink_customtasks.jar
This section describes known errors in the documentation. It includes the following topics:
Section 7.2.3, "Configuring the OracleAS TopLink Web Client"
Section 7.2.4, "OracleAS TopLink Mapping Workbench Tutorial"
The Oracle Application Server TopLink Application Developer's Guide incorrectly states that you cannot use batch writing and parameterized SQL together.
The sequencing code examples (Example A-2 and Example A-3) in the Oracle Application Server TopLink Application Developer's Guide are incorrect. Example 3-22 and Example 3-23 illustrate the correct code examples for using sequencing with stored procedures.
In the "Configuring the Web Client" section of the Oracle Application Server TopLink Application Developer's Guide, the correct path to the web.xml
file should be:
<
ORACLE_HOME
>/toplink/config/toplinkwc
.When using the Web Client with OC4J, replace the path indicated in the document:
<
ORACLE_HOME
>/toplink/examples/oc4j/904/server/
with your local <
J2EE_HOME
>
directory.
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.
In Example B-4, the line:
president.addPhoneNumber(homeNumber);
should be:
president.addPhoneNumber(homePhone);
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.