Skip Headers
Oracle® Application Server Release Notes
10g Release 3 (10.1.3) for Microsoft Windows (64-Bit) on Intel Itanium
B28115-01
  Go To Documentation Library
Home
Go To Table Of Contents
Contents

Previous
Previous
 
Next
Next
 

3 General Management and Security Issues

This chapter describes management and security issues associated with Oracle Application Server. It includes the following topics:

3.1 General Issues and Workarounds

This section describes general management and security issues. It includes the following topics:

3.1.1 Limited Management Support for Multiple-JVM OC4J Instances

With Oracle Application Server 10g Release 3 (10.1.3), you can configure OC4J to use multiple Java Virtual Machines (JVMs) by setting the numprocs argument in the opmn.xml file to a number greater than one (1).

For example:

<ias-component id="OC4J">   <process-type id="home" module-id="OC4J" status="enabled">        .
        .
        .
      <process-set id="default_group" numprocs="2"/>
   </process-type>
</ias-component>

However, this feature is not supported by Oracle Enterprise Manager 10g Application Server Control (Application Server Control). Instead, when the numprocs argument is set to more than one (1), you must use command line tools to manage your Oracle Application Server environment. For example, you must use:

  • admin_client.jar for deployment, re-deployment, undeployment, start and stop applications, and shared library management

  • Apache Ant for deployment, redeployment, and undeployment of your applications

  • opmnctl commands for starting, stopping, and other life cycle operations on the Oracle Application Server

For all other administrative configuration changes, if you are using multiple JVMs, you must shut down Oracle Application Server, manually configure the relevant XML files, and then restart Oracle Application Server.

3.1.2 OC4J Restart Required When Changing the Name or URL of a JDBC Data Source or Connection Pool

If you modify the name or the connection URL of a JDBC data source or JDBC connection pool, then you must restart the OC4J instance; otherwise the changes you make will not take effect.

For example, if you use the JDBC Resources page in the Application Server Control Console to change the connection URL of a JDBC connection pool, you will not be prompted to restart the OC4J instance, but the restart is required. If you do not restart the OC4J instance, any deployed applications that require the data source will attempt to use the original connection URL.


See Also:

"Managing Data Sources and JDBC Connection Pools" in the Application Server Control online help

3.1.3 Problem Removing a Property from a Native Data Source

If you use the Application Server Control Console to remove a property from a native data source, Enterprise Manager does not remove the property from the underlying connection factory. As a result, the property (and its current value) is not changed.

This is expected behavior. To set a value on the underlying connection factory, use the setProperty operation of the JDBCDataSource MBean for the native Data Source to do this. You can use the MBean Browser, which is available in the Application Server Control Console, to invoke an MBean operation.


See Also:

"About the MBean Browser" in the Application Server Control online help

3.1.4 Important Restriction When Setting Thread Pool Size on the Thread Pool Configuration Page

By default, the Thread Pool Configuration page in the Application Server Control Console shows a minimum thread pool size of one (1) for an unconfigured thread pool. This value is expected, but do not click OK on this screen with a minimum thread pool size set to one (1) for any thread pool.

If you are configuring OC4J thread pools using the Thread Pool Configuration Administration Task, be sure to replace the default value for the minimum thread pool size to a number that is greater than 10; otherwise, you will not be able to login to the Application Server Control Console the next time you restart the OC4J instance.

In the event that you set the minimum thread pool size to 1 and then click OK on the Thread Pool Configuration page, and as a result, you cannot access the Application Server Control Console, do the following:

  1. Stop the OC4J instance using the command line.

    For example, on a Windows system, in a managed, Oracle Application Server environment, enter the following command:

    ORACLE_HOME/opmn/bin/opmnctl stopall
    

    See Also:

    "Starting and Stopping" in the Oracle Application Server Administrator's Guide

    "Starting and Stopping OC4J" in the Oracle Containers for J2EE Configuration and Administration Guide


  2. Edit the server.xml file so that all thread pools are configured with a minimum pool size that is greater than 10.

    The server.xml for the OC4J instance is located in the following directory:

    ORACLE_HOME\OC4J_instance_name\config\
    
    

    For example:

    ORACLE_HOME\home\config\
    
    

