Skip Headers

Oracle® Application Server Release Notes 10g Release 3 (10.1.3) for Linux x86 B25216-01 |
| Home | Contents

Previous | Next |

# 3 General Management and Security Issues

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

- Section 3.1, "General Issues and Workarounds"

- Section 3.2, "Clustering and Replication Issues"

## 3.1 General Issues and Workarounds

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

- Section 3.1.1, "Limited Management Support for Multiple-JVM OC4J Instances"

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

- Section 3.1.3, "Problem Removing a Property from a Native Data Source"

- Section 3.1.4, "Important Restriction When Setting Thread Pool Size on the Thread Pool Configuration Page"

- Section 3.1.5, "Use the Cluster Topology Page to Restart the OC4J Instance"

- Section 3.1.6, "TopLink Sessions Not Available in Application Server Control Console"

- Section 3.1.7, "Unable to Receive MBean Notification Using OPMN to Start or Stop OC4J"

- Section 3.1.8, "Using the Java Server Pages Standard Tag Libraries"

- Section 3.1.9, "Error While Generating Web Service"

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

### 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 UNIX 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

Affected platforms: Linux and Windows

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.

If it is a hierarchical RMD, instead of a fully qualified path use a hierarchical relative reference. If it is a global RMD, use global absolute reference.

## 3.2 Clustering and Replication Issues

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

- Section 3.2.1, "State Replication Framework"

- Section 3.2.2, "Using Oracle Universal Installer Provided Sample Cluster Discovery Address May Inadvertently Cluster Servers"

- Section 3.2.3, "Configuration of Oracle Application Server Clusters"

### 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.