Skip Headers
Oracle® Application Server Release Notes
10g Release 3 (10.1.3.1.0) for Microsoft Windows
B31012-02
  Go To Documentation Library
Home
Go To Table Of Contents
Contents

Previous
Previous
 
Next
Next
 

12 Oracle Containers for J2EE

This chapter discusses release notes for Oracle Containers for J2EE (OC4J) for 10.1.3.1.0. It includes the following topics:

You can access Oracle manuals mentioned in this document at the following URL:

http://www.oracle.com/technology/index.html

12.1 Configuration, Deployment, and Administration Issues and Workarounds

This section describes configuration, deployment, and administration issues for Oracle Application Server Containers for J2EE (OC4J). This section covers the following topics:

For information on configuring OC4J, see the Oracle Containers for J2EE Configuration and Administration Guide for OC4J at:

http://www.oracle.com/technology/index.html

12.1.1 Deprecated Environment Variables KeepWrapperCode, WrapperCodeDir, and DoNotReGenerateWrapperCode

System properties KeepWrapperCode, WrapperCodeDir, and DoNotReGenerateWrapperCode are deprecated.

These options apply only to EJB 2.1 CMP entity beans; they do not apply to session beans, message-driven beans, or EJB 3.0 entities. OC4J generates only one file per EJB 2.1 CMP entity bean. OC4J does not generate any artifacts if you use only EJB 3.0 entities. Because wrappers contain very little content, debugging them is not useful.

For more information, see "Debugging Generated Wrapper Code" in the Oracle Containers for J2EE Enterprise JavaBeans Developer's Guide.

12.1.2 Deprecated System Property ejb.batch.compile

System property ejb.batch.compile is deprecated.

To enable or disable batch compilation, use the orion-application.xml file <orion-application> element batch-compile attribute.

12.1.3 Desupported orion-ejb-jar.xml Attributes

The following orion-ejb-jar.xml file attributes are desupported:

  • max-instances-per-pk

  • min-instances-per-pk

  • disable-wrapper-cache

  • instance-cache-timeout

  • locking-mode="old_pessimistic"


Note:

Do not use these attributes in this release. Doing so will lead to deployment failure.

12.2 Servlet Issues and Workarounds

This section describes release notes for servlets. It covers the following topic(s):

12.2.1 Servlet Invocation by Classname Disabled by Default

In the 10.1.3.x implementation, servlet invocation by class name is not enabled by default. Therefore, in default mode, you must use standard servlet configuration in web.xml before a servlet can be invoked. For example:


  <servlet> 

     <servlet-name>mytest</servlet-name> 

     <servlet-class>mypackage.MyTestClass</servlet-class> 

  </servlet> 

  ... 

  <servlet-mapping> 

     <servlet-name>mytest</servlet-name> 

     <url-pattern>/servlet/mytest</url-pattern> 

  </servlet-mapping> 



Without this configuration, attempts to invoke the servlet will result in a 404 NOT FOUND error. This differs from the default behavior in previous releases, where invocation by class name was enabled.

Alternatively, you can choose to enable invocation by class name when they start OC4J, by setting the http.webdir.enable property as follows:


-Dhttp.webdir.enable=true 

12.2.2 Enabling Access Logging for Web Applications

In releases previous to 10.1.3.1.0, the default value of the access-log attribute of the <web-app> element of *-web-site.xml files was true. As of 10.1.3.1.0, the default value of access-log is false.

If you want to enable access logging, then set access-log to true in the appropriate <web-app> elements.

12.2.3 OC4J 10.1.3.1.0 Honors Session id Value Differently

In 10.1.2.x, If SSL is enabled and a session cookie (a cookie with the name JSESSIONID) is present in the request from the browser, OC4J will honor the value from the cookie over the session id embedded in the SSL stream. In 10.1.3.x, the behavior is reversed, so that OC4J will attempt to honor the value from the SSL stream first.

12.2.4 Exception and Stack Trace No Longer Displayed in HTML Error Page

In previous releases of OC4J, the default behavior when an error occurred in a Web application was to display both the exception and the stack trace in the HTML error page returned to the client.