Alternatively, to reset thread pool configuration to the default to factory settings, remove the <global-thread-pool> element and the <work-manager-thread-pool> element from the server.xml file.

3.1.5 Use the Cluster Topology Page to Restart the OC4J Instance

Some OC4J configuration pages in the Application Server Control Console (including the JTA Administration and Oracle Internet Directory Association pages) require a restart of the OC4J instance for changes to take affect.

If you use the Restart link, which is displayed after applying changes to one of these pages, the operation may take a few minutes because it performs an internal restart of the OC4J instance. Instead of using the Restart link, Oracle recommends that users navigate to the Cluster Topology page, select the affected OC4J instance, and then click Restart to perform a full restart of the OC4J instance. In a standalone OC4J environment, Oracle recommends that users use the command line to restart the OC4J instance.

3.1.6 TopLink Sessions Not Available in Application Server Control Console

If the TopLink Sessions for a TopLink-enabled application are not available in Application Server Control Console, check to be sure the TopLink session is configured to create the MBeans at login time. This is done by ensuring that the application has a serverPlatform class defined, and that the ServerPlatform class has its is RuntimeServicesEnabled flag enabled.

For Oracle Application Server 10g Release 3 (10.1.3), you should be using the following platform class, which can be set in the sessions.xml or through the session API:

oracle.toplink.platform.server.oc4j.Oc4j_10_1_3_Platform

When developing a TopLink-enabled application using Oracle JDeveloper, make sure to use version 11 or higher.


See Also:

"Configuring the Server Platform" in the Oracle TopLink Developer's Guide

3.1.7 Unable to Receive MBean Notification Using OPMN to Start or Stop OC4J

You will not be able to receive notification from the ias:j2eeType=J2EEServer,name... MBean entity if you start or stop Oracle Containers for J2EE (OC4J) using OPMN. This happens using either the Application Server Control or the opmnctl stop or opmnct start command from the command line.

There is presently no workaround for this issue.

3.1.8 Using the Java Server Pages Standard Tag Libraries

The Java Server Pages Standard Tag Library (JSTL) makes use of Jaxp 1.2 classes that are packaged with Java Developer Kit 1.4.

Oracle Application Server 10g Release 3 (10.1.3) makes use of JDK 1.5 which uses Jaxp 1.3 classes. However, the JSTL still requires the Jaxp1.2 classes. If you run the JSTL with XML related tags in JDK 1.5 you may receive an error message similar to:

: missing class org.apache.xpath.encounter failure.

To avoid JSTL failure, include the xalan.jar file in the required .war file. Add the xalan.jar file into your \WEB-INF\lib directory with the .war file and then re-package.

For more information refer to the JSTL release notes at:

http://java.sun.com/webservices/docs/1.6/jstl/ReleaseNotes.html.

3.1.9 Error While Generating Web Service

When generating a Web Service from a stored procedure including XSL transformation, and returned data contain non-English characters, an error will be thrown as follows:

java.sql.SQLException: Invalid UTF8 encoding. 

To workaround around this issue, in the oracle\j2ee\ws\tools\wsa\db\webservices10literal.properties file of ORACLE_HOME\webservices\lib\wsa.jar home, modify:

org.w3c.dom.Document _tmpDocument_ =db.parse(%1.getclobval().getAsciiStream());

to:

db.parse(new org.xml.sax.InputSource(__jRt_0.getclobval().getCharacterStream()));

3.1.10 Problem with Deployment of non-English Character Java Server Pages

When you deploy an application with non-English page character set Java Server Pages (JSPs) using a Web browser, accessing the JSPs leads to corresponding modification to the encoding setting of the Java-compiler. However, if you deploy applications which use the Java-compiler to compile auto-generated codes containing non-English characters (for example, an CMP application containing non-English characters as column names), an exception will be thrown as follows:

@ com.evermind.compiler.CompilationException: Syntax error in source or compilation failed. 

To workaround this problem:

  1. Shutdown OC4J

  2. Remove encoding="<SOME-ENCODING>" from the <java-compiler> element in the ORACLE_HOME\j2ee\home\comfig\server.xml file.

  3. Restart OC4J.

3.1.11 RMD Conditional Does Not Fully Evaluate

As documented in the Oracle Process Manager and Notification Server Administrator's Guide and functional specifications for Dynamic Resource Management (DRM), a Resource Management Directive (RMD) conditional can have a fully qualified path. However, the conditional may not evaluate at all. It may fail to trigger any action or exception even though the opmn.xml file is valid.

RMD definitions can be either:

  • Hierarchical: if defined at the ias-instance level or lower. Hierarchical RMDs assume an association within the OPMN configuration components in which they are defined.

  • Global: if defined at the process-manager level. Global RMDs require explicit OPMN component specifications.

If you are referencing a hierarchical RMD, instead of a fully qualified path use a hierarchical relative reference.

For example, if the average request time is greater than 500 milliseconds for at least 60 seconds and there are less then 4 processes running for the process-set at which the hierarchical RMD was configured for OC4J, you would use the following in the opmn.xml file:

([process].avgReqTime > 500 {duration(60)})&([process-set].numProcs < 4)

If you are referencing a global RMD use a global absolute reference.

For example, if the heap size of a Java Virtual Machine (JVM) has exceeded 500 MBs, you would use the following in the opmn.xml file:

[process-set=home][process].heapSize > 500000

3.2 Clustering and Replication Issues

This section describes clustering and replication issues. It includes the following topics:

3.2.1 State Replication Framework

The state replication framework that is used by Oracle Application Server has been upgraded with several fixes that resolve multicast state replication issues and enable redeployment of running applications that use the framework.

Before deploying applications using the state replication framework in a production environment, go to OracleMetaLink (http://metalink.oracle.com) and download and apply the required patch for Bug 4685049.

3.2.2 Using Oracle Universal Installer Provided Sample Cluster Discovery Address May Inadvertently Cluster Servers

Oracle Universal Installer provides an example cluster discovery address as part of the advanced installation option. The provide example discovery address is 225.0.0.1:6789. This is not a recommended address; rather it is an example intended to provide the type of cluster discovery address users may ask for from their network administrator.

Because the cluster configuration of Oracle Application Server is fully dynamic it is possible for installations using the example cluster discovery address (225.0.0.1:6789) to be inadvertently clustered with other servers installed with the same example cluster discovery address.

The cluster discovery address of a specific Oracle Application Server instance can be set from the command line using the following opmnctl command:

> %ORACLE_HOME\opmn\bin\opmnctl config topology update discover=<cluster config address> 

For example, to update a cluster discovery address in a specific Oracle Application Server instance to be 225.0.0.1:9876, the command would be:

> %ORACLE_HOME\opmn\bin\opmnctl config topology update discover="*225.0.0.1:9876" 

Details on configuring topologies and the cluster discovery address can be found in Chapter 8, "Configuring and Managing Clusters" of the Oracle Containers for J2EE Configuration and Administration Guide.

3.2.3 Configuration of Oracle Application Server Clusters

Oracle Application Server instances can be grouped together in clusters using the ORACLE_HOME\bin\opmnassociate command line utility or explicitly using the more comprehensive ORACLE_HOME\opmnctl command line tool.

Additional information on post-installation topology and cluster configuration can be found in Chapter 8, "Configuring and Managing Clusters"" of the Oracle Containers for J2EE Configuration and Administration Guide.