This default behavior has changed and these details are no longer displayed by default; instead, a generic error message is displayed in the HTML error page. The exception and stack trace details are sent to the log file of the relevant application.

The previous behavior can be restored by setting the development attribute of the <orion-web-app> element to a value of "true" in the orion-web.xml file for the Web application, as in the following example:


<orion-web-app

    jsp-cache-directory="./persistence"

    jsp-cache-tlds="standard"

    temporary-directory="./temp"

    context-root="/myapp"

    development="true">

  ... 

</orion-web-app>



See the "Web Module Configuration Files" appendix in the Oracle Containers for J2EE Servlet Developer's Guide for more information about the development attribute.

12.3 JavaServer Pages (JSP) Issues and Workarounds

This section describes release notes for JavaServer Pages. It covers the following topic(s):

12.3.1 Workaround to View JSP Demo Files

When you are running the JSP demos, if you receive a "Resource not found" exception when you attempt to view .jsp or .java files of the demo, then use the following workaround:

  1. Add the following to the web.xml file located at j2ee/ojspdemos/applications/ojspdemos/ojspdemos-web/WEB-INF/web.xml.

    
      <servlet-mapping> 
    
         <servlet-name>viewsrc</servlet-name> 
    
         <url-pattern>/servlet/ViewSrc/*</url-pattern> 
    
      </servlet-mapping> 
    
     
    
    
  2. Then, restart the OC4J server.

12.3.2 Deprecated JSP Configuration Parameters

The following JSP configuration parameters of the <init-param> element of the global-web-application.xml and orion-web.xml files are deprecated in release 10.1.3.1.0.

  • external_resource

  • extra_imports

  • forgive_dup_dir_attr

  • old_include_from_top

  • setproperty_onerr_continue

  • jsp-print-null

In addition, Oracle plans to remove the following JSP configuration parameters of the <init-param> element of the global-web-application.xml and orion-web.xml files in a future release. These parameters are the only way to implement their behaviors in release 10.1.3.1.0. If you implement their behaviors, you will have to modify your code when you upgrade to a release where these parameters are removed.

  • xml_validate

  • no_tld_xml_validate

12.4 EJB Issues and Workarounds

This section describes release notes for EJBs. It covers the following topics:

12.4.1 EJB 3.0 Support

In release 10.1.3.1.0, OC4J supports all but a small subset of the functionality specified in the final EJB 3.0 specification.

You may need to make code changes to your EJB 3.0 OC4J application when you upgrade your OC4J instance to 10.1.3.1.

For information on migrating a 10.1.3.0 JPA preview application to 10.1.3.1 JPA, see "Migrating From 10.1.3.0 TopLink JPA Preview Persistence" in the Oracle Containers for J2EE Enterprise JavaBeans Developer's Guide.

12.4.2 EJB 3.0 Interceptors Supported in JDK 1.5 Only

Most EJB 3.0 session bean and message-driven bean features are supported with deployment descriptors with JDK 1.4. However, you cannot use EJB 3.0 interceptors in JDK 1.4. This is due to the fact that InvocationContext method getContextData() returns a JDK 1.5 generic type.

12.4.3 Remote EJB 3.0 Stateful Session Bean Does Not Failover When Using Extended Persistence

The EJB 3.0 specification states: "Propagation of persistence contexts only applies within a local environment. Persistence contexts are not propagated to remote tiers."

In a clustered OC4J environment, this means that an EJB 3.0 stateful session bean with a remote interface using an extended persistence context does not failover.

To work-around this limitation, you must configure your stateful session bean to use the ejbPassivate callback to null out any references to entities managed in the extended persistence context and then re-establish them in the ejbActivate callback.

12.4.4 Orion CMP Is Deprecated

The Orion persistence manager is deprecated. Oracle recommends that you use OC4J and the TopLink persistence manager for new development. Using the TopLink migration tool, you can migrate an existing OC4J application that uses EJB 2.0 entity beans with the Orion persistence manager to use EJB 2.0 entity beans with the TopLink persistence manager.

For more information, see "Migrating OC4J Orion Persistence to OC4J TopLink Persistence" in the Oracle TopLink Developer's Guide.

12.5 Web Services Issues and Workarounds

This section describes release notes for Web Services. It covers the following topics:


Note:

You can exercise your Web service and pinpoint errors by running it with a client created by WebServicesAssembler or JDeveloper. For more information on creating clients, see the Oracle Application Server Web Services Developer's Guide and the JDeveloper online help.

12.5.1 Configuration Issues

This section describes problems that might arise as a result of incorrect configuration:

12.5.1.1 Installation Fails in Web Services Inspection Language (WSIL) Configuration

The Ant scripts used to install the WSIL-App component are sensitive to certain external configuration options. If Ant is not configured correctly, then the WSIL install might fail with a NoClassDefFound error.

When deploying the WSIL application using Ant, you must be sure that you are using the Ant distribution that is provided with OracleAS Web Services 10g. This release contains all of the Ant tasks needed for deployment.

For more information about the contents and functionality of the Ant distribution that is provided with OracleAS Web Services 10g, see the Oracle Containers for J2EE Deployment Guide.

12.5.2 WebServicesAssembler Issues

This section describes problems that might arise in the operation of WebServicesAssembler.

12.5.2.1 Multiple Service Elements in Top Down Web Service Assembly

WebServicesAssembler does not support multiple service elements for the topDownAssemble command.

12.5.2.2 Relative Path Names Are Not Supported in WSDL or XSD Imports

WebServicesAssembler does not support relative path names, such as the following, in WSDL or XSD files.

<import location="../../file" ...>

As a work around use the WebServicesAssembler fetchWsdl command or the fetchWsdlImports argument. The fetchWsdl command is used in top down Web service assembly to copy the base (or top level) WSDL file and all of its imported and included WSDLs and schemas into a specified output directory. The boolean fetchWsdlImports argument indicates whether you want to make a local copy of the WSDL and everything it imports.

12.5.2.3 WebServicesAssembler Requires Schema Imports in the WSDL to Be Qualified by the schemaLocation Attribute

The schemaLocation attribute provides hints to a schema processor about where to find the schema for one or more namespaces. Values are provided as a list of URIs, separated by white-space characters. URIs must appear in pairs—first the namespace URI, then the location of the schema document for that namespace.

To process a schema successfully, WebServicesAssembler requires schema imports to be qualified by the schemaLocation attribute.

The following example specifies the schema location for the WS-I Basic Profile.


<xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd" schemaLocation="http://ws-i.org/profiles/basic/1.1/xsd"/>

12.5.3 WSDL-Related Issues

This section describes problems that might arise in how OracleAS Web Services interprets WSDL files.

12.5.3.1 Support for Globalization Support (NLS) Characters in the WSDL

Globalization Support (also known as" NLS" or "National Language Support") characters that occur in names in the WSDL, such as in the name of a service, port type, operation, binding or port, are not supported. This may also result in errors on the Web Services Test Page.

12.5.3.2 Services that use Multiple Message Formats Cannot be Deployed in a Single Web Application

Multiple message formats, such as RPC-encoded and document-literal, are not supported in a single Web application.

To avoid this problem, ensure that your Web application defines only one message format.

12.5.4 Schema Features Limitations

This section describes Web Services schema features limitations. It covers the following topics:

12.5.4.1 RPC Encoded Does Not Support Complex Types With Attributes

If the schema contains a binding with an RPC-encoded message format and WebServicesAssembler encounters a complexType with attributes, then it will throw an "unsupported type encountered" error message.

12.5.4.2 XML Types xsd:choice and xsd:group Are Not Supported for Proxy or Top Down Web Service Assembly

If you are assembling Web services to- down or assembling Web service proxies, WebServicesAssembler cannot consume WSDLs that contain the xsd:choice or xsd:group XML types. If you want to consume a WSDL that contains these XML types, set the WebServicesAssembler dataBinding argument to false and code the SOAPElement so that the payload conforms to the schema definition in the WSDL file.

12.5.5 Test Page Issues

This section describes Web Services test page issues. It covers the following topics:

12.5.5.1 Recursive Schema Definitions Are Not Supported in the Web Services Test Page

Services that use recursive schema definitions are not fully supported from the Web Services Test Page. The HTML form in the Test Page allows you to add a recursive element, but when the message is sent, the recursive elements will be empty. An example of a recursive schema definition is shown below, where the element with the name of list has a reference back to itself:


<xs:element name="list">

      <xs:complexType>

          <xs:sequence>

                <xs:element ref="list" minOccurs="0" maxOccurs="unbounded"/>

          </xs:sequence>

          <xs:attribute name="name" type="xs:string" use="required"/>

          <xs:attribute name="value" type="xs:string"/>

      </xs:complexType>

 </xs:element>

 

If you wish to construct a message in the Test Page that contains a recursive element, then you must select the XML Source radio button and enter the contents of the message manually.

12.5.5.2 Formatted XML Content Returned from a Service Invocation on the Web Services Test Page May Be Shown Incorrectly

The returned content on the Formatted XML Test Page may be missing or display incorrectly if it includes a string containing XML entities for greater than (&gt;) or less than (&lt;) characters.

To check the content of the returned content, switch to the XML Source view.

12.5.5.3 Test Page May Not Show Errors Originating from an Invalid Web Service WSDL

If the Web Services Test Page invokes a service with an invalid WSDL, then you may see an empty or broken page. Neither the Test Page nor the logs will display any WSDL errors when such a service is invoked.

You can pinpoint WSDL errors in a Web service in any of the following ways:

  • Generate a service client with JDeveloper or with WebServicesAssembler.

  • Use the WSDL validation command in JDeveloper.

  • Use the WS-I validation tool in JDeveloper.

12.5.5.4 Invalid Values in a Web Services Test Page Form Field May Result in an "Unable to get header stream in saveChanges" Error

If you submit an invalid value in one of the Web Services Test Page's form fields, the field will be highlighted in red. If you submit the Test Page with an invalid value, then you may receive the following response:

Unable to get header stream in saveChanges

To avoid this error, correct invalid entries before submitting the page for execution.

12.5.5.5 Web Services Test Page Does Not Support Globalization Support (NLS) Characters in User Name or Password

If you include Globalization Support (also known as "NLS" or "National Language Support") characters in a user name or password for authentication in the Web Services Test Page, then authentication may fail with the following message:

Unable to authenticate <username>

In addition, the Test Page displays Globalization Support characters in the user name as "?" (question marks).

12.5.5.6 Web Services Test Page Does Not Support the Schema Features: group, choice, union, or Derived Simple Types as Attributes

If the Web Services Test Page encounters any of the following schema features: group, choice, union, or derived simple type as an attribute, then the HTML form will not display input controls for them.

For example, if the schema contains the following code:


<xsd:element name="workflowContext" type="workflowContextType"/>

   <xsd:complexType name="workflowContextType">

     <xsd:choice>

       <xsd:element name="credential" type="credentialType"/>

       <xsd:element name="token" type="xsd:string"/>

     </xsd:choice>

   </xsd:complexType>



The HTML form will not display an input control for workflowContext.

As a work around, you can select the XML Source radio button and enter the message content manually.

12.5.5.7 Test Page Stress Test Report May Be Displayed Incorrectly Under Firefox or Mozilla

If you run the Web services stress test from the Test Page in the Firefox or Mozilla browsers, then the report that is returned may not show correct aggregate values. To obtain the correct aggregate values, use the Internet Explorer browser instead.

12.5.6 Deployment Issues

This section describes problems that might arise during Web services deployment:

12.5.6.1 EJB 2.1 Web Services Deployed with an Invalid oracle-webservices.xml File

If an EJB 2.1 Web service is not available after you deploy it, then check whether the service deployment descriptor file, oracle-webservices.xml, is valid. It is possible to deploy a service with invalid resource references without an alert being sent.

12.5.7 Other Issues

This section describes other problems that might arise during the operation of OracleAS Web Services:

12.5.7.1 Get NodeLists by Using getFirstChild and getNextSibling Instead of getChildNode

You may see a performance degradation when iterating over a NodeList obtained by using node.getChildNode(). This degradation will only be significant for a NodeList with a very long length.

Instead of using the NodeList obtained by node.getChildNode(), the current Oracle XDK implementation offers an optimization of navigating a list of child nodes by using node.getFirstChild() and looping over node.getNextSibling(). The following code sample illustrates this technique.


Node n = ...;

if (n.hasChildNodes()) {

   for(Node nd=n.getFirstChild(); nd!=null; nd=nd.getNextSibling()){

         nd.getValue(); // do something with nd

      }

}

12.6 OC4J Services Issues and Workarounds

This section describes release notes for OC4J Services. OC4J Services include: Java Naming and Directory Interface (JNDI), Oracle Enterprise Messaging Service (OEMS), Data Sources, Remote Method Invocation (ORMI and IIOP), OC4J Transaction Support, Java Object Cache (JOC), XML Query Service (XQS), and Application Client Container.

The section contains release notes for the following OC4J Services:

12.6.1 JNDI

This section describes release notes for JNDI. It covers the following topics:

12.6.1.1 Spaces in Application Names

In this release, when accessing an application through OPMN using ORMI, an application's name cannot contain spaces. For example:


opmn:ormi://<host>:<port>:home/my deploy



If the application name contains spaces, the following exception is thrown:


StrangeAppName not found



Remove any spaces in the name of the application to work around this issue.

12.6.1.2 Wrong Provider URL in the jndi.properties File

In this release, when you deploy a client JAR to a clustered server, the jndi.properties file written to the /applications/appname/appname_client directory does not have the correct provider URL to connect to one of the clustered instances. The correct provider URL for accessing an application instance in a cluster is:


java.naming.provider.url=opmn:ormi://myhost:6003:home/appname



The example assumes the OPMN port is 6003 and the instance name is home.

12.6.1.3 New Package Names for RMI and Application Client Initial Context Factories

In this release, the following InitialContext factories are deprecated:

  • com.evermind.server.RMIInitialContextFactory

  • com.evermind.server.ApplicationClientInitialContextFactory

  • com.oracle.iiop.server.IIOPInitialContextFactory

The new package names for the initial context factories are:

  • oracle.j2ee.rmi.RMIInitialContextFactory

  • oracle.j2ee.naming.ApplicationClientInitialContextFactory

  • oracle.j2ee.iiop.IIOPInitialContextFactory

12.6.1.4 Deprecated JNDI Environment Variables

In this release, the JNDI environment variables dedicated.connection, dedicated.rmicontext, and LoadBalanceOnLookup are deprecated.

To configure replication-based load balancing, use environment variable oracle.j2ee.rmi.loadBalance with the settings that Table 12-1 lists.

Table 12-1 Settings for Environment Variable oracle.j2ee.rmi.loadBalance

Setting Description

Client

The client interacts with the OC4J process that was initially chosen at the first lookup for the entire conversation (Default)

Context

The client goes to a new server when a separate context is used (similar to deprecated dedicated.rmicontext).

Lookup

The client goes to a new server for every lookup.


12.6.2 Oracle Enterprise Messaging Service (OEMS)

This section describes release notes for the Oracle Enterprise Messaging Service (OEMS). It covers the following topics:

12.6.2.1 Error Starting OC4J after OracleASjms is Undeployed

In this release, additional changes are necessary to start OC4J when the default instance of the OracleASjms resource adapter is undeployed.

The following additional changes must be made:

  • In $J2EE_HOME/config/application.xml comment out the following lines:

    
    <web-module id="jmsrouter_web" path="../../home/applications/jmsrouter.war" />
    
    <ejb-module id="jmsrouter_ejb" path="../../home/applications/jmsrouter-ejb.jar"
    
     />
    
    
    
    
  • In $J2EE_HOME/config/default-web-site.xml, comment out the following line:

    
      <web-app application="default" name="jmsrouter_web" root="/jmsrouter"
    
       load-on-startup="true" />
    
    
    
    

If these changes are made, OC4J may be started, but the OracleAS JMS Router will not work.

To reinstate the JMS Router:

  1. Fully redeploy the OracleASjms resource adapter instance.

  2. Uncomment the lines mentioned above in $J2EE_HOME/config/application.xml and $J2EE_HOME/config/default-web-site.xml.

When OC4J is restarted, the OracleAS JMS Router should be available.

12.6.2.2 OC4J May Fail to Restart after Abnormal OC4J Shutdown

There are situations where you may encounter OC4J JMS Server startup problems, such as the following, after an abnormal OC4J shutdown:


(SEVERE) Failed to set the internal configuration of the OC4J JMS Server with:

XMLJMSServerConfig[file:/D:/oas0104_web/j2ee/BLUE/config/jms.xml]

WARNING: Application.setConfig Application: default is in failed state as

initialization failed.



If this occurs, check that no other OC4J JMS Server is running and using the same persistence files. Then remove any .lock files from the following directory:


ORACLE_HOME/j2ee/instance_name/persistence 



And try restarting again.

If problems persist, confirm that the jms.xml file is valid.

If problems still persist, remove the jms.state file from the persistence directory and try again, but be aware that removing this file may result in loss of transaction information. For additional information, see the section "Abnormal Termination" in the "Oracle Enterprise Messaging Service" chapter of the Oracle Containers for J2EE Services Guide.

12.6.2.3 XA-styled JMS Connections Not Supported Between OC4J Versions

In this release, Oracle Application Server does not support XA-styled JMS connections with Oracle Application Server 10.1.2.

12.6.2.4 JMS Auto-Enlisting in Global Transactions is Desupported

For backward-compatibility reasons, it is still possible (but discouraged) to use the auto-enlisting feature in this release. The feature is disabled by default. Applications that previously relied on the auto-enlist feature to enlist XA and non-XA JMS connection into a global transaction, must now set the oc4j.jms.pseudoTransactionEnlistment configuration property to true in the jms.xml configuration file.

12.6.3 Data Sources

This section describes release notes for Data Sources. It covers the following topics:

12.6.3.1 The oracleFatalError method is no Longer Available

The com.evermind.sql.DbUtil.oracleFatalError() method is no longer available for retrieving fatal errors (e.g. during RAC failover scenarios). The method has been replaced by the oracle.oc4j.sql.DataSourceUtils.isOracleFatalError() method. This is an internal method that is not intended for public use and should only be used for backwards compatibility. The method should not be used for new development.

12.6.3.2 OracleConnectionCacheImpl Deprecated

The class oracle.jdbc.pool.OracleConnectionCacheImpl has been deprecated because it does not support multiple schemas. When defining the factory-class for connection factories and data-source-class for native data sources, use oracle.jdbc.pool.OracleDataSource.

12.6.3.3 Orion CMP Fails Due to JDBC Driver Clash

Oracle CMP only works correctly with the default JDBC driver that is supplied with this release. Problems will arise if another version of the Oracle JDBC driver is added to an OC4J instance, such as through the OC4J Shared Library feature, and configured for use by the application using Orion CMP.

When using Orion CMP, always use the Oracle JDBC driver that is shipped with OC4J.

12.6.4 OC4J Transaction Support

This section describes release notes for OC4J Transaction Support. It covers the following topic:

12.6.4.1 The In-DB Coordinator Is Deprecated

The use of the in-database transaction coordinator by OC4J is deprecated as of release 10.1.3. Oracle recommends that the middle-tier transaction coordinator be used going forward.

12.6.5 RMI

This section describes release notes for OC4J Remote Method Invocation (RMI and IIOP). It covers the following topics:

12.6.5.1 RMI Recommendations

In this release, note the following recommendations:

  • The RMI port is sometimes not released immediately.

  • Old tunneling is deprecated. Use the new URL format, as described in the "Configuring ORMI Tunneling through HTTP" section of the "RMI" chapter of the Oracle Containers for J2EE Services Guide.

12.6.5.2 Incorrect "Provider URL..." Error Message

In certain cases when there is something wrong with the provider URL format, the following incorrect error message is displayed:

" Provider URL must be of the form [opmn:]corbaname::host:port#/appname"

The URL format in the error message is incorrect. The correct URL format is:

[opmn:]corbaname::host:port#[instancename#]appname

12.6.6 XQS

This section describes release notes for the OC4J XML Query Service (XQS). It covers the following topics:

12.6.6.1 Updated XQS Client API

The XQS Client API now includes the XQSFactory class. The factory provided by this class is used to create instances of the new main XQS client interfaces:

  • oracle.xqs.client.QueryParameterI

  • oracle.xqs.client.XQSFacadeI

The previous classes have been deprecated:

  • oracle.xds.client.QueryParameter

  • oracle.xds.client.XQSFacade

12.6.6.2 SQL Usage has Changed

The <xqsview-source> element is now used to define SQL queries for database access. The <wsdl-source> element is no longer used. The <xqsview-source> element is defined as part of a SQL-based XQS view.

12.6.7 Application Client Container

This section describes release notes for OC4J Application Client Container. It covers the following topics:

12.6.7.1 Custom Security Callback Handler Fails

In this release, when implementing a custom security callback handler for an application client, the handler must set all three callback objects (NameCallback, PasswordCallback, and TextInputCallback). If you do not set all three objects, a java.lang.NullPointerException is given when trying to instantiate the remote connection to the OC4J server and the JNDI context setup fails.

12.7 J2EE Connector Architecture (J2CA) Issues and Workarounds

This section describes release notes for J2EE Connector Architecture (J2CA). It covers the following topics:

12.7.1 New Class Loader Architecture for Standalone Resource Adapters

In this release, standalone resource adapters are no longer added to the default application's class loader (except for the internal JMS and data source resource adapters). Instead, standalone resource adapters are added as shared libraries that (by default) are available to all applications. The new architecture allows multiple versions of a standalone adapter to be deployed in OC4J. See the Oracle Containers for J2EE Resource Adapter Administrator's Guide for detailed information.

12.7.2 Deployment Dependencies between Standalone Resource Adapters

In this release, a standalone resource adapter can only import previously deployed standalone resource adapters. Therefore, a standalone resource adapter must be deployed prior to any dependent standalone resource adapter. This is different than the behavior in 10.1.3 where a standalone resource adapter can lookup and use a standalone resource adapter which was deployed after itself.

12.7.3 Class Not Found Exceptions

Starting in this release, resource adapters that rely on the default class loader to resolve non shared-library dependencies at runtime will fail. Dependencies on libraries and other standalone resource adapters are configured explicitly by importing shared libraries. A standalone resource adapter's proprietary deployment descriptor (oc4j-ra.xml) is used to import shared libraries. See the Oracle Containers for J2EE Resource Adapter Administrator's Guide for detailed information on importing shared libraries.

12.7.4 Restart of Default Application Required After Redeploying or Undeploying Internal Resource Adapters

For the Oracle Application Server 10.1.3.1.0 implementation, you no longer need to restart the default application after deploying, redeploying, undeploying standalone resource adapters in an OC4J instance. You should restart any dependent J2EE applications that take advantage of the standalone resource adapter.

However, there are cases where a restart of the default application is still required. Specifically, if you perform a deployment operation on the adapters for accessing Oracle Enterprise Messaging Service (OEMS) file and memory based provider (OracleASjms.rar) or the OEMS database persistence provider (ojms.rar), then you will be required to restart the default application.

These adapters are Oracle-internal resource adapters for JMS connectivity and have administrative tasks that may require additional deployment and redeployment operations.

12.8 General OC4J Issues and Workarounds

This section discusses general OC4J issues:

12.8.1 OutOfMemoryError on Multiple Restarts of Standalone OC4J through Application Server Control

If you restart a standalone OC4J instance multiple times through Application Server Control, you may encounter the error java.lang.OutOfMemoryError, reported on the server console, and the OC4J instance will be unusable.

The workaround is to manually stop and restart the OC4J instance.