OC4J Configuration and Administration Guide
OC4J Configuration and Administration Guide
October 2006
Oracle Containers for J2EE Configuration and Administration Guide, 10g (10.1.3.1.0)
B28950-01
Contributors: Bryan Atsatt, Ellen Barnes, Julie Basu, Steve Button, Olivier Caudron, Jose Alberto Fernandez,
Lars Ewe, Marcelo Goncalves, Sumathi Gopalakrishnan, Ping Guo, Hal Hildebrand, James Kirsch, Sunil
Kunisetty, Clement Lai, Mike Lehmann, Phlippe Le Mouel, Angie Long, Sharon Malek, Sheryl Maring,
Kuassi Mensah, Jasen Minton, Rama Notowidigdo, John O'Duinn, Debu Panda, Shiva Prasad, Chaya
Ramanujam, Vinay Shukla, Sanjay Singh, Gael Stevens, Kenneth Tang, Helen Zhao, Frances Zhao, Serge
Zloto
The Programs (which include both the software and documentation) contain proprietary information; they
are provided under a license agreement containing restrictions on use and disclosure and are also protected
by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly,
or decompilation of the Programs, except to the extent required to obtain interoperability with other
independently created software or as specified by law, is prohibited.
The information contained in this document is subject to change without notice. If you find any problems in
the documentation, please report them to us in writing. This document is not warranted to be error-free.
Except as may be expressly permitted in your license agreement for these Programs, no part of these
Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose.
If the Programs are delivered to the United States Government or anyone licensing or using the Programs on
behalf of the United States Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data
delivered to U.S. Government customers are "commercial computer software" or "commercial technical data"
pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As
such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation
and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license
agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial
Computer Software—Restricted Rights (June 1987). Oracle USA, Inc., 500 Oracle Parkway, Redwood City,
CA 94065
The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently
dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup,
redundancy and other measures to ensure the safe use of such applications if the Programs are used for such
purposes, and we disclaim liability for any damages caused by such use of the Programs.
Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
The Programs may provide links to Web sites and access to content, products, and services from third
parties. Oracle is not responsible for the availability of, or any content provided on, third-party Web sites.
You bear all risks associated with the use of such content. If you choose to purchase any products or services
from a third party, the relationship is directly between you and the third party. Oracle is not responsible for:
(a) the quality of third-party products or services; or (b) fulfilling any of the terms of the agreement with the
third party, including delivery of products or services and warranty obligations related to purchased
products or services. Oracle is not responsible for any loss or damage of any sort that you may incur from
dealing with any third party.
Contents
iii
Accessing the Application Server Control Console in Oracle Application Server................... 3-2
Functional Overview of the Application Server Control Console Interface ............................. 3-2
The admin_client.jar Command Line Utility...................................................................................... 3-3
The admin.jar Command Line Utility.................................................................................................. 3-4
The oc4j Executable Scripts .................................................................................................................... 3-4
Oracle Process Manager and Notification Server (OPMN) ............................................................. 3-5
Changing the oc4jadmin Account Password ...................................................................................... 3-6
iv
Understanding the admin_client.jar Syntax and URI Specification ........................................... 6-2
Performing Operations on a Group of OC4J Instances Within a Cluster ........................... 6-3
Performing Operations on a Specific OC4J Instance ............................................................. 6-4
Performing Operations on a Standalone OC4J Server........................................................... 6-4
Validating a URI.......................................................................................................................... 6-5
Downloading and Extracting the Remote Administration Client .............................................. 6-5
Printing Usage Text to the Console ................................................................................................. 6-6
Enabling Logging ............................................................................................................................... 6-7
Deploying an Archive ............................................................................................................................. 6-7
Deploying a J2EE Application (EAR).............................................................................................. 6-8
Deploying a J2EE Application from a Remote Client................................................................... 6-9
Deploying a Standalone Web Module (WAR)............................................................................ 6-10
Deploying a Standalone Resource Adapter (RAR) .................................................................... 6-11
Using a Script File for Batch Deployment ................................................................................... 6-12
Binding Web Modules to a Web Site After Deployment .............................................................. 6-12
Bind All Web Modules to a Single Web Site ............................................................................... 6-13
Bind a Specific Web Module to a Specific Web Site and Set the Context Root ...................... 6-13
Redeploying an Archive ...................................................................................................................... 6-13
Undeploying an Archive...................................................................................................................... 6-14
Undeploying an EAR or Standalone WAR ................................................................................. 6-14
Undeploying a Standalone RAR ................................................................................................... 6-14
Updating Modified Classes in a Deployed EJB Module............................................................... 6-15
Creating and Managing Shared Libraries ........................................................................................ 6-15
Installing a Shared Library ............................................................................................................ 6-15
Modifying an Existing Shared Library......................................................................................... 6-17
Viewing the Contents of a Shared Library .................................................................................. 6-18
Listing All Shared Libraries........................................................................................................... 6-18
Removing a Shared Library........................................................................................................... 6-18
Starting, Restarting, and Stopping Applications ............................................................................ 6-18
Restarting and Stopping OC4J Instances ......................................................................................... 6-19
Restarting an OC4J Instance or Group of Instances................................................................... 6-19
Stopping an OC4J Instance or Instances ...................................................................................... 6-19
Managing Data Sources ....................................................................................................................... 6-20
Adding, Testing, and Removing Data Source Connection Pools ............................................ 6-20
Adding a Data Source Connection Pool ............................................................................... 6-20
Testing a Data Source Connection Pool................................................................................ 6-21
Removing a Data Source Connection Pool........................................................................... 6-21
Adding, Testing, and Removing Data Sources........................................................................... 6-22
Adding a Managed Data Source............................................................................................ 6-22
Removing a Managed Data Source ....................................................................................... 6-23
Adding a Native Data Source ................................................................................................ 6-23
Removing a Native Data Source............................................................................................ 6-24
Testing a Database Connection.............................................................................................. 6-24
Testing a Data Source ............................................................................................................. 6-24
Getting the Data Sources Descriptor for an Application ................................................... 6-25
Managing JMS Resources.................................................................................................................... 6-25
Managing JMS Connection Factories .......................................................................................... 6-25
v
Adding a JMS Connection Factory ........................................................................................ 6-25
Removing a JMS Connection Factory ................................................................................... 6-26
Getting Information About JMS Connection Factories ...................................................... 6-26
Managing JMS Destinations .......................................................................................................... 6-27
Adding a JMS Destination ...................................................................................................... 6-27
Removing a JMS Destination ................................................................................................. 6-27
Getting Information About JMS Destinations ..................................................................... 6-28
Managing OC4J Through a Remote Client ...................................................................................... 6-28
Using admin_client.jar Commands Remotely ............................................................................ 6-28
Connecting to a Remote Oracle Application Server Instance Using JConsole ...................... 6-28
Using a JMX Programmatic Client to Manage OC4J Remotely ............................................... 6-30
vi
Configuring a Cluster........................................................................................................................... 8-12
Configuring Dynamic Node Discovery Using Multicast.......................................................... 8-12
Configuring Multicast Discovery with opmnctl ................................................................. 8-14
Configuring Multicast Discovery with opmnassociate...................................................... 8-15
Configuring Static Discovery Servers .......................................................................................... 8-16
Configuring a Static Discovery Server Connection with opmnctl.................................... 8-17
Configuring Cross-Topology Gateways ...................................................................................... 8-17
Configuring a Machine to Work With and Without a Network Connection......................... 8-19
Configuring Static Node-to-Node Communication................................................................... 8-20
Viewing the Status of a Cluster .......................................................................................................... 8-21
Viewing Cluster Status with opmnctl .......................................................................................... 8-21
Viewing Cluster Status in Application Server Control Console .............................................. 8-21
Configuring Routing and Load Balancing with Oracle HTTP Server........................................ 8-22
Using Web Server Routing IDs to Control OC4J Request Routing ......................................... 8-22
Changing Routing IDs Through the Application Server Control Console ..................... 8-23
Changing Routing IDs in the opmn.xml file........................................................................ 8-23
Setting mod_oc4j Load Balancing Options.................................................................................. 8-25
Configuring Application Mount Points ........................................................................................... 8-27
Enabling Dynamic Configuration of Application Mount Points ............................................. 8-28
Changing the Mount Point Configuration Algorithm............................................................... 8-29
Viewing Mount Point Configuration Data.................................................................................. 8-30
Running an OC4J Instance on Multiple JVMs................................................................................ 8-31
Creating Additional JVMs for an OC4J Instance........................................................................ 8-32
Monitoring Multiple JVMs ............................................................................................................ 8-32
Monitoring Dynamic Monitoring Service JVM Metrics ..................................................... 8-32
Setting the jmxremote System Property for Monitoring J2SE JVM 5.0 Metrics.............. 8-33
Monitoring J2SE 5.0 JVM Metrics in an Oracle Application Server Environment ......... 8-34
Monitoring J2SE 5.0 JVM Metrics in a Standalone OC4J Environment ........................... 8-34
vii
Overview of the <cluster> Element.............................................................................................. 9-10
11 Logging in OC4J
Overview of Log Files Generated by OC4J ..................................................................................... 11-1
Using Plain Text File Logging............................................................................................................. 11-3
Enabling or Disabling Text File Logging ..................................................................................... 11-3
Managing Text Log Files ................................................................................................................ 11-4
Viewing Text Log Files ................................................................................................................... 11-4
Using Oracle Diagnostic Logging (ODL) ......................................................................................... 11-4
Enabling or Disabling ODL ........................................................................................................... 11-4
Managing ODL Log Files ............................................................................................................... 11-6
Size-Based Log Rotation ......................................................................................................... 11-6
Time-Based Log Rotation........................................................................................................ 11-7
Viewing ODL Log Files .................................................................................................................. 11-7
Configuring OC4J Logging ................................................................................................................. 11-8
Using and Configuring the OC4J Component Loggers ............................................................ 11-8
Viewing the OC4J Log File ............................................................................................................ 11-9
Configuring the oracle Logger ...................................................................................................... 11-9
viii
Manually Changing Protocols and Port Ranges in opmn.xml.......................................... 13-3
Configuring Web Sites with opmnctl.................................................................................... 13-4
Creating a New Web Site in OC4J...................................................................................................... 13-6
Creating the Web Site Configuration File.................................................................................... 13-6
Referencing the Web Site Configuration File in server.xml...................................................... 13-8
Defining the Web Site Connection Data in opmn.xml............................................................... 13-8
Sharing Web Applications Between Web Sites........................................................................... 13-9
Specifying the Cookie Domain...................................................................................................... 13-9
Configuring a Secure Web Site in OC4J ......................................................................................... 13-10
Creating the Secure Web Site Configuration File ..................................................................... 13-10
Requiring Client Authentication ......................................................................................... 13-11
Requesting Client Authentication with OC4J.................................................................... 13-12
Starting and Stopping Web Sites ..................................................................................................... 13-13
Configuring Web Site Access Logging............................................................................................ 13-13
Configuring Text-Based Access Logging................................................................................... 13-13
Viewing Text Access Log Files .................................................................................................... 13-15
Configuring ODL Access Logging ............................................................................................. 13-15
Viewing ODL Access Log Files ................................................................................................... 13-16
Enabling or Disabling Access Logging for a Web Module or Application .......................... 13-16
A Troubleshooting OC4J
Problems and Solutions ......................................................................................................................... A-1
java.lang.OutOfMemory Errors ...................................................................................................... A-1
Application Performance Impacted by Garbage Collection Pauses.......................................... A-2
Invalid or Unneeded Library Elements Degrading Performance.............................................. A-2
ClassCastExceptions and ClassNotFound Errors......................................................................... A-3
OC4J Fails to Start: Unable to Find Java Compiler....................................................................... A-3
Error When Clustering an Application.......................................................................................... A-3
Error When Downgrading from JDK 5.0 to JDK 1.4.2 ................................................................. A-4
Unsupported Methods in JMX MBeanServer and MBeanServerConnection Interfaces ........ A-4
OC4J Hanging When Starting Applications in Oracle Application Server .............................. A-5
Additional Help....................................................................................................................................... A-6
ix
<global-application>....................................................................................................................... B-10
<global-thread-pool>...................................................................................................................... B-10
<global-web-app-config>............................................................................................................... B-12
<import-shared-library> ................................................................................................................ B-13
<init-param> .................................................................................................................................... B-13
<j2ee-logging-config>..................................................................................................................... B-13
<java-compiler>............................................................................................................................... B-14
<javacache-config> ......................................................................................................................... B-15
<jms-config> .................................................................................................................................... B-15
<log> ................................................................................................................................................. B-15
<rmi-config> .................................................................................................................................... B-15
<shared-library>.............................................................................................................................. B-16
<shutdown-class> ........................................................................................................................... B-16
<startup-class> ................................................................................................................................ B-17
<thread-pool> .................................................................................................................................. B-17
<transaction-manager-config> ...................................................................................................... B-19
<web-site> ........................................................................................................................................ B-19
<work-manager-thread-pool> ...................................................................................................... B-20
Overview of the Web Site Configuration Files (*-web-site.xml) ................................................. B-21
<web-site> ........................................................................................................................................ B-21
<description>................................................................................................................................... B-23
<frontend> ....................................................................................................................................... B-23
<web-app> ....................................................................................................................................... B-23
<default-web-app> ......................................................................................................................... B-25
<user-web-apps>............................................................................................................................. B-25
<access-log> ..................................................................................................................................... B-26
<odl-access-log> .............................................................................................................................. B-26
<ssl-config> ...................................................................................................................................... B-26
x
JSR 110 ..................................................................................................................................................... D-14
Jaxen......................................................................................................................................................... D-14
The Jaxen License ............................................................................................................................ D-14
JGroups.................................................................................................................................................... D-15
The GNU License ............................................................................................................................ D-15
mod_mm and mod_ssl.......................................................................................................................... D-22
OpenSSL ................................................................................................................................................. D-23
OpenSSL License ............................................................................................................................. D-23
Perl............................................................................................................................................................ D-25
Perl Kit Readme............................................................................................................................... D-25
mod_perl 1.29 License .................................................................................................................... D-26
mod_perl 1.99_16 License .............................................................................................................. D-27
Perl Artistic License ........................................................................................................................ D-30
Preamble.................................................................................................................................... D-30
Definitions................................................................................................................................. D-30
SAXPath .................................................................................................................................................. D-32
The SAXPath License...................................................................................................................... D-32
W3C DOM .............................................................................................................................................. D-33
The W3C License............................................................................................................................. D-33
Index
xi
xii
Preface
This book is the primary reference on configuring and managing Oracle Containers for
J2EE (OC4J) in both standalone and OPMN-managed (Oracle Application Server)
environments. It essentially replaces the Oracle Application Server Containers for J2EE
User's Guide and the Oracle Application Server Containers for J2EE Standalone User's
Guide released with previous versions of OC4J.
This preface contains the following sections:
■ Intended Audience
■ Documentation Accessibility
■ Related Documents
■ Conventions
Intended Audience
This documentation is intended for the following audiences:
■ A systems administrator responsible for configuring and managing an OC4J
installation
■ A Java application developer using OC4J in a standalone environment
The documentation is based on the assumption that readers are already familiar with
the following topics:
■ The Java 2 Platform, Enterprise Edition (J2EE) environment
■ General server and system administration concepts
■ General Web technology
■ The Java programming language
Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation
accessible, with good usability, to the disabled community. To that end, our
documentation includes features that make information available to users of assistive
technology. This documentation is available in HTML format, and contains markup to
facilitate access by the disabled community. Accessibility standards will continue to
evolve over time, and Oracle is actively engaged with other market-leading
technology vendors to address technical obstacles so that our documentation can be
accessible to all of our customers. For more information, visit the Oracle Accessibility
Program Web site at http://www.oracle.com/accessibility/.
xiii
Accessibility of Code Examples in Documentation
Screen readers may not always correctly read the code examples in this document. The
conventions for writing code require that closing braces should appear on an
otherwise empty line; however, some screen readers may not always read a line of text
that consists solely of a bracket or brace.
Related Documents
For more information, see the following Oracle resources.
Additional OC4J documents:
■ Oracle Containers for J2EE Deployment Guide
This covers information and procedures for deploying an application to an OC4J
environment. This includes discussion of the deployment plan editor that comes
with Oracle Enterprise Manager 10g.
■ Oracle Containers for J2EE Developer’s Guide
This discusses items of general interest to developers writing an application to run
on OC4J, issues that are not specific to a particular container, such as the servlet,
EJB, or JSP container. (An example is class loading.)
■ Oracle Containers for J2EE Servlet Developer’s Guide
This provides information for servlet developers regarding use of servlets and the
servlet container in OC4J, including basic servlet development and use of JDBC
and EJBs.
■ Oracle Containers for J2EE Support for JavaServer Pages Developer’s Guide
This provides information about JavaServer Pages development and the JSP
implementation and container in OC4J. This includes discussion of Oracle features
such as the command-line translator and OC4J-specific configuration parameters.
■ Oracle Containers for J2EE JSP Tag Libraries and Utilities Reference
This provides conceptual information as well as detailed syntax and usage
information for tag libraries, JavaBeans, and other Java utilities provided with
OC4J.
■ Oracle Containers for J2EE Services Guide
This provides information about standards-based Java services supplied with
OC4J, such as JTA, JNDI, JMS, JAAS, and the Oracle Application Server Java
Object Cache.
xiv
■ Oracle Containers for J2EE Security Guide
This document describes security features and implementations particular to
OC4J. It includes information about using JAAS, the Java Authentication and
Authorization Service, as well as other Java security technologies.
■ Oracle Containers for J2EE Enterprise JavaBeans Developer’s Guide
This provides information about Enterprise JavaBeans development and the EJB
implementation and container in OC4J.
■ Oracle Containers for J2EE Resource Adapter Administrator’s Guide
This document provides an overview of J2EE Connector Architecture features and
describes how to configure and monitor resource adapters in OC4J.
Oracle Application Server documents:
■ Oracle Application Server Web Services Developer’s Guide
This describes Web services development and configuration in OC4J and Oracle
Application Server.
■ Oracle Application Server Advanced Web Services Developer’s Guide
This book describes topics beyond basic Web service assembly. For example, it
describes how to diagnose common interoperability problems, how to enable Web
service management features (such as reliability, auditing, and logging), and how
to use custom serialization of Java value types.
This book also describes how to employ the Web Service Invocation Framework
(WSIF), the Web Service Provider API, message attachments, and management
features (reliability, logging, and auditing). It also describes alternative Web
service strategies, such as using JMS as a transport mechanism.
■ Oracle Application Server Web Services Security Guide
This describes Web services security and configuration in OC4J and Oracle
Application Server.
■
Conventions
The following text conventions are used in this document.
Convention Meaning
boldface Boldface type indicates graphical user interface elements associated
with an action, or terms defined in text or the glossary.
italic Italic type indicates book titles, emphasis, or placeholder variables for
which you supply particular values.
monospace Monospace type indicates commands within a paragraph, URLs, code
in examples, text that appears on the screen, or text that you enter.
xv
xvi
1
Introduction to Oracle Containers for J2EE
(OC4J)
This chapter provides a general introduction to Oracle Containers for J2EE (OC4J), in
the following sections:
■ Overview of OC4J
■ New and Changed Features in OC4J
■ OC4J in a Standalone Configuration
■ OC4J in an Oracle Application Server Configuration
■ Overview of the Application Hierarchy in OC4J
Overview of OC4J
Oracle Containers for J2EE 10g (10.1.3.1.0), or OC4J, provides a complete Java 2
Enterprise Edition (J2EE) 1.4-compliant environment. OC4J provides all the containers,
APIs, and services mandated by the J2EE specification.
OC4J is distributed in two configurations:
■ A standalone configuration, in which OC4J is installed as a single, standalone
instance and is started, managed, and stopped directly as a self-contained
component.
See "OC4J in a Standalone Configuration" on page 1-6 for details on this
configuration.
■ A managed configuration, in which OC4J is installed as part of a group of OC4J
instances and managed as a component of Oracle Application Server.
For the purposes of Oracle Application Server 10g Release 3 (10.1.3.1.0), a group is
a synchronized set of OC4J instances that belong to the same cluster topology,
which comprises two or more loosely connected Oracle Application Server nodes.
Configuration, administration, and deployment operations can be performed
simultaneously on all OC4J instances in the group.
At a minimum, a managed OC4J installation will include Oracle Process Manager
and Notification Server (OPMN), which manages the various Oracle Application
Server components, including OC4J.
An installation will typically also include at least one Oracle HTTP Server
instance, which provides Web communication and load balancing functionality.
See "OC4J in an Oracle Application Server Configuration" on page 1-7 for details.
OC4J is written entirely in Java and executes on the Java Virtual Machine (JVM) of the
standard Java Development Kit (JDK). The current OC4J release can run on JDK
releases 5.0 and 1.4.2. For OPMN-managed OC4J, the JDK 5.0 is installed with the
server binaries and used by default to start the OC4J instance. For standalone OC4J,
the JDK must be provided. You can configure an OC4J instance to run on multiple
JVMs.
The OC4J documentation is based on the assumption that you have a basic
understanding of Java programming, J2EE technology, and Web and EJB application
technology. This includes deployment conventions such as the /WEB-INF and
/META-INF directories.
Support for New J2EE 1.4 Application Management and Deployment Specifications
OC4J supports the following specifications defining new standards for deploying and
managing applications in a J2EE environment:
■ The J2EE Application Deployment API (JSR-88), which defines a standard API for
configuring and deploying J2EE applications and modules into a J2EE-compatible
environment. The OC4J implementation includes the ability to create or edit a
deployment plan containing the OC4J-specific configuration data needed to
deploy a component into OC4J.
■ The Java Management Extensions (JMX) 1.2 specification, which allows standard
interfaces to be created for managing resources, such as services and applications,
in a J2EE environment. The OC4J implementation of JMX provides a JMX client
that can be used to completely manage an OC4J server and applications running
within it.
■ The J2EE Management Specification (JSR-77), a specification that allows standard
components to be created for managing applications in a J2EE environment.
Note: OC4J must use JDK 5.0 to enable EJB 3.0 support. This JDK is
included with the current 10g (10.1.3.1.0) release, in which OC4J uses
JDK 5.0 by default.
application.xml
■ The <persistence> element has been moved to the new
system-application.xml file.
■ The <jazn> element now points to the new system-jazn-data.xml file as the
security configuration file for the OC4J instance. For more information about
<jazn>, see the Oracle Containers for J2EE Security Guide.
■ The default-data-source attribute of the root <orion-application>
element now specifies "jdbc/OracleDS" as the default data source in both
standalone OC4J and Oracle Application Server.
■ The <ejb-module> element for PortComponentLinkResolver has been removed.
■ The <odl> element, used to enable ODL logging for the default application, has
been added but commented out as a subelement of <log>.
ascontrol-web-site.xml
■ This file has been removed from both standalone OC4J and Oracle Application
Server. The Application Server Control Console instance deployed to OC4J is now
bound to default-web-site.xml by default and is accessible through the /em
context root.
default-web-site.xml
■ This file configures the default Web site used in both standalone OC4J and Oracle
Application Server. All applications, including the Application Server Control
Console deployed to the OC4J instance, are accessed by default through the
default Web site using the context root specified in this file.
global-web-application.xml
■ The <dtd> element has been removed from the Oracle Application Server version
of this file.
■ The <url-pattern> element in the rmi-tunnel servlet definition specifies
rmiTunnel/* in both standalone OC4J and Oracle Application Server.
http-web-site.xml
■ This file has been removed from both standalone OC4J and Oracle Application
Server. All applications deployed to the OC4J instance are now bound to
default-web-site.xml by default.
j2ee-logging.xml
■ This new file is used to configure Java Loggers, including the oracle Logger.
jazn-data.xml
■ This file no longer contains the security configuration for the OC4J instance. This
configuration is now defined in the new system-jazn-data.xml file. The
jazn-data.xml can be specified, however, at the application level to define
users and roles. For more information about the jazn-data.xml and
system-jazn-data.xml files, see the Oracle Containers for J2EE Security Guide.
oc4j-connectors.xml
■ The location attribute of the <connector> element is no longer specified for
the datasources and OracleASjms connectors.
server.xml
■ The <web-site> elements pointing to http-web-site.xml and
ascontrol-web-site.xml have been removed. A single element now points to
default-web-site.xml, the configuration file for the default Web site.
■ Multiple <shared-library> elements have been added, each referencing a
shared library installed with OC4J.
■ A <thread-pool> element has been added to the server.xml for defining thread
pools for use by OC4J processes and applications deployed to OC4J instances. This
element replaces the <global-thread-pool> and <work-manager-thread-pool>
elements, which are deprecated in OC4J (10.1.3.1.0).
■ A <custom-thread-pool> element has been added to the server.xml file for
defining separate, custom thread pools for applications.
system-application.xml
■ This is a new file, added to provide configuration for the system application. See
"The system Application" on page 1-10 for more information on this new internal
component.
system-jazn-data.xml
■ This new file contains the security configuration for the OC4J instance. It
essentially replaces jazn-data.xml. For more information about the
jazn-data.xml and system-jazn-data.xml files, see the Oracle Containers for
J2EE Security Guide.
Installation
The standalone OC4J distribution, which includes Application Server Control, is
provided as a ZIP archive. See Chapter 2, "Installing Standalone OC4J" for instructions.
Administration
The OC4J instance is administered as a standalone component, using the Application
Server Control Console installed with the instance, Ant tasks, or one of the built-in
command-line utilities, such as admin_client.jar.
See Chapter 3, "Tools for Administering OC4J" for an overview of these tools.
Web Communications
Web communications in a standalone environment is provided through the built-in
OC4J Web server, which supports HTTP and HTTPS communications natively without
the use of the Oracle HTTP Server.
The default Web site is defined in the default-web-site.xml file, which specifies
the default HTTP listener on port 8888. Additional Web sites may be defined on
different ports using variations of this file. See Chapter 13, "Managing Web Sites in
OC4J" for instructions on creating additional Web sites in OC4J.
Installation
Installation of the various components is done using the Oracle Universal Installer.
OPMN must be installed in every ORACLE_HOME directory to enable monitoring of
each installed component.
Administration
Administration tasks can be performed using any of these tools:
■ The Web-based Application Server Control Console user interface
■ Ant tasks
■ The admin_client.jar command-line tool
■ The admin.jar command-line tool, only for standalone OC4J servers
Chapter 1, "Introduction to Oracle Containers for J2EE (OC4J)" provides overviews of
these tools.
In an Oracle Application Server clustered environment, a single Application Server
Control Console can be used to manage all OC4J instances in a cluster. See "Oracle
Enterprise Manager 10g Application Server Control Console" on page 3-1 for details
on this application.
OC4J includes a set of Ant tasks for performing administration tasks on a group of
OC4J instances within an Oracle Application Server cluster, on an OPMN-managed
OC4J instance, or on a standalone OC4J server. For details about the Ant tasks and
guidelines for integrating the tasks into your application build process, see "Deploying
with the OC4J Ant Tasks" in the Oracle Containers for J2EE Deployment Guide.
The admin_client.jar tool provided with OC4J can be used to perform
administration tasks on a group of OC4J instances within an Oracle Application Server
cluster, on an OPMN-managed OC4J instance, or on a standalone OC4J server. Also,
the administration client distribution, oc4j_admin_client_101310.zip, which
contains the client-side jars necessary for performing administrative operations from a
remote client in two ways:
■ Using admin_client.jar commands remotely against an OPMN-managed or
standalone OC4J instance
■ Using a JMX programmatic client to manage OC4J remotely
See Chapter 6, "Using the admin_client.jar Utility" for instructions on using this tool.
The admin.jar tool provided with OC4J can be used to perform administration tasks
only on a standalone OC4J server. See Chapter 7, "Using the admin.jar Utility" for
instructions on using this tool.
Web Communication
A standalone OPMN-managed OC4J instance (the J2EE Server and Process Manager
install type) can use the built-in OC4J Web server to directly receive and respond to
HTTP[S] requests.
Web communications with OC4J can also be managed through Oracle HTTP Server,
which serves as a front-end listener, and the mod_oc4j module, which forwards
HTTP requests to OC4J instances using the Apache JServ Protocol (AJP) 1.3.
The request and response flow between Oracle HTTP Server and OC4J is as follows:
1. An incoming HTTP request is received by the Oracle HTTP Server listener.
2. Oracle HTTP Server passes the request to an OC4J instance through the mod_oc4j
module. The connection between Oracle HTTP Server and OC4J uses the Apache
JServ Protocol (AJP) on a port number negotiated during OC4J startup.
Oracle HTTP
Web HTTP Server AJP 1.3 OC4J
O-1014
Mount points mapping request URLs to the OC4J instance serving the requested
application are dynamically created in mod_oc4j at the time applications are
deployed. Requests that come in for specific mount points are routed to the OC4J
instance corresponding to that mount point.
For additional information on configuring and managing Oracle HTTP Server and the
mod_oc4j module, see the Oracle HTTP Server Administrator’s Guide.
J2EE Applications
By default, an application deployed to an OC4J instance inherits configuration
parameters from its designated parent application, or from the default application if
no other parent is specified. However, a parameter value set in an application's
orion-application.xml descriptor overrides an equivalent parameter inherited
from the parent.
A Web module must be contained within a parent J2EE application. A WAR file is
typically packaged and deployed with the EAR file that defines the parent J2EE
application. However, a WAR file can be deployed to the default application as a
standalone Web module.
This chapter describes the prerequisites and process for installing the OC4J standalone
distribution, which is distributed as the as oc4j_extended.zip archive.
For instructions on installing OC4J as a component of Oracle Application Server, see
the platform-specific Oracle Application Server Installation Guide.
The following topics are covered in this chapter:
■ Meeting Installation Prerequisites for a Standalone OC4J Server
■ Installing the Standalone OC4J Distribution
Instead of the environment variables ORACLE_HOME and J2EE_HOME, you can use the
system properties oracle.home and oracle.j2ee.home to set the Oracle and J2EE
home directories.
If you want to use a locale other than the default locale for the operating system, also
set the LC_ALL and LANG environment variables, both to the same value.
You will be prompted to set a password for the OC4J Administrator account the first
time OC4J is started. The user name for this account is set to oc4jadmin by default.
You can also activate the oc4jadmin account before starting OC4J, using the
jazn.jar tool. This tool is located in the ORACLE_HOME /j2ee/home directory. The
syntax is as follows:
jazn.jar -activateadmin password
For a cluster topology that includes multiple OC4J instances, if the OPMN
configuration file for the cluster, opmn.xml, does not include the sequential option,
you should use the -sequential flag in the command:
cd ORACLE_HOME/opmn/bin
opmnctl startall -sequential
The sequential option causes the OC4J instances to start sequentially. If you started
the components in parallel, resource contention issues might occur. For information
about how to specify the sequential option in the opmn.xml file, see "Setting
Runtime Options in a Managed OC4J Configuration" on page 4-2.
In a typical Oracle Application Server installation, all Web applications, including
Application Server Control Console, are accessed through Oracle HTTP Server. Use
the following URL to access the console:
http://ohs_host_address:port/em
■ ohs_host_address is the address of the Oracle HTTP Server host machine; for
example, server07.company.com
■ port is an HTTP listener port assigned to Oracle HTTP Server by OPMN. Run the
following opmnctl command on the Oracle HTTP Server host machine to get the
list of assigned listener ports from OPMN:
opmnctl status -l
Supply the port designated as http1 in the OPMN status output as the value for
port:
HTTP_Server | HTTP_Server | 6412 | Alive | 1970872013 | 1
6396 | 0:48:01 | https1:4443,http2:722,http1:7779
Applications
■ Start or stop applications, modules, or standalone resource adapters deployed into
an OC4J instance or group of instances within an Oracle Application Server cluster
■ Deploy, undeploy, or redeploy an application or module
■ Create or edit a deployment plan as part of deploying an application
■ View statistics on HTTP requests and active EJB method calls
Administration
■ Manage J2EE services, including JMS and JTA
■ View and search for JNDI names
■ Create JDBC data sources and connection pools providing database access
■ Set JSP container properties
■ Configure security providers and manage users and roles
■ Access MBeans through the JMX MBean browser
■ Subscribe to event-driven JMX notifications
Performance
■ View graphs showing usage of CPU and memory resources by OC4J versus other
active applications, as well as OC4J heap usage
■ View statistics on database connections and transaction activity, JVM usage, JSP
and servlet requests, and EJB methods
■ Query system for most-requested JSPs, servlets, and EJBs
Web Services
■ Enable or disable a Web service
■ View metrics and statistics for Web services running within an instance
■ View the WSDL for a Web service
■ Test a Web service
■ Configure auditing, logging, reliability and security for a Web service
Logs
■ View log files for specific applications deployed into an OC4J instance
■ View logs for the default application (which includes the global Web application)
and Application Server Control Console
■ Search logs for specific message types and strings
■ View XML formatted log files for components using the Oracle Diagnostic
Logging (ODL) framework
■ Retrieve Web service logs
See Chapter 11, "Logging in OC4J" for more on the logging capabilities provided by
OC4J.
The set of options that can be passed to the executables is identical for both, as
summarized in Table 3–1.
OPMN is configured through the opmn.xml configuration file, which is located in the
ORACLE_HOME/opmn/conf directory. Most edits to this file must be made by hand, as
the current release of Application Server Control Console does not provide a file
editing capability.
The following is an abridged example of how OC4J configuration data is structured in
the opmn.xml configuration file.
■ Configuration data for each component is set in an <ias-component> element,
in which the id attribute equals the component name, in this case default_
group.
■ Each individual OC4J instance created on the host machine is configured within a
<process-type> element. The id attribute uniquely identifies the instance.
■ The <process-set> element defines a group of OC4J processes created at
startup.
The value of the id attribute identifies the group and is appended to log files
generated for processes within the group to aid in management.
The following element is an abridged example of the OC4J configuration data
structure in opmn.xml:
<opmn>
...
<ias-component id="default_group">
<process-type id="home" module-id="OC4J" status="enabled">
<module-data>
<category id="start-parameters">
<data id="java-options" value=" -Djava.awt.headless=true"/>
<data id="java-bin" value="/jdk/bin"/>
<data id="oc4j-options" value="-validateXML -verbosity 10"/>
</category>
<category id="stop-parameters">
<data id="java-options" value="-Djava.awt.headless=true"/>
</category>
</module-data>
<start timeout="600" retry="2"/>
<stop timeout="120"/>
<restart timeout="720" retry="2"/>
<port id="default-web-site" protocol="ajp" range="12501-12600"/>
<port id="rmi" range="12401-12500"/>
<port id="jms" range="12601-12700"/>
<port id="rmis" range="12701-12800"/>
<process-set id="default_group" numprocs="1"/>
</process-type>
</ias-component>
</opmn>
internally by the ascontrol application, which uses that account to log into and
manage the other OC4J instances in the Oracle Application Server cluster.
■ If you must change the oc4jadmin password, you must change it for all OC4J
instances in the cluster. Changing this password involves quite a few steps, which
are documented in Appendix A of the Oracle Application Server Administrator’s
Guide. Specifically, the procedure to change the oc4jadmin password for the
Administration OC4J instance, which runs the active ascontrol application, is
different from the procedure to change the oc4jadmin password for the remotely
managed OC4J instances.
This chapter provides details on runtime options and system properties that can be set
at OC4J startup. It includes the following topics:
■ Specifying the JDK Version
■ Setting OC4J Runtime Options at Startup
■ Setting System Properties at Startup
■ Enabling Remote Debugging from an Integrated Development Environment
You can specify the JDK to use for each OC4J instance through manual edits to the
opmn.xml configuration file. If you want to use the javac compiler installed with the
JDK defined in the JAVA_HOME environment variable, also remove the
<java-compiler> element from the server.xml file and let OC4J rediscover the
default settings.
Set Java system properties in the <data> element where the id attribute is java-bin.
This <data> element is enclosed within the <category
id="start-parameters"> subelement of the <ias-component id="default_
group"> element in the XML structure. For example:
<ias-component id="default_group">
<process-type id="home" module-id="OC4J" status="enabled">
<module-data>
<category id="start-parameters">
<data id="java-bin" value="c:/myhost/jdk/bin/java"/>
</category>
...
</module-data>
</process-type>
</ias-component>
Runtime options ([args]) are specified after oc4j.jar in the syntax. For example:
java -jar oc4j.jar -userthreads
<category id="start-parameters">
<data id="oc4j-options" value="-userthreads"/>
...
</category>
...
</module-data>
</process-type>
</ias-component>
All system properties ([props]) are specified before oc4j.jar in the syntax. Each
system property must be prefaced on the command line with a -D. For example:
java -Doc4j.formauth.redirect=true -jar oc4j.jar
Set Java system properties in the <data> element where the id attribute is
java-options. This <data> element is enclosed within the <category
id="start-parameters"> subelement of the <ias-component id="default_
group"> element in the XML structure. Preface all system properties with a -D. For
example:
<ias-component id="default_group">
<process-type id="home" module-id="OC4J" status="enabled">
<module-data>
<category id="start-parameters">
<data id="java-options" value="-Doc4j.formauth.redirect=true
-Dhttp.session.debug=true"/>
</category>
...
</module-data>
</process-type>
</ias-component>
You can use the following properties for debugging applications running within OC4J.
Debug messages are printed to the console. All properties take a Boolean value.
Preface all properties with a -D.
This example will rotate stdout logs at 2:30 p.m. every day and limit the archive to a
maximum of 10 files:
java -Dstdstream.rotatetime=14:30 -Dstdstream.filenumber=10 -jar oc4j.jar -out
d:\logs\oc4j.out
stdstream.filenumber= The maximum number of files to keep as archives. The oldest file will be
max_files automatically deleted when the limit is exceeded.
stdstream.rotatetime= The time at which the log file will be rotated each day.
HH:mm
Enabling Remote Debugging for an OC4J Instance Through Application Server Control
Console
To enable remote debugging for a single OC4J instance through the Application Server
Control Console:
1. Navigate to the OC4J Home page.
2. Click Administration to display the OC4J Administration page.
3. Under Properties in the table of administration tasks, click the task icon in the
Server Properties row.
Enterprise Manager displays the Server Properties page.
4. In the Start-parameters: Java Options section under Command Line
Options, click Add Another Row to add each of the following debug start
parameters:
■ -Xdebug
■ -Xnoagent
■ -Xrunjdwp:transport=dt_
socket,server=y,suspend=n,address=4000
5. Click Apply to apply your changes to the OC4J configuration.
When you make changes on to the server properties, you must restart the OC4J
instance before the changes take effect.
Make sure you never use suspend=y, which specifies not to start OC4J until the
debugger is attached. If you used this debug parameter, OPMN would attempt to
restart the OC4J instance or instances continuously because OPMN would not get a
response from its query pings.
Attach to the server the port to which you set address, such as port 4000.
Note: The port value of 4000 is arbitrary. You should set a value
suitable for your connection. The specified port is the port that must
be set in the remote debugging client to connect to the server.
This chapter provides instructions for installing OC4J, as well as for starting, stopping,
and restarting an OC4J instance. It includes the following sections:
■ Starting OC4J in a Standalone Environment
■ Starting OC4J in an Oracle Application Server Environment
■ Stopping OC4J in a Standalone Environment
■ Stopping OC4J in an Oracle Application Server Environment
■ Restarting an OC4J Instance in a Standalone Environment
■ Restarting an OC4J Instance in an Oracle Application Server Environment
Before you can use this command, the ORACLE_HOME and JAVA_HOME environment
variables must be set. See "Meeting Installation Prerequisites for a Standalone OC4J
Server" on page 2-1 for details.
Invoking oc4j.jar as shown above starts OC4J using the default server.xml
configuration file, which you can find in the j2ee/home/config directory. To start
OC4J using a nondefault version of the server.xml file, issue the following
command. You must supply the path to the modified configuration file.
java -jar oc4j.jar -config /yourpath/server.xml [args]
You can pass in arguments at startup to set runtime options in OC4J. For an overview
of valid arguments, see "Setting OC4J Runtime Options at Startup" on page 4-2. You
can also view the console help by issuing the following command from the ORACLE_
HOME/j2ee/home directory:
java -jar oc4j.jar -help
You can also set system properties on the JVM through the oc4j.jar command line
at OC4J startup. For details on setting system properties, see "Setting System
Properties at Startup" on page 4-4.
Use the following command to start a specific managed processes, in this case OC4J,
on a local Oracle Application Server instance:
opmnctl startproc ias-component=default_group
In a cluster topology that includes multiple OC4J instances, if the EARs that the OC4J
instances will use are in a shared directory at a single location, you should start the
instances with the -sequential flag:
opmnctl startproc ias-component=default_group -sequential
This option prevents resource contention that might occur if you started all the OC4J
instance in parallel.
Alternatively, to start the OC4J instances sequentially, you can specify the
sequential option in opmn.xml, the OPMN configuration file for the cluster, as
follows:
<ias-component id="default_group">
<process-type id="home" module-id="OC4J" status="enabled">
<module-data>
<category id="start-parameters">
<data id="oc4j-options" value="-sequential"
</category>
...
</module-data>
</process-type>
</ias-component>
For more information about opmnctl commands, see the Oracle Process Manager and
Notification Server Administrator’s Guide.
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin password -shutdown
This command shuts down the entire OC4J server, terminating all threads
immediately, as if the host machine were unplugged. If you use this command, the
current state for clustered applications will not be replicated.
For descriptions of the uri, adminId, and adminPassword variables, see
"Understanding the admin_client.jar Syntax and URI Specification" on page 6-2.
On a standalone OC4J instance, the -shutdown option of admin_client.jar is
equivalent to the -shutdown force option of the admin.jar utility,
which"Stopping OC4J with admin.jar" on page 5-3 describes.
For example:
oc4j -shutdown -port 23791 -password adminpwd
The ORACLE_HOME and JAVA_HOME environment variables must be set to use this
command. See "Meeting Installation Prerequisites for a Standalone OC4J Server" on
page 2-1 for details.
You can use the following command to stop a specific managed component, in this
case OC4J, on a local Oracle Application Server instance:
opmnctl stopproc ias-component=default_group
For more information about opmnctl commands, see the Oracle Process Manager and
Notification Server Administrator’s Guide.
Alternatively, you can use admin_client.jar to stop an OC4J instance, with the
following command:
java -jar admin_client.jar uri adminId adminPassword -shutdown
For example:
java -jar admin_client.jar deployer:oc4j:opmn://localhost/home oc4jadmin password
-shutdown
This command shuts down the entire OC4J instance, terminating all threads
immediately. For an OPMN-managed OC4J instance, admin_client.jar notifies
OPMN that the server is being shut down on purpose, to prevent OPMN from
attempting to restart it. If you use this command, the current state for clustered
applications will not be replicated.
For descriptions of the uri, adminId, and adminPassword variables, see
"Understanding the admin_client.jar Syntax and URI Specification" on page 6-2.
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin password -restart
You can enter a string as the value for [reason]. The string is written to the ORACLE_
HOME/j2ee/home/config/server.log file.
Alternatively, you can use the following command to restart a specific managed
process, in this case OC4J, on a local Oracle Application Server instance:
opmnctl restartproc ias-component=default_group
In a cluster topology that includes multiple OC4J instances, you should restart the
instances with the opmnctl command and -sequential flag:
opmnctl startproc ias-component=default_group -sequential
The -sequential flag prevents resource contention that might occur if you started
all the OC4J instance in parallel, especially if the EARs that the OC4J instances will use
are in a shared directory at a single location. If the opmn.xml configuration file for the
cluster includes the sequential option, as described in "Starting OC4J in an Oracle
Application Server Environment" on page 5-2, you need not specify the -sequential
flag.
You can use admin_client.jar to restart an OC4J instance, with the following
command:
java -jar admin_client.jar uri adminId adminPassword -restart
The key parameter passed on the command line is uri, which specifies the target for
the command or commands supplied. The syntax for the URI varies depending on the
instance or instances being targeted. See the following topics for the format of this
URI:
■ Performing Operations on a Group of OC4J Instances Within a Cluster
■ Performing Operations on a Specific OC4J Instance
■ Performing Operations on a Standalone OC4J Server
■ Validating a URI
The OC4J administration user name and password are also passed to the utility. The
user name for the default administrator account is oc4jadmin.
As an example, the following command will start the petstore application, which is
installed in the OC4J instance named oc4j_2 on node1, a member of a cluster:
java -jar admin_client.jar deployer:oc4j:opmn://node1.company.com/oc4j_2
oc4jadmin password -application petstore -start
Figure 6–1 shows four processes that are configured to run from an OC4J instance
named OC4J_home in one of the Oracle Application Server instances within a cluster.
Figure 6–1 OC4J Instance Running on Multiple JVMs in an Oracle Application Server
Instance Within a Cluster
For example:
deployer:cluster:opmn://node1.company.com/oc4j_soa
For example:
deployer:oc4j:opmn://server.company.com:6004/instance2/home
If you are using ORMI over SSL (ORMIS), specify the URI as follows:
deployer:oc4j:rmis:host:ormisPort
For example:
deployer:oc4j:myserver:23791
deployer:oc4j:rmis:myserver:23943
Validating a URI
You can validate a URI using the -validateURI command.
java -jar admin_client.jar uri adminId adminPassword -validateURI
For example:
java -jar admin_client.jar deployer:cluster:opmn://node1.company.com/default_group
oc4jadmin password -validateURI
The following URIs use different patterns for different OC4J targets:
■ Standalone OC4J server:
deployer:oc4j:test-cycle.oracle.com:23791
To view detailed help for a specific command, type -usage followed by the command
identifier. For example:
java -jar admin_client.jar -usage [command]
Enabling Logging
To help troubleshoot errors that occur when running admin_client.jar, you can
enable Java logging when running this tool. Log messages will be output to the
console.
To enable logging:
1. Create a logging.properties file containing a single line:
oracle.oc4j.admin.jmx.client.CoreRemoteMBeanServer.level=INFO
You can set the value in the logging.properties file to one of the Java log-level
values in Table 6–4.
For example:
oracle.oc4j.admin.jmx.client.CoreRemoteMBeanServer.level=FINE
Deploying an Archive
You can use the admin_client.jar utility to deploy an application (EAR), a
standalone Web module (WAR), or a standalone resource adapter (RAR) to a specific
OC4J instance or to a group of instances within a cluster.
This section covers the following topics:
■ Deploying a J2EE Application (EAR)
■ Deploying a J2EE Application from a Remote Client
■ Deploying a Standalone Web Module (WAR)
■ Deploying a Standalone Resource Adapter (RAR)
Ideally, you should include the -bindAllWebApps subswitch to bind all Web
modules within the EAR to the Web site through which they will be accessed. If no
Web site is specified, modules will be bound to the default Web site.
For example, the following command deploys the utility application to all OC4J
instances that belong to the group default_group within a cluster. All Web modules
within the application will be bound to the default Web site.
java -jar admin_client.jar deployer:cluster:opmn://node1.company.com/default_group
oc4jadmin password -deploy -file C:/dev/utility.ear -deploymentName utility
-bindAllWebApps
The WAR can be designated a child of another deployed application that does not
already contain a Web module component; otherwise, it will be deployed to the
default application.
A WAR cannot be deployed as the child of an application that already contains a Web
module. That is, if the acme application already contains acme-web.war, an
additional WAR file cannot be deployed into that application. Repackage the WAR in
the application's EAR file and redeploy the application instead.
The following command deploys the standalone acme-web.war Web module to the
default application in all OC4J instances that belong to default_group within the
cluster of which node1 is a member. Because the -bindAllWebApps subswitch is
included, but a Web site to bind to is not specified, the module will be bound to the
default Web site.
java -jar admin_client.jar deployer:cluster:opmn://node1.company.com/default_group
oc4jadmin password -deploy -file C:/dev/acme-web.war -deploymentName utility
-bindAllWebApps -parent default
The following command deploys the acme-rar.rar module to all OC4J instances
that belong to default_group within a cluster.
java -jar admin_client.jar deployer:cluster:opmn://node1.company.com/default_group
oc4jadmin password -deploy -file /dev/acme-rar.rar -deploymentName acme-rar
-grantAllPermissions -removeArchive
For more information, see "Deploying Resource Adapters" in the Oracle Containers for
J2EE Deployment Guide.
The script file, filename, contains multiple lines, like the lines in this example:
-deploy -file /scratch/rpan/apps/hello-planet.ear -deploymentName hello-planet
-bindWebApp -appName hello-planet -webModuleName hello-planet-web
-stop hello-planet
-start hello-planet
-redeploy -file /scratch/rpan/apps/hello-planet.ear
-deploymentName hello-planet -bindAllWebApps
-undeploy hello-planet
-validateURI
You can convert to batch mode by looking at the script or logs from an installation and
extracting the relevant lines used by an existing configuration assistant.
Bind a Specific Web Module to a Specific Web Site and Set the Context Root
Use the -bindWebApp command to bind a single Web module within a J2EE
application to a specific Web site, or to default-web-site by default. You can also
optionally set the context root that will be used to access the module.
The syntax follows:
java -jar admin_client.jar uri adminId adminPassword -bindWebApp
-appName appName -webModuleName moduleName -webSiteName siteName
-contextRoot contextRoot
Redeploying an Archive
Use the -redeploy command to redeploy a previously deployed archive.
This operation performs a graceful redeployment because it stops the application if it is
running and then undeploys the archive. It then deploys and restarts the application.
Redeploying an archive with the -deploy command, in contrast, does not stop the
application but simply undeploys, redeploys, and then restarts it.
The syntax follows:
Undeploying an Archive
The -undeploy command removes an application or standalone Web or connector
module from the target OC4J instances, as the following topics describe:
■ Undeploying an EAR or Standalone WAR
■ Undeploying a Standalone RAR
Undeploying a standalone RAR does not require a restart of the default application.
The syntax for updating modified classes in a deployed EJB module follows. The name
of the application the EJB JAR is part of must be supplied. If updating a standalone
EJB module, specify the default application.
java -jar admin_client.jar uri adminId adminPassword -updateEJBModule
-appName appName -ejbModuleName ejbJarName -file path/ejbJarName
For example:
java -jar admin_client.jar deployer:cluster:opmn://node1.company.com/default_group
oc4jadmin password -updateEJBModule -appName petstore
-ejbModuleName customerEjb.jar -file build/customerEjb.jar
specific OC4J instance or in a group of instances within a cluster. The shared library
will be created in the ORACLE_HOME/j2ee/instance/shared-lib directory of
each OC4J instance.
The command will also declare the shared library within a <shared-library>
element in the server.xml file on each OC4J instance, making it available to
applications.
The syntax for installing a shared library follows. The path and file names for multiple
code sources, binaries that will compose the shared library, can be specified, each
separated from the next by a space.
java -jar admin_client.jar uri adminId adminPassword -publishSharedLibrary
-name libName -version libVersion [-parentName parentLibName]
[-parentVersion parentLibVersion] [-installCodeSources path [path ...]]
[-addCodeSources path [path ...]] [-imports sharedLibName
[:min-version][,max-version] [sharedLibName ...]]
The resulting directory structure within a target OC4J server would be as follows:
ORACLE_HOME/j2ee/home/shared-lib
/acme.common
/2.5
acme-apis.jar
acmeImpl.jar
Note: If you are using JDK1.4, Oracle Application Server 10g Release
3 (10.1.3.1.0) does not support using the Xalan library shipped with
the JDK as a shared library. To use the Xalan library, you have two
alternatives:
■ Use JDK 1.5 (JDK 5), in which the embedded Xalan library is
supported as a shared library.
■ With JDK1.4, use a standalone distribution of the Xalan library
instead of the embedded version.
The following example stops the ascontrol application on node2 within the cluster:
java -jar admin_client.jar deployer:oc4j:opmn://node2.company.com:6004/home
oc4jadmin password -stop ascontrol
The following command restarts all of the OC4J instances that are members of
default_group in each Oracle Application Server within the cluster topology:
java -jar admin_client.jar deployer:cluster:opmn://node1.company.com/default_group
oc4jadmin password -restart
This command shuts down the entire OC4J server, terminating all threads
immediately, as if the host machine were unplugged. If you use this command, the
current state for clustered applications will not be replicated.
The following command stops the specified OC4J instance in an Oracle Application
Server managed environment:
java -jar admin_client.jar deployer:oc4j:opmn://localhost/home oc4jadmin password
-shutdown
The next command stops all of the OC4J instances that are members of default_
group in each Oracle Application Server within the cluster topology:
These commands shut down the specified instance or instances and terminate all
threads immediately. If you use the -shutdown command, the current state for
clustered applications will not be replicated. For each OPMN-managed OC4J instance,
admin_client.jar notifies OPMN that the server is being shut down on purpose,
to prevent OPMN from attempting to restart it.
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-addDataSourceConectionPool -applicationName default -name ScottConnectionPool
-factoryClass oracle.jdbc.pool.OracleDataSource
-user scott -password tiger -url jdbc:oracle:thin:@localhost:1521:xe
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-testDataSourceConnectionPool -sqlStatement "select * from dual"
-applicationName default -connectionPoolName ScottConnectionPool
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-removeDataSourceConnectionPool -name ScottConnectionPool -applicationName default
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-addManagedDataSource -applicationName default -dataSourceName ScottDataSource
-jndiLocation jdbc/ScottDataSource -connectionPoolName ScottConnectionPool
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-removeManagedDataSource -dataSourceName ScottDataSource -applicationName default
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-addNativeDataSource -dataSourceName ScottDataSource
-user scott -password tiger -jndiLocation jdbc/ScottNativeDataSource
-loginTimeout 5 -dataSourceClass com.acme.DataSourceImpl
-url jdbc:oracle:thin:@localhost:1521:xe
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-removeNativeDataSource -dataSourceName ScottDataSource
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-testDatabaseConnection -sqlStatement "select * from dual"
-factoryClass oracle.jdbc.pool.OracleDataSource -user scott
-password tiger -url jdbc:oracle:thin:@localhost:1521:xe -applicationName default
[-password password]
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-testDataSource -datasourceName ScottDataSource -sqlStatement "select * from dual"
-applicationName default -user scott -password tiger
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-addJMSConnectionFactory -domain Queue -location jms/ExampleQueueCF
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-removeJMSConnectionFactory -location jms/ExampleQueueCF
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-getJMSConnectionFactories
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-addDestination -domain Queue -name ExampleQueue -jndiLocation jms/ExampleQueue
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-removeDestination -name ExampleQueue -removePFile true
For example:
java -jar admin_client.jar deployer:oc4j:localhost oc4jadmin welcome1
-getDestinations
set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\tools.jar
4. Run jconsole:
%JAVA_HOME%\bin\jconsole
-J-Djava.class.path=%CLASSPATH%
-J-D%PROPS%
Table 6–30 JMX URLs for OC4J and Oracle Application Server Targets
Target JMX URL
OC4J service:jmx:rmi://test-cycle.oracle.com:23791
Standalone
Server
OC4J service:jmx:ormi:///opmn://test-cycle.oracle.com:6010/test1
Instance on
Oracle
Application
Server
Oracle service:jmx:rmis:///opmn://stadp69:6003/cluster/as101/admin
Application
Server
Cluster
6. The JConsole utility will show the OC4J MBeans from the target instance. These
MBeans can be used to view and manage the configuration of the OC4J instance.
On Windows, the environment used by JConsole can be modified by using a special
System property form:
-J-Dname=value
set URL=service:jmx:rmi:///opmn://test-cycle.oracle.com:6010/testunit
set JAVA_HOME=C:\java\jdk150_07
set JCONSOLE_CP
set JCONSOLE_CP=%JCONSOLE_CP%;%JAVA_HOME%\lib\jconsole.jar
set JCONSOLE_CP=%JCONSOLE_CP%;%JAVA_HOME%\lib\tools.jar
set ORACLE_HOME=D:\oc4j_admin_client
set ORACLE_CP=
set ORACLE_CP=%ORACLE_CP%;%ORACLE_HOME%\j2ee\home\admin_client.jar;
set CLASSPATH=%JCONSOLE_CP%;%ORACLE_CP%
set PROPS=
set PROPS=%PROPS%
-J-Djmx.remote.protocol.provider.pkgs=oracle.oc4j.admin.jmx.remote
endlocal
MBeanServerConnection mbeanServer =
jmxCon.getMBeanServerConnection();
In JDK 5.0 this code compiles with no Oracle libraries required, just the libraries
provided by JDK 5.0:
clear
@echo off
@setlocal
set J2EE_HOME=c:\java\oc4j-1013-prod\j2ee\home
set JAVA_HOME=c:\java\jdk50
set CLASSPATH=.
rem
rem Uncomment below if using JDK14
rem set CLASSPATH=%CLASSPATH%;%J2EE_HOME%\lib\jmxri.jar
rem set CLASSPATH=%CLASSPATH%;%J2EE_HOME%\lib\jmx_remote_api.jar
rem set CLASSPATH=%CLASSPATH%;%J2EE_HOME%\lib\javax77.jar
rem
@endlocal
To run the code with the oc4j_admin_client_101310.zip distribution:
1. Create a runnable JAR file.
2. Drop the JAR file into the j2ee/home directory of the administration client
distribution.
3. Connect to a remote OC4J instance.
The code runs in JDK 5.0 with $ORACLE_HOME/j2ee/home/oc4jclient.jar and
$ORACLE_HOME/j2ee/home/admin_client.jar:
@echo off
@setlocal
clear
set J2EE_HOME=c:\java\oc4j-1013-prod\j2ee\home
set JAVA_HOME=c:\java\jdk50
rem
rem Uncomment if using JDK14
rem set CLASSPATH=%CLASSPATH%;%J2EE_HOME%\lib\jmxri.jar
rem set CLASSPATH=%CLASSPATH%;%J2EE_HOME%\lib\jmx_remote_api.jar
rem set CLASSPATH=%CLASSPATH%;%J2EE_HOME%\lib\javax77.jar
@endlocal
The connection URL in the main method of the example is set to connect to a local
OC4J instance. If you want to connect to an Oracle Application Server through an
ORMI port, use a Service URL of the following form:
service:jmx:rmi|ormi:///opmn://stadp57.us.oracle.com:6003/home
A service URL will obtain the ORMI port from the OPMN daemon. The ORMI port is
assigned at runtime. Using the OPMN connection string path will connect you to the
specified OC4J instance.
For more information about how to use a JMX client to manage OC4J instances
remotely, see "Remote Management Using the JMX Remote API (JSR-160)" in the
Oracle Containers for J2EE Developer’s Guide.
OC4J provides a command-line utility called admin.jar that can be used to perform
operations on an active OC4J instance in a standalone OC4J installation. Among other
things, you can use this utility to stop and restart OC4J, deploy applications, and
gather information on current resource usage.
This chapter includes the following topics:
■ Overview of admin.jar Usage
■ Managing a Standalone OC4J Instance
■ Deploying or Undeploying Applications
■ Managing Applications
■ Managing Data Sources
■ Deploying or Undeploying Connectors
As an example, the following command will force a graceful shutdown of the OC4J
server. The value supplied for oc4jOrmiPort is the default, 23791. The user name
supplied for adminId is the user name for the default administrator account,
oc4jadmin.
java -jar admin.jar ormi://localhost:23791 oc4jadmin password -shutdown
Some of these commands include an -application switch that takes the name of the
application to affect. The value is the name of the specific application to affect, as
defined within the appropriate <application> element in the server.xml
configuration file.
Notes:
■ admin.jar cannot be used to deploy applications to an
OPMN-managed OC4J instance.
■ admin.jar supports deployment of EAR files only. It does not
allow deployment of standalone modules, such as a Web
module packaged in a WAR file.
■ admin.jar does not accept a deployment plan. Any archive
deployed using this utility must include the required
OC4J-specific deployment descriptor files, such as
orion-application.xml or orion-web.xml.
Deploying an application is a two-step process: You must first deploy the archive into
OC4J, then bind the Web module to the Web site that will be used to access the
application.
The -deploy command is first used to deploy the application:
java -jar admin.jar ormi://oc4jHost:oc4jOrmiPort adminId
adminPassword -deploy -file path/filename
-deploymentName appName -targetPath deploy_dir
Once the archive is deployed, the -bindWebApp command is used to bind a Web
application to the Web site it will be accessed through:
java -jar admin.jar ormi://oc4jHost:oc4jOrmiPort adminId adminPassword
-bindWebApp appName webAppName
webSiteName contextRoot
For example, the following command deploys the utility application into OC4J:
java -jar admin.jar ormi://localhost:23791 oc4jadmin password -deploy -file
utility.ear -deploymentName utility
Next, the following example binds the utility application and its utility-web
Web module to the default OC4J Web site:
java -jar admin.jar ormi://localhost:23791 oc4jadmin password -bindwebapp utility
utility-web default-web-site /utility
Managing Applications
This section outlines the functionality provided by admin.jar for managing
applications in a standalone OC4J instance. It includes the following sections:
■ Starting, Stopping, or Restarting an Application
■ Updating an EJB Module Within an Application
For example, the following commands can be used to update the customerEjb.jar
module of the petstore application. Assume the following directory structure on the
developer's machine:
/work
/src - application source code
/build - compiled class files
/dist - assembled EAR and JAR files
If the updated EJB JAR is in the /dist directory, in a location matching the relative
path defined in the application's application.xml J2EE standard deployment
descriptor, the following command could be issued from the /dist directory:
java -jar $ORACLE_HOME/admin.jar ormi://myoc4jserver:23791 oc4jadmin password
-application petstore -updateEJBModule customerEjb.jar
If the updated file is located within the /build directory, the following command
specifying the JAR location in the -file option can be issued from the /dist
directory:
java -jar admin.jar ormi://myoc4jserver:23791 oc4jadmin password
-application petstore -updateEJBModule customerEjb.jar
-file build/customerEjb.jar
An example follows:
java -jar admin.jar ormi://localhost:23791 oc4jadmin password -application myapp
-installDataSource -jar C:/jdbc/lib/ojdbc14dms.jar
-url jdbc:oracle:thin:@dev2:1521:main -location jdbc/OracleUddi
-username dbuser -password dbpw -className oracle.jdbc.pool.OracleDataSource
Table 7–8 (Cont.) Options for Application and Data Source Management
Option Description
-application Tests an existing data source. Supply information with the
appName following subswitches:
-testDataSource
-location jndiName:
The namespace location for the data source. For example,
jdbc/DefaultDS. Required.
-username name:
The user name you use to log in along with a password. Optional.
-password password:
The password to log in with. Optional.
-application Removes an existing data source. Supply information with the
appName following subswitch:
-removeDataSource
-location jndiName:
The namespace location for the data source. For example,
jdbc/DefaultDS. Required.
For example, the following command converts an existing configuration and writes it
to a new file:
java -jar admin.jar ormi://localhost:23791 oc4jadmin password
-convertDataSourceConfiguration C:\oc4j\j2ee\home\config\data-sources.xml
C:\new\data-sources.xml
Ideally, you should rename the old data-sources.xml after the conversion, rather
than delete it, as it contains information that might be needed for reference. After the
new file has been generated, copy it into the directory containing the legacy file.
In the syntax, the ORMI URL is optional. You can specify an ORMI URL only when
OC4J is running.
Notes: ■If you include the ORMI port, then OC4J must be running.
When OC4J is not running, you must omit the ORMI URL from
the admin.jar command line.
■ If you do not include the ORMI port, then the admin.jar
command will work either way; that is, with OC4J running or
with OC4J not running.
■ The admin.jar utility works only in a standalone OC4J
environment. This utility is installed in the Oracle Application
Server environment but does not work in an OPMN-managed
environment.
■ The newer admin_client.jar utility works in both
environments, standalone and managed Oracle Application
Server. However, the admin_client.jar utility does not
convert data-sources.xml files.
Check Consistency Between the Application and the New data-sources.xml File
After conversion, whether manual or automatic, visually inspect the new
data-sources.xml file to confirm that there is consistency between your
application and the new file regarding the JNDI location used to refer to a data source.
This consistency check is advisable because the new file may contain data source
definitions that are not used, which happens because the old format uses multiple
location attributes (such as location, ejb-location, and xa-location). The
conversion to the new 10.1.3 format creates a separate data source in the new
data-sources.xml file corresponding to each location attribute specified in the old
data-sources.xml file. In most cases, client applications will use only the data
source defined by either the location or ejb-location attribute. The converted
data-sources.xml file may have definitions that are not used by the applications
and can be removed from the file.
For examples of the new data-sources.xml format, see the "Data Sources" chapter
of the Oracle Containers for J2EE Services Guide.
This chapter explains how to configure and manage cluster topologies in an Oracle
Application Server environment and groups of OC4J instances within Oracle
Application Server clusters. It includes the following topics:
■ Clustering Overview
■ Creating and Managing OC4J Groups Within Oracle Application Server Clusters
■ Configuring a Cluster
■ Viewing the Status of a Cluster
■ Configuring Routing and Load Balancing with Oracle HTTP Server
■ Configuring Application Mount Points
■ Running an OC4J Instance on Multiple JVMs
Application clustering, the clustering of applications deployed to Oracle Application
Server nodes for the purpose of session or state replication, is covered in Chapter 9,
"Application Clustering in OC4J".
Clustering Overview
This section provides an overview of the clustering mechanisms supported in Oracle
Application Server 10g Release 3 (10.1.3.1.0) and notes the significant changes in
functionality between the 10.1.3 release and previous releases. It includes the following
topics:
■ How Clustering Works
■ Supported Clustering Models
■ Changes in Clustering
you are actually connecting the ONS servers running on each Oracle Application
Server node.
Previous releases of Oracle Application Server supported clustering of a fully
connected set of server nodes only, which meant that each node had to be explicitly
specified in the ONS configuration file (ons.conf). When a node was added or
removed from the cluster, the configuration had to be updated on each server node
and the server restarted.
The current release supports a new dynamic discovery mechanism, enabling the
cluster to essentially manage itself. In this framework, each ONS maintains a map of
the current cluster topology. When a new ONS is added to the cluster, each existing
ONS adds the new node and its connection information to its map. At the same time,
the new ONS adds all of the existing nodes to its map. Alternatively, when an ONS is
removed from the cluster, the maps for the remaining nodes are updated with this
change.
As of Oracle Application Server Release 3 (10.1.3.0.0), the ONS configuration file
(ons.conf) is no longer used. Instead, ONS configuration data is set in the
<notification-server> element within opmn.xml, the OPMN configuration file
located in the ORACLE_HOME/opmn/conf directory on each node. Clustering
configuration in turn is set within a <topology> subelement. Only one <topology>
subelement is allowed within a <notification-server> element.
The following example illustrates a cluster topology configuration in opmn.xml:
<notification-server>
<topology>
<discover list="*225.0.0.20:8001"/>
</topology>
...
</notification-server>
Changes in Clustering
The following are changes in cluster configuration in Oracle Application Server 10g
Release 3 (10.1.3) from previous releases.
■ As of Oracle Application Server 10g Release 3 (10.1.3.1.0), OC4J instances belong to
groups within the cluster topology, enabling you to perform group deployment,
configuration, and administration operations across an Oracle Application Server
cluster.
In Oracle Application Server 10g Release 3 (10.1.3.1.0), groups are explicitly
created by administrators using any desired name. Once a group has been created,
it can be populated with any of the
OC4J instances that are resident within the cluster topology.
The default OC4J group (default_group) is created automatically when you install
an application server instance. When you install Oracle Application Server 10g Release
3 (10.1.3.1.0), the installer creates a default OC4J instance that resides in the default
group. Later, you can add OC4J instances and organize them into groups.
For example, you can create a new group for the deployment of a particular
application to all OC4J instances of the group across the Oracle Application Server
cluster. Then you can use the Group page in the Application Server Control Console to
make application-specific configuration changes to all instances of the application in
the OC4J group, across the cluster.
In the following topics, this section describes how to create and manage groups of
OC4J instances for group operations on applications replicated across one or more
Oracle Application Server clusters:
■ Creating Groups of OC4J Instances
■ Managing OC4J Instances in a Group
■ Replicating Changes Across a Cluster
■ Running an OC4J Instance on Multiple JVMs
Note: You can also move an OC4J instance into a group after the
group is created, as follows:
1. In the Cluster Topology page, under Groups, select the group.
2. In the Group: groupname page, choose Add.
After you create a group, it appears in the list of groups on the Cluster Topology page.
You can later add OC4J instances to the group or remove instances from the group, as
"Managing OC4J Instances in a Group" on page 8-7 describes.
You can also create a group during the following operations:
■ Creating a new OC4J instance
When you create a new OC4J instance, you can create a new group or identify an
existing group for the instance. If you do not specify a group, the new instance is
assigned to default_group.
■ Removing an OC4J instance from a group
When you remove an OC4J instance from a group, you create a new group or
identify an existing group for the instance.
Consider the following examples of using multiple OC4J instances and groups to
manage your Oracle Application Server environment:
■ Create OC4J instances for specific purposes. For example, use the default OC4J
instance as your administration OC4J and be sure you use it exclusively for
Creating an OC4J Instance Through the Application Server Control Console To create an OC4J
instance through the Application Server Control Console:
1. On the Cluster Topology page, click the name of an Oracle Application Server
instance to navigate to an Application Server: instance_name page.
2. Click Create OC4J Instance.
3. On the Create OC4J Instance page, enter the following information:
■ OC4J Instance Name: Enter a name for the instance.
Note: You cannot enter home as the instance name because home is
reserved for the name of the default OC4J instance.
A confirmation screen is displayed after the instance has been created. The password
for this OC4J instance is the same as the password used for the oc4jadmin user for
the installation.
Creating an OC4J Instance with the createinstance Utility The createinstance utility
enables you to create additional OC4J instances in an group with the following syntax:
createinstance -instanceName instanceName [-port httpPort] [-groupName group]
You must supply an HTTP listener port as the value for httpPort when creating a
new instance in a standalone OPMN-managed OC4J instance (J2EE Server and Process
Management install type.) This HTTP listener port will be set in the
default-web-site.xml Web site configuration file created for the instance.
Every new OC4J instance is assigned to a group. If the specified group does not exist,
it is created. If the -groupName switch is not provided, the instance goes into the
default_group group.
As part of the creation process, you will be asked to enter a password. This password
will be tied to the oc4jadmin user for this instance. Oracle recommends that you
enter the same password used by the oc4jadmin user to access the Application
Server Control Console in the administration instance to prevent problems with
OPMN.
As part of the creation operation, the new instance is added to the existing opmn.xml
file. To ensure that OPMN is aware of the new instance, an OPMN reload is performed
at the end of the create operation. For this reload, the createinstance utility must
connect to the MBeanServer used to configure OPMN. The password of the new OC4J
instance is used for authentication. If the password of the new instance is not the same
as the instance running the MBeanServer, an error is returned. This does not prevent
the instance from being created, but it does cause problems when OPMN or other
components need to connect to the new instance. Therefore, Oracle recommends that
you create all OC4J instances in the target Oracle Application Server cluster with the
same password.
You also need to specify the same password for the oc4jadmin user in each OC4J
instance of a group within an Oracle Application Server cluster so the user can
perform group operations.
Usage Notes:
■ The createinstance utility can be used regardless of whether
the Oracle Application Server instance is in a running or stopped
state.
■ If the new OC4J instance will be required to accept ORMI over
SSL (ORMIS) requests, you must configure ORMIS in the
instance-specific rmi.xml file and update opmn.xml with the
ORMIS port information as described in the Oracle Containers for
J2EE Security Guide.
You can optionally supply an HTTP port for the value of -port. This feature can be
used when the Oracle Application Server instance does not include Oracle HTTP
Server. Setting an HTTP port makes it possible to access the OC4J instance's home page
directly.
The new instance will be created within a new ORACLE_HOME/j2ee/instance
directory, the same location as the default home OC4J instance. A new
<process-type> element containing the instance configuration will also be added to
the opmn.xml configuration file.
The following directories and files are generated in the new ORACLE_
HOME/j2ee/instance directory structure:
applib/
applications/
config/
contains default versions of all server-level configuration files
config/database-schemas/
contains all database schema XML files packaged with OC4J
connectors/
contains RAR files packaged with OC4J
log/
persistence/
The new instance does not include the OC4J binary libraries; instead, the instance will
utilize the libraries installed in the home instance. The default application is
deployed to the new instance; however, binaries and configuration files for other
deployed applications, including Application Server Control Console, are not copied
to the instance.
■ If OPMN is running when the removeinstance tool is in use, you must invoke
opmnctl reload to reload the updated opmn.xml into the runtime.
Deleting an OC4J Instance Through the Application Server Control Console To delete an OC4J
instance through the Application Server Control Console:
1. On the Cluster Topology page, click the name of the Oracle Application Server
instance where the OC4J instance is running to navigate to the Application Server:
instance_name page.
2. Click the Delete icon for the instance you want to delete.
3. On the confirmation page, click Yes.
A confirmation screen is displayed after the instance has been deleted.
Deleting an OC4J Instance with the removeinstance Utility You can delete an OC4J instance
by using the removeinstance utility, which deletes the directory created for the
instance from the ORACLE_HOME/j2ee directory structure and removes configuration
data for the instance from opmn.xml.
The removeinstance utility is installed in the ORACLE_HOME/bin directory. The
syntax is as follows:
removeinstance -instanceName instanceName
To delete an instance with the utility, take the following steps:
1. Stop the instance:
ORACLE_HOME/opmn/bin/opmnctl stopproc process-type=oc4J_instanceName
configuration set will update all the OC4J instances that started, corresponding to the
number of JVMs set. Configuring the number of JVMS per OC4J instance is covered in
"Running an OC4J Instance on Multiple JVMs" on page 8-31.
Beyond these specific features, Table 8–2 summarizes the complete set of configuration
files and their usage in case manual configuration across a cluster is determined to be
necessary for an application configuration change.
Configuring a Cluster
This section contains instructions on configuring the following clustering models:
■ Configuring Dynamic Node Discovery Using Multicast
■ Configuring Static Discovery Servers
■ Configuring Cross-Topology Gateways
■ Configuring Static Node-to-Node Communication
Each ONS maintains its own map of the cluster topology. When a new ONS is added
to the cluster, each existing ONS adds the new node and its connection information to
its map. At the same time, the new ONS adds all of the existing nodes to its map.
Alternatively, when an ONS is removed from the cluster, the maps for the remaining
nodes are updated with this change.
Notes:
■ All nodes within the topology must be configured to use the same
multicast address and port.
■ The multicast address must be within the valid address range,
which is 224.0.1.0 to 239.255.255.255.
Ideally, multicast address and port assignments should be managed by
your systems administration staff to avoid potential conflicts with other
applications.
</notification-server>
...
</opmn>
Note: The opmn.xml file must be reloaded for changes made to take
effect. Run the following command on the affected node to reload
opmn.xml:
opmnctl reload
For example:
opmnctl config topology update discover="*225.0.0.20:8001"
opmnctl reload
opmnctl reload
For example:
opmnassociate.sh "*225.0.0.20:8001" -restart
For example:
opmnassociate "*225.0.0.20:8001" -restart
Note: You can use the opmnassociate utility only to add the
default home OC4J instance to a cluster. If you want to add another
OC4J instance, such as home2, use the opmnctl utility, as described in
"Configuring Multicast Discovery with opmnctl" on page 8-14. In
general, opmnassociate is a simplified form of the more complete
opmnctl command set for configuring multicast discovery. Using
opmnctl for configuring multicast discovery, as described in
"Configuring Multicast Discovery with opmnctl" on page 8-14, is the
recommended approach.
Set the TCP/IP connection information for the discovery server within the
<discover> element in the opmn.xml file on each static hub node within the cluster.
For example:
<opmn>
<notification-server>
<port ... />
<ssl ... />
<topology>
<discover list="node1.company.com:6200"/>
</topology>
</notification-server>
...
</opmn>
Note: The opmn.xml file must be reloaded for changes to take effect
in the OPMN runtime. Run the following command on the affected
node to reload opmn.xml:
opmnctl reload
For example:
opmnctl config topology update discover="node.company.com:6200"
opmnctl reload
opmnctl reload
In this model, an ONS node within each isolated topology is configured as a gateway
server, which serves as an entry point into the cluster. The gateway configuration is
specified within a <gateway> subelement of the <topology> element.
Set the host and port for the source gateway node and each target node it will connect
to as the value for the list attribute. The order in which the nodes are listed does not
matter.
■ For each node, specify the host name or IP address of the server and the OPMN
remote port, which is defined in the <port> element within the opmn.xml file
installed on the static server, as illustrated below.
<port local="6100" remote="6200" request="6003"/>
The following example shows the opmn.xml configuration for node1, which will
connect with gateway nodes node2 and node3. This same configuration can be set on
each of these gateway nodes. Note the / at the end of the list:
<opmn>
<notification-server>
<port ... />
<ssl ... />
<topology>
<gateway list="node1.com:6201&node2.com:6202&node3.com:6203/"/>
<discover list="*224.0.0.37:8205"/>
</topology>
</notification-server>
...
</opmn>
Note: The opmn.xml file must be reloaded for changes to take effect
in the OPMN runtime. Run the following command on the affected
node to reload opmn.xml:
opmnctl reload
If you supply the localhost IP address, 127.0.0.1, the machine can work with or without
a network.
In this configuration, a node list containing the host address and ONS remote listener
port for each node in the cluster is supplied. Prior to Oracle Application Server Release
3 (10.1.3.0.0), when ONS configuration data was integrated into opmn.xml, this
configuration would have been set in the ons.conf configuration file.
Define the host address and the ONS remote listener port - specified within the
<port> subelement of <notification-server> - for each node in the cluster
within the <nodes> subelement. Separate each node from the next with a comma.
For example:
<opmn>
<notification-server>
<port local="6101" remote="6202" request="6004"/>
<ssl ... />
<topology>
<nodes list="node1-sun:6201,node2-sun:6202"/>
</topology>
</notification-server>
...
</opmn>
Supply the same list for each node in the cluster; each ONS instance will identify itself
in the list and ignore that entry.
Note: The opmn.xml file must be reloaded for changes to take effect
in the OPMN runtime. Run the following command on the affected
node to reload opmn.xml:
opmnctl reload
The output shows the status of the components installed in each active Oracle
Application Server instance within the cluster:
Processes in Instance: AppSrv1.comp1.yourcompany.com
-------------------+--------------------+---------+---------
ias-component | process-type | pid | status
-------------------+--------------------+---------+---------
OC4JGroup:COLORS | OC4J:home | 26880 | Alive
OC4JGroup:COLORS | OC4J:oc4j_soa | 26256 | Alive
HTTP_Server | HTTP_Server | 26879 | Alive
The rest of this section describes how to change routing IDs, in the following topics:
■ Changing Routing IDs Through the Application Server Control Console
■ Changing Routing IDs in the opmn.xml file
For information on how Web sites are configured to listen for AJP requests, see
Configuring Web Site Connection Data on page 13-2.
The <data> element containing the default routing ID is set within the
<ias-instance> element, which contains the OPMN configuration data for the
Oracle Application Server instance. Because the routing ID is set at this level, the
routing-id value set in this <data> element is applied to all instances of the Oracle
HTTP Server and OC4J components installed within the OAS instance.
<opmn>
<process-manager>
...
<ias-instance id="instance1" name="instance1">
...
<environment>
...
</environment>
<module-data>
<category id="start-parameters">
<data id="routing-id" value="g_rt_id"/>
</category>
</module-data>
</environment>
<ias-component id="HTTP_Server">
...
</ias-component>
<ias-component id="default_group">
...
</ias-component>
</ias-instance>
</process-manager>
</opmn>
However, the routing ID can be set at the individual Oracle HTTP Server or OC4J
instance level by adding a <data> element within the <category
id="start-parameters"> element for the component. This value overrides the
routing ID assigned at the Oracle Application Server instance level.
You can specify any string as the value of the routing-id attribute. There is no
required format for this identifier. The following entry in opmn.xml sets the routing
ID for an Oracle HTTP Server instance:
<opmn>
<process-manager>
...
<ias-instance id="instance1" name="instance1">
...
<ias-component id="HTTP_Server">
<environment>
...
</environment>
<process-type id="HTTP_Server" module-id="OHS">
<module-data>
<category id="start-parameters">
<data id="start-mode" value="ssl-enabled"/>
<data id="routing-id" value="group_b_id"/>
</category>
</module-data>
<process-set id="HTTP_Server" numprocs="1"/>
</process-type>
</ias-component>
</ias-instance>
</process-manager>
</opmn>
The following entry in opmn.xml sets the routing ID for the OC4J home instance:
<opmn>
<process-manager>
...
<ias-instance id="instance1" name="instance1">
...
<ias-component id="default_group">
<environment>
</environment>
<process-type id="home" module-id="OC4J" status="enabled">
<module-data>
<category id="start-parameters">
<data id="java-options" ... />
<data id="routing-id" value="group_b_id"/>
</category>
</module-data>
<process-set id="HTTP_Server" numprocs="1"/>
<port id="default-web-site" range="12501-12600" protocol="ajp" />
<port id="rmi" range="12401-12500"/>
<port id="jms" range="12601-12700"/
<port id="rmis" range="12701-12800"/
<process-set id="default_group" numprocs="1"/>
</process-type>
</ias-component>
</ias-instance>
</process-manager>
</opmn>
The mod_oc4j load balancing options do not take into account the number of OC4J
processes running on an OC4J instance when determining which OC4J instance to
send a request to. OC4J instance selection is based on the configured weight for the
instance, and its availability.
To modify the mod_oc4j load balancing policy, set the Oc4jSelectMethod and the
Oc4jRoutingWeight directives in the ORACLE_
HOME/Apache/Apache/conf/mod_oc4j.conf file:
1. In the mod_oc4j.conf file on each Oracle Application Server instance, within the
<IfModule mod_oc4j.c> section, set the Oc4jSelectMethod directive to one
of the values shown in Table 8–3.
If you set the Oc4jSelectMethod directive to either roundrobin:weighted or
random:weighted, you may also need to set the Oc4jRoutingWeight directive
to specify the weight (see the next step).
See "Choosing a mod_oc4j Load Balancing Algorithm" on page 8-27 for tips on
choosing a routing algorithm.
Example:
Oc4jSelectMethod random:local
For information on how to set up metric-based load balancing, see Oracle HTTP
Server Administrator’s Guide.
will service the requests. This section includes the following topics on mount point
creation:
■ Enabling Dynamic Configuration of Application Mount Points
■ Changing the Mount Point Configuration Algorithm
■ Viewing Mount Point Configuration Data
See the Oracle HTTP Server Administrator’s Guide for additional details on mount point
configuration.
When a new application is deployed to an OC4J instance, its mount point information
is transmitted to Oracle HTTP Server, enabling mod_oc4j to dynamically discover the
application and begin routing requests to it.
Conversely, when an application is stopped or removed from an OC4J instance, the
mod_oc4j routing table is updated to reflect the application's absence, causing mod_
oc4j to stop routing requests to the application instance.
You can still configure application mount points manually, as "Changing the Mount
Point Configuration Algorithm" on page 8-29 describes. For information about
viewing the mount point list, see "Viewing Mount Point Configuration Data" on
page 8-30. For additional information about configuring mount points, see Oracle
HTTP Server Administrator’s Guide.
You will now be able to view mount point data by appending the /oc4j-status
context URI to the Oracle HTTP Server server URL:
http://ohsHost:ajpPort/oc4j-status
For example:
http://node1.company.com:7777/oc4j-status
The following is sample output displayed in the resulting Web page, with comments:
hostname : node1.company.com
local instance : node1.company.com
select method : Round-Robin
select affinity : None
# OHS routing configuration
routing mode : Static-Dynamic
routing ID : g_rt_id
# 'ascontrol' application
application : ascontrol
context : /em
process (Jgroup): 0
# 'demos' application
application : demos
context : /ojspdemos/jstl, /ojspdemos
process (Jgroup): 0 (demos)
process,ias instance,host,port,status
0 : home.node1.company.com, node1.company.com, 12502, ALIVE
1 : home.node1.company.com, node1.company.com, 12501, ALIVE
2 : home.node1.company.com, node1.company.com, 12503, ALIVE
This figure shows four processes that are configured to run from an OC4J instance
named OC4J_home in one of the Oracle Application Server instances within a cluster.
3. Click the number that indicates how many JVMs are configured for the OC4J
instance.
The JVM Metrics page displays a summary of key metrics for all the JVMs
configured for the selected OC4J instance. You can use this table to compare the
performance of multiple JVMs.
4. For more detailed information, click the name of a JVM.
The OC4J JVM page displays a set of charts and numeric metrics that give you a
detailed picture of how the JVM is performing. Select a refresh interval from the
View Data list. You can then view the changes in the performance charts over a
period of time.
Setting the jmxremote System Property for Monitoring J2SE JVM 5.0 Metrics
You can set the jmxremote System Property for monitoring J2SE JVM 5.0 metrics
through the Application Server Control Console, through an OC4J startup option, or
for an OPMN-managed environment, in the opmn.xml file.
For information about how to specify OC4J runtime startup options, see Setting OC4J
Runtime Options at Startup on page 4-2.
If you are running OC4J in a standalone environment, include the following argument
to the OC4J java command:
java -Dcom.sun.management.jmxremote -jar oc4j.jar
Using the Application Server Control Console to enable the J2SE 5.0 Platform MBeans
results in the jmxremote system property being set in the opmn.xml file. If you use
this approach, then there is no need to set the property manually in the opmn.xml file.
This chapter discusses the application clustering framework provided in OC4J 10g
(10.1.3.1.0). It includes these topics:
■ Overview of Application Clustering in OC4J
■ How Application Clustering Differs from Previous OC4J Releases
■ Configuring Application Clustering
Although islands reduced overhead by not replicating data across the entire cluster,
they increased configuration and management overhead. In addition, islands were
applicable only to Web applications; EJB applications could not utilize the island
configuration.
In OC4J 10g (10.1.3), you can still effectively limit the number of nodes to which to
replicate data by using the write-quota attribute of the <cluster> element. This
attribute makes it possible to control the extent of state replication.
See "Managing the Number of JVMs to Which Application State Data Is Replicated"
on page 9-5 and "Overview of the <cluster> Element" on page 9-10 for details on the
write-quota attribute.
The replication policy applied to all Web modules and EJB components within an
application is specified in the <replication-policy> element within the
application's orion-application.xml configuration file. The syntax of this
element is as follows:
<replication-policy trigger="onSetAttribute|onRequestEnd|onShutdown"
scope="modifiedAttributes|allAttributes" />
greater than 1) running on a separate physical node (or nodes) to store its state
replicas.
To replicate state to all JVMs within the Oracle Application Server cluster, you must
specify the total number of JVMs within the cluster as the value of write-quota.
The next example specifies a new multicast address and port, using the ip and port
attributes.
The optional bind_addr attribute, which can be used to specify which Network
Interface Card (NIC) to bind to. This is useful if you have OC4J host machines with
multiple network cards, each with a specific IP address, and you wish to define which
NIC is used to send and receive the multicast messages.
<orion-application ...>
...
<cluster allow-colocation="false">
<replication-policy trigger="onShutdown" scope="allAttributes" />
<protocol>
<multicast ip="225.130.0.0" port="45577" bind_addr="226.83.24.10" />
</protocol>
</cluster>
</orion-application>
Note: To use this feature, all nodes hosting the application must be
first be members of a cluster utilizing either the OPMN dynamic
multicast discovery or static discovery server mechanism.
See "Supported Clustering Models" on page 8-2 for details.
Each node sends periodic ONS (heartbeat) messages to OPMN to inform OPMN of
current status, enabling OPMN to maintain a real-time list of available peer nodes, and
to notify nodes when one has failed. In the event that a node is lost, another node is
able to service its requests.
<orion-application ...>
...
<cluster>
<protocol>
<peer>
<opmn-discovery />
</peer>
</protocol>
</cluster>
</orion-application>
An alternative configuration could have all of the nodes specifying the same node as a
peer. For example, you could have the www1.company.com and
www3.company.com nodes both specify www2.company.com as a peer. In this
configuration, www2.company.com would have to be the first node started; the other
nodes would then connect to this node, and establish connections with one another.
The tables are created by OC4J the first time database replication is invoked. See
Appendix C, "Overview of the Session State Tables" for details on the table schema.
The length of time session data is stored in the database is based on the session's
time-to-live (TTL) value. A session is considered expired when the difference between
the current database time and the time the session was last accessed is greater than the
session timeout value. The actual equation for determining a session's TTL is:
(Current Database Time - Last Accessed Time) > Max Inactive Time
Expired sessions are removed from the database on the next execution of the OC4J task
manager. See "Configuring the OC4J Task Manager" on page 10-1 for instructions on
setting the task manager interval.
In the event that the OC4J server terminates without proper session termination,
orphan records will be created in the database. These records will also be deleted the
next time the task manager runs.
Disabling Clustering
Clustering can be disabled globally or for a specific application using the Boolean
enabled attribute of the <cluster> element. Setting this attribute to false in an
application's orion-application.xml file effectively removes the application from
the cluster.
<cluster>
Contains the application clustering configuration for an enterprise application running
within an OC4J instance.
Subelements of <cluster>:
<property-config>
<flow-control-policy>
<replication-policy>
<protocol>
<synchronous-replication>
Attributes:
■ enabled: Whether clustering is enabled for the application. The default is true.
Setting this value at the application level overrides the value inherited from the
parent application, including the default application.
■ group-name: The name to use when establishing the replication group channels.
If not supplied, the application name as defined in server.xml, the OC4J server
configuration file, is used by default, and new group channels are created for each
enterprise application.
If a value is specified, the application and all child applications will use the
channels associated with this group name.
This attribute is ignored if the <database> tag is included.
<property-config>
Contains data required to use the JavaGroups group communication protocol to
replicate session state across nodes in the cluster.
Attributes:
■ url: A link to a JavaGroups XML configuration file.
■ property-string: A string containing the properties that define how the
JavaGroups JChannel should be created.
<replication-policy>
The replication policy to apply, which defines when replication of data occurs and
what data is replicated.
Attributes:
■ trigger: The frequency at which replication occurs. See Table 9–1 on page 9-4 for
the values for this attribute.
■ scope: What data is replicated. See Table 9–2 on page 9-5 for the values for this
attribute.
<protocol>
Defines the mechanism to use for data replication. Only one mechanism can be
specified.
Subelements:
<multicast>
<peer>
<database>
<multicast>
Contains the configuration required to use multicast communication for replication.
This is the default protocol used.
Attributes:
■ ip: The multicast address to use. The OC4J default is 230.230.0.1.
■ port: The multicast port to use. The OC4J default is port 45566.
■ bind_addr: The Network Interface Card (NIC) to bind to. This is useful if you
have OC4J host machines with multiple network cards, each with a specific IP
address.
<peer>
Contains the configuration required to use peer-to-peer (P2P) communication for
replication.
Subelements:
<opmn-discovery>
<node>
Attributes:
■ start-port: The initial port on the node to attempt to allocate for peer
communication. OC4J will continue to increment this value until an available port
is found. The default is port 7800. Valid only for configuring static peer-to-peer
replication in a standalone OC4J installation.
■ range: The number of times to increment the port value specified in each <node>
subelement while looking for a potential peer node. The default is 5 increments.
Valid only for configuring static peer-to-peer replication in a standalone OC4J
installation.
■ timeout: The length of time, in milliseconds, to wait for a response from a peer
while looking for a potential peer node. The default is 3000 milliseconds. Valid
only for configuring static peer-to-peer replication in a standalone OC4J
installation.
■ bind_addr: The Network Interface Card (NIC) to bind to. This is useful if you
have OC4J host machines with multiple network cards, each with a specific IP
address.
<opmn-discovery>
Configures OC4J to use dynamic peer-to-peer replication in an Oracle Application
Server environment.
<node>
Contains the host name and port of a node to poll if using static peer-to-peer
communication. One or more instances of this element can be supplied within a
<peer> element.
Attributes:
■ host: The host name of the peer node as a URL.
■ port: The port on the node to use for peer-to-peer communication. The default is
port 7800.
<database>
Contains the connection information required to persist state data to a database.
Attributes:
■ data-source: The name of a data source containing the database connection
information. This must be the value of the data source's jndi-name as specified
in data-sources.xml.
<flow-control-policy>
Controls the amount of memory to allocate to the handling of clustering messages
during replication. This element is intended to prevent out-of-memory errors by
gating the amount of data (bytes) sent from one node to another during replication.
Attributes:
■ enabled: Whether flow control is enabled. The default is true.
■ max-bytes: The maximum number of bytes the receiving node can accept. After
this value is reached, the sending node must wait for an acknowledgement from
the receiver before additional messages can be received. The default value is
500000.
■ min-bytes: The minimum number of bytes the receiving node can accept
without triggering an acknowledgement that more bytes should be sent. If the
bytes received is below this value, the receiver will acknowledge that it can accept
more bytes from the sender. The default is 0.
■ threshold: If min-bytes is not specified, this factor value is applied to
incoming requests to determine the value of that attribute. The default value is
0.25.
<synchronous-replication>
If included, a node replicating application data will wait for an acknowledgement that
the data update was received from at least one other peer node before continuing with
replication. This element is optional; the default behavior is for nodes to continue
replicating data to other nodes asynchronously.
Attributes:
■ timeout: The length of time, in milliseconds, to wait for a response from a peer
node. If this value is exceeded, replication should continue, although no
acknowledgement will be sent. The default value is 10000 milliseconds (10
seconds).
This chapter provides guidelines for configuring the task manager for an OC4J
instance and configuring thread pools for OC4J instances and Web site applications. It
contains the following sections:
■ Configuring the OC4J Task Manager
■ Configuring OC4J Thread Pools
Note: You can also set this parameter through the granularity
attribute in the TaskManager MBean, which is accessible through the
JMX Browser in the Application Server Control Console.
See Chapter 12, "Using MBeans in OC4J" for details on accessing and
using MBeans to manage OC4J processes.
Changing the Thread Pool Configuration Through the Application Server Control
Console
To change the thread pool configuration for an OC4J instance through the Application
Server Control Console:
1. Navigate to the OC4J Home page and then click Administration to display the
OC4J Administration page, which contains a table listing the various
administration tasks you can perform for the OC4J instance.
2. Under Properties on the Administration page, select Thread Pool Configuration
to display the OC4J Thread Pool Configuration page.
3. Change the value of one or more attributes for any thread pool displayed on this
page.
For information about attribute values, see Table 10–2 on page 10-3 or
"<thread-pool>" on page B-17.
4. Click Apply.
5. Restart the OC4J instance from the Cluster Topology page or the OC4J Home page.
You can also configure thread pools in the Application Server Control Console through
MBeans, as "Changing the Thread Pool Configuration Through MBeans" describes in
the following text.
With this configuration, OC4J will create a separate thread pool to serve RMI requests.
The thread pool will have these attributes:
■ A minimum of 5 threads
■ A maximum of 50 threads
■ A maximum of 2560 requests in the queue
■ A keepAlive value of -1 (no timeout)
■ A stackSize value of 0 (let the JVM decide)
■ The debug attribute set to true
The following example shows <thread-pool> elements that configure separate
thread pools in server.xml, one to serve RMI requests, one to handle RMI
connections, and one to serve HTTP and AJP requests:
<thread-pool
name="rmi request"
min="50"
max="50"
queue="2560"
keepAlive="-1"
stackSize="0"/>
<thread-pool
name="rmi connection"
min="44"
max="44"
queue="2560"
keepAlive="-1"
stackSize="0"/>
<thread-pool
name="http"
min="40"
max="40"
queue="2560"
keepAlive="-1"
stackSize="0"/>
The http thread pool is created by default when an OC4J instance starts up, with the
default attribute values in Table 10–2 on page 10-3. In addition to serving HTTP and
AJP requests, this tread pool can serve RMI requests and handle RMI connections in
the absence of separate rmi-* thread pools.
The name attribute is required, and all other attributes are optional. For a complete
description of this element, see "<custom-thread-pool>" on page B-9.
For information about the <thread-pool> element, see "Changing the Thread Pool
Configuration" on page 10-4 and "<thread-pool>" on page B-17.
For information about the *-web-site.xml file, see "Overview of the Web Site
Configuration Files (*-web-site.xml)" on page B-21. The custom-thread-pool
attribute is described in Table B–24 on page B-21.
The following example configures an HTTP site to use a nondefault thread pool by
adding the custom-thread-pool attribute to the <web-site> element in the
default-web-site.xml file for the HTTP site:
<web-site xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/web-site-10
_0.xsd"
protocol="http"
port="8888"
custom-thread-pool="mypool1"
display-name="OC4J 10g (10.1.3) Default Web Site"
schema-major-version="10"
schema-minor-version="0"
/>
queue="20000"
keepAlive="-1" />
<work-manager-thread-pool
min="23"
max="24"
queue="5000"
keepAlive="-1" />
<thread-pool
name="jca"
min="23"
max="24"
queue="5000"
keepAlive="-1" />
Table 10–3 Mapping of Old Thread Pool Configuration to New Thread Pools
Value of name Attribute in
Old Thread Pool Attributes <thread-pool> New Thread Pool Attributes
min, max, queue, http min, max, queue,
keepAlive, and debug keepAlive, and debug
attributes of attributes of <thread-pool>
<global-thread-pool>
min, max, queue, jca min, max, queue,
keepAlive, and debug keepAlive, and debug
<work-manager-thread-p attributes of <thread-pool>
ool>
cx-min, cx-max, cx-queue, rmi request min, max, queue,
cx-keepAlive, and keepAlive, and debug
cx-debug attributes of attributes of <thread-pool>
<global-thread-pool>
rmiRequest-min, rmi connection min, max, queue,
rmiRequest-max, keepAlive, and debug
rmiRequest-queue, attributes of <thread-pool>
rmiRequest-keepAlive,
and rmiRequest-debug
attributes of
<global-thread-pool>
For example, OC4J would generate new <thread-pool> elements from the following
<global-thread-pool> element:
<global-thread-pool
keepAlive="-1"
debug="false"
cx-keepAlive="-1"
cx-debug="false"
rmiRequest-keepAlive="-1"
rmiRequest-debug="false"
min="40"
max="40"
queue="2560"
cx-min="44"
cx-max="44"
cx-queue="2560"
rmiRequest-min="50"
rmiRequest-max="50"
rmiRequest-queue="2560"/>
<thread-pool
name="rmi connection"
min="44"
max="44"
queue="2560"
keepAlive="-1"
stackSize="0"/>
<thread-pool
name="http"
min="40"
max="40"
queue="2560"
keepAlive="-1"
stackSize="0"/>
This chapter provides instructions on using the system and application logging
features available in OC4J. It covers the following topics:
■ Overview of Log Files Generated by OC4J
■ Using Plain Text File Logging
■ Using Oracle Diagnostic Logging (ODL)
OPMN-managed OC4J:
/log/instance_default_group_
1/oc4j/log.xml
Application Server /application-deployments/ascontrol/or Standalone OC4J:
Control Console ion-application.xml /log/ascontrol-application.log
OPMN-managed OC4J:
/log/instance_default_group_
1/ascontrol-application.log
Applications /application-deployments/app_ Standalone OC4J:
deployed into OC4J name/orion-application.xml
/application-deployments/app_
name/application.log
OPMN-managed OC4J:
/application-deployments/app_
name/instance_default_group_
1/application.log
Global (default) /config/application.xml Standalone OC4J:
application
/log/global-application.log
OPMN-managed OC4J:
/log/instance_default_group_
1/global-application.log
Default Web site /config/default-web-site.xml Standalone OC4J:
access logging
/log/default-web-access.log
OPMN-managed OC4J:
/log/instance_default_group_
1/default-web-access.log
OC4J server /config/server.xml Standalone OC4J:
/log/server.log
OPMN-managed OC4J:
/log/instance_default_group_1/server.log
OPMN-managed OC4J:
/log/instance_default_group_1/jms.log
RMI /config/rmi.xml Standalone OC4J:
/log/rmi.log
OPMN-managed OC4J:
/log/instance_default_group_1/rmi.log
OPMN ORACLE_HOME/opmn/conf/opmn.xml ORACLE_HOME/opmn/logs
To turn off text logging for a component, remove or comment out the <file> element
from the appropriate configuration file. If you do not remove this line and you enable
ODL, both logging options will be enabled.
For example, to disable text logging for an application, comment out the following
element in the application's orion-application.xml file:
<!--
<log>
<file path="application.log" />
</log>
-->
Although both ODL and text logging can be enabled simultaneously, one of these
options should be disabled to save disk space.
Notes:
■ You can enable ODL for an application at the time the application
is deployed by setting values for odls in the log property
through the deployment plan editor.
See the Oracle Containers for J2EE Deployment Guide for details on
configuring an application using the deployment plan editor.
■ ODL for Web sites uses a different configuration. See "Configuring
Web Site Access Logging" on page 13-13 for details on configuring
Web site access logging.
■ Both ODL and text file logging can be enabled simultaneously.
However, you should disable one of these options to save disk
space.
The <odl> element has the following attributes. All are required.
■ path: The path to the directory where the log.xml files for this component will
be generated.
Important:
Specify the path as ../log/appName, as shown in the example
below. This path is required to enable log files to be viewed through
Application Server Control Console.
Using this configuration, petstore log files will be generated in the following
locations, depending on your OC4J installation.
■ Standalone OC4J:
Log files will be generated in ORACLE_
HOME/j2ee/home/application-deployments/log/petstore.
■ OPMN-managed OC4J:
Files will be generated in an OC4J instance- specific directory named ORACLE_
HOME/j2ee/instance/application-deployments/log/instance_
default_group_1/petstore.
For example, when the maximum directory size is reached, with the starting segment
file named log9872, the following files could be present in the log file directory:
File Size
log.xml 10002
log9872.xml 15000
log9873.xml 15000
log9874.xml 15000
log9875.xml 15000
log9876.xml 15000
In this case, when log.xml fills up, log9872.xml is removed and log.xml is
moved to the new file log9877.xml. New diagnostic messages then are written to a
new log.xml file.
For example, to specify the maximum ODL segment size and maximum directory size
for an OC4J application named petstore, you would add the following entry to the
file ORACLE_HOME/j2ee/instance_
name/application-deployments/petstore/orion-application.xml:
<log>
<odl path="../log/petstore/" max-file-size="1000" max-directory-size="10000" />
</log>
For OC4J components that are configured in the j2ee-logging.xml file, you can
specify a rotation time and rotation frequency, in addition to a maximum segment size
and directory size.
For example, to specify that the log files are rotated every day at 4:00AM local time, or
when they reach 2000000 bytes in size, use the following:
<log_handler name="h1" class="oracle.core.ojdl.logging.ODLHandlerFactory">
<property name="path" value="log"/>
<property name="baseRotationTime" value="04:00"/>
<property name="rotationFrequency" value="daily"/>
<property name="maxFileSize" value=" 2000000"/>
</log_handler>
■ To view the OC4J log files, expand Diagnostic Message Logs, then open
log.xml.
■ To view ODL logs for a specific J2EE application:
– Expand the Application <applicationName> node.
– Expand Diagnostic Message Logs. Open and view the log.xml file
generated within this director.
3. Click Expand All to view the entire list of loggers currently loaded for the OC4J
instance.
4. Select a log level for any of the loggers shown on the page.
You can also edit the j2ee-logging.xml configuration file by hand. Restart OC4J
after making any changes to this file.
The configuration file contains two elements within the
<logging-configuration> root element:
■ <log_handlers>
This element includes <log_handler> elements defining three different log
handlers:
– oc4j-handler
This is the log handler for the oracle logger.
– oracle-webservices-management-auditing-handler
This is the log handler for the oracle.webservices.management.auditing logger.
– oracle-webservices-management-logging-handler
This is the log handler for the oracle.webservices.management.logging logger.
The following properties are specified in <property> subelements for each log
handler:
– path: Specifies the directory in which the handler will generate log files. Do
not modify this value.
– maxFileSize: Sets the maximum size, in bytes, that any log file in the
directory will be allowed to grow to. When a file exceeds this limit, a new file
is generated.
– maxLogSize: Sets the maximum size, in bytes, allowed for the log file
directory. When this limit is exceeded, log files are purged, beginning with the
oldest files.
■ <loggers>
This element includes a <logger> element defining the following:
– name: The Logger name. Do not modify this value.
– level: The minimum log level that this Logger acts upon. This level is set by
default to the ODL NOTIFICATION:1 value, which maps to the INFO Java log
level displayed on the Logger Configuration page in Application Server
Control Console.
You can set this value to either a Java logging level (FINE) or an ODL Message
Type:Log Level (TRACE:1).
– useParentHandlers: Indicates whether or not the Logger should use its
parent Handlers. Because this value is set to false by default, the oracle
logger does not inherit the log level set for its parent, the root logger.
– <handler>: The name of the Handler to use. Do not modify this value.
The following example sets the default log level to FINEST by specifying TRACE:32
as the ODL Message Type:Log Level.
<logging_configuration>
<log_handlers>
<log_handler name='oc4j-handler'
class='oracle.core.ojdl.logging.ODLHandlerFactory'>
<property name='path' value='%ORACLE_HOME%/j2ee/%OPMN_PROC_TYPE%/log/
%OPMN_PROC_TYPE%_%OPMN_PROC_SET%_%OPMN_PROC_INDEX%/oc4j'/>
<property name='maxFileSize' value='10485760'/>
<property name='maxLogSize' value='104857600'/>
</log_handler>
</log_handlers>
<loggers>
<logger name='oracle' level='TRACE:32' useParentHandlers='false'>
<handler name='oc4j-handler'/>
</logger>
</loggers>
</logging_configuration>
This chapter describes how the system MBeans provided with OC4J can be used to
manage deployed applications, services and other resources within an OC4J instance.
It includes the following topics:
■ MBeans and Java Management Extensions (JMX) Support in OC4J
■ Using the System MBean Browser
■ Subscribing to JMX Notifications
Overview of MBeans
An MBean, or managed bean, is a Java object that represents a JMX manageable
resource. MBeans are defined in the J2EE Management Specification (JSR-77), which is
part of the J2EE 1.4 specification as published by Sun Microsystems.
Note: The Apply Changes button will be visible only if the browser
page contains at least one attribute with a modifiable value.
6. Click the Operations tab to access the MBean's operations. After selecting a
specific operation, click the Invoke button to call it.
3. Check the Subscribe box for each notification you wish to subscribe to.
4. Click the Apply button.
Note: The Apply Changes button will only be visible if the browser
page contains at least one attribute with a modifiable value.
5. Click the Operations tab to access the MBean's operations. After selecting a
specific operation, click the Invoke button to execute.
This chapter explains how additional Web sites can be configured in an OC4J
standalone environment to provide access to Web applications deployed into the OC4J
instance. It also explains how to configure and enable a secure Web site utilizing
Secure Socket Layer (SSL) communication between the client and OC4J using HTTPS.
The following sections are included:
■ Overview of a Web Site in OC4J
■ Configuring Web Site Connection Data
■ Creating a New Web Site in OC4J
■ Configuring a Secure Web Site in OC4J
■ Starting and Stopping Web Sites
■ Configuring Web Site Access Logging
Note: In the current release, an OC4J instance supports only one AJP
Web site at a time.
In addition to the default site, new Web sites can be configured on each OC4J
instance, as needed. (A Web site cannot listen on more than one protocol.) Reasons for
creating a new Web site might include:
■ Separate management and general Web access
By default, the Application Server Control Console application is accessed via the
/em context through the default Web site. However, you can create a new Web site
specifically for the Application Server Control Console application to separate
management access from general application access, if desired.
■ Utilizing secure and nonsecure Web sites
You can configure the default Web site to utilize SSL to create secure connections,
or can create an additional site and bind it to Web applications that require a
secure connection.
See "Creating a New Web Site in OC4J" on page 13-6 for instructions on creating and
configuring additional Web sites.
When OPMN is started, it selects a port value starting at the bottom of the specified
range and increments the value by 1 until a free port is found. Allowing OPMN to
select from a range of ports in this manner avoids potential conflicts among OC4J
processes.
You can change the OC4J port ranges either through the Application Server Control
Console or manually, in the opmn.xml file, as the following topics describe:
■ Changing Port Ranges in Application Server Control Console
■ Manually Changing Protocols and Port Ranges in opmn.xml
The protocol and port values specified in opmn.xml override any corresponding
values set in the corresponding Web site configuration file. Using OPMN to manage
Web site protocol and port settings is not required in an Oracle Application Server
environment. You can opt to not set these values in opmn.xml and instead set the
values directly in the appropriate Web site configuration file.
The <port> element is defined in the opmn.xml configuration file, which is located in
the ORACLE_HOME/opmn/conf directory. The syntax of the element follows:
<port id="webSiteName" protocol="http|https|ajp|ajps"
range="startPort-endPort"/>
All <port> elements defining connection protocols are set in the <process-type>
element defining the OC4J instance. The <process-type> element is a subelement of
the <ias-component> element, in which the id attribute equals default_group.
For example, the <port> element in the following example configures the default
Web site on the OC4J home instance to listen for AJP requests on ports 12501 through
12600.
<ias-component id="default_group">
<process-type id="home" module-id="OC4J" status="enabled">
...
<port id="default-web-site" protocol="ajp" range="12501-12600"/>
<port id="rmi" range="12401-12500">
<port id="jms" range="12601-12700">
<process-set id="default" numprocs="1"/>
</process-type>
</ias-component>
Note: The opmn.xml file must be reloaded for changes made to take
effect. Run the following command on the affected node to reload
opmn.xml:
opmnctl reload
The following command modifies the default Web site for an OC4J instance that is
currently configured to listen for HTTP requests to receive and respond to Apache
JServ Protocol requests from Oracle HTTP Server.
opmnctl config port update ias-component=default_group process-type=home
portid=default-web-site protocol=ajp
opmnctl reload
The opmnctl reload command is invoked to reload the updated opmn.xml file into
the OC4J runtime.
For example, the following removes the <port> element defined for the default
Web site from opmn.xml:
opmnctl config port update ias-component=default_group process-type=home
portid=default-web-site
opmnctl reload
Table 13–2 below describes the options that can be set on the opmnctl config port
command line.
The most straightforward way to create a new configuration file is to make a copy of
the default Web site configuration file, default-web-site.xml, which is located in
the ORACLE_HOME/j2ee/instance/config directory. Name the file according to
the following convention:
webSiteName-web-site.xml
For details on the structure of this element, see the <web-site> element description on
page B-21.
In this example, the locations of all of the Web site configuration files are relative to the
location of server.xml.
The example command adds the new <port> element to the OC4J home instance
definition in the opmn.xml file on the host machine. This OC4J instance is now
configured with two Web sites: the default site and the new ascontrol site.
<ias-component id="default_group">
<process-type id="home" module-id="OC4J" status="enabled">
...
<port id="default-web-site" protocol="ajp" range="12501-12600"/>
<port id="ascontrol-web-site" protocol="http" range="1810"/>
<port id="rmi" range="12401-12500">
<port id="jms" range="12601-12700">
<process-set id="default" numprocs="1"/>
</process-type>
</ias-component>
When the Web site configuration file is ready, add a <web-site> element referencing
server.xml, the OC4J configuration file located in the J2EE_HOME/config
directory. Applications will not be able to bind to the Web site unless this notation
exists in server.xml. For example:
<application-server ... >
<web-site path="./default-web-site.xml" />
<web-site path="./mycustom-web-site.xml" />
<web-site path="./secure-web-site.xml" />
</application-server>
When configuration is complete, OC4J listens for SSL HTTP requests on one port and
non-SSL HTTP requests on another. You can disable either SSL requests or non-SSL
requests by commenting out the appropriate *-web-site.xml in the server.xml
configuration file.
<!-- <web-site path="./secure-web-site.xml" /> commented out to remove SSL -->
For more information about elements and attributes of the <web-site>, <web-app>,
and <session-tracking> elements, see Oracle Containers for J2EE Servlet Developer’s
Guide.
This step sets up a mode where OC4J accepts or rejects a client entity for secure
communication, depending on its identity. The needs-client-auth attribute
instructs OC4J to request the client certificate chain upon connection. If the root
certificate of the client is recognized, then the client is accepted.
The keystore specified in the <ssl-config> element must contain the certificates of
any clients that are authorized to connect to OC4J through HTTPS.
This default configuration results in log messages such as the following, with the
second message wrapping around to a second line:
148.87.1.180 - - [17/Nov/2004:10:23:18 -0800] 'GET / HTTP/1.1' 200 2929
148.87.1.180 - - [17/Nov/2004:10:23:53 -0800] 'GET
/webservices/statefulTest HTTP/1.1' 200 301
In this example, the user is null, the time is in brackets (as specified in the format
setting), the request is in single quotation marks (as specified), and the status and
size in the first message are 200 and 2929, respectively.
■ split: Specifies how often to begin a new access log. Supported values are none
(equivalent to never, which is the default value), hour, day, week, and month. If
split is specified, the suffix attribute (documented in the following text) can
be used to specify timestamp data to append to the file name.
■ suffix: Specifies timestamp information to append to the base file name of the
logs if the split attribute is specified.
The default suffix value is -yyyy-mm-dd.
As an example, assume the following <access-log> element with split
specified, using the default suffix value:
<access-log path="../log/mysite-web-access.log" split="day" />
</web-site>
The files will be generated in the following locations, depending on your OC4J
installation.
■ Standalone OC4J:
Log files will be generated in ORACLE_HOME/j2ee/home/log/.
■ Oracle Application Server:
Files will be generated in an OC4J instance- specific directory named ORACLE_
HOME/j2ee/instance/application-deployments/log/instance_
default_group_1.
The files will be generated in the following locations, depending on your OC4J
installation.
■ Standalone OC4J:
Log files will be generated in ORACLE_
HOME/j2ee/home/log/default-web-access/.
■ Oracle Application Server:
Files will be generated in an OC4J instance-specific directory named ORACLE_
HOME/j2ee/instance/application-deployments/log/instance_
default_group_1/default-web-access.
For more information about ODL access logging, see "Managing ODL Log Files" on
page 11-6.
This chapter describes the process for registering new entities - specifically any
vendor-specific DTDs and XSDs used to define the format of XML deployment
descriptors - within OC4J, which is required if XML file validation will be performed.
It contains the following topics:
■ Why XSDs Have to Be Registered
■ Registering a DTD or XSD
The next example will register acme-application.xsd with OC4J. The system
identifier is declared in either the xsi:schemaLocation or the
xsi:noNamespaceSchemaLocation attributes of the root element within an XML
document.
<entity>
<description>acme-application-1_0.xsd</description>
<public-id />
<system-id>http://xmlns.acme.com/schema/acme-application-1_0.xsd</system-id>
<location>META-INF/acme-application-1_0.xsd</location>
</entity>
Note: The OC4J server must be restarted after you make changes to
entity-resolver-config.xml.
This appendix describes common problems that you may encounter when using OC4J
and explains how to resolve them. It includes the following topics:
■ Problems and Solutions
■ Additional Help
java.lang.OutOfMemory Errors
Problem
Out-of-memory errors indicate that the heap size of the Java instance is lower than the
memory required by applications running within OC4J.
Solution
Increase the heap size for the OC4J process to the desired amount of memory at OC4J
startup:
java -Xms512m -Xmx512m -jar oc4j.jar
<module-data>
<category id="start-parameters">
<data id="java-options" value="-Xms512m -Xmx512m -Djava.awt.headless=true
-Dhttp.webdir.enable=false"/>
...
</category>
...
</module-data>
</process-type>
</ias-component>
If your application is running on a UNIX or Linux system, verify that ulimit settings
allow the JVM process to allocate this much memory.
Solution
Consider using the incremental low pause collector, which avoids long major garbage
collection pauses by doing portions of the major collection work at each minor
collection. This collector (also known as the train collector) collects portions of the
tenured generation - a memory pool holding objects that are typically collected in a
major collection - at each minor collection. The result is shorter pauses spread over
many minor collections.
The incremental collector is even slower than the default tenured generation collector
when considering overall throughput.
To use the incremental collector, the -Xincgc option must be passed in on the Java
command line at application startup. Set the initial and maximum size of the young
generation (object pool) to the same value using the XX:NewSize and
-XX:MaxNewSize options. Set the initial and the maximum Java heap sizes to the
same value using the -Xms and-Xmx options.
For example, to use this collector with a server with 1 GB of physical memory:
java -server -Xincgc -XX:NewSize=64m -XX:MaxNewSize=64m -Xms512m -Xmx512m
For more information on garbage collection tuning, read "Tuning Garbage Collection
with the 1.4.2 Java Virtual Machine," which is available at
http://java.sun.com/docs/hotspot/gc1.4.2/
Solution
Ensure that all symbolic links are valid, and restart OC4J.
In addition, keep the number of JAR files OC4J is configured to load to a minimum.
Eliminate all unused JAR files from the configuration and from the directories OC4J is
configured to search. OC4J searches all JAR files for classes and resources, thereby
causing the file cache to use extra memory and processor time.
Solution
Chapter 3: Utilizing the OC4J Class Loading Framework in the Oracle Containers for
J2EE Developer’s Guide contains detailed documentation on avoiding and
troubleshooting class loading-related issues. It also explains how you can use shared
libraries to avoid many of these issues within OC4J.
Solution
The error indicates that OC4J is unable to locate the required JDK. To resolve this issue,
start OC4J from the javac.exe location on the command line. This will set the
location of the JDK.
For example:
C:\ORACLE_HOME\j2ee\home\C:\jdk\bin\java -jar oc4j.jar
Solution
This error indicates that the class is not serializable, and therefore cannot utilize the
OC4J replication framework.
Solution
An OPMN-managed OC4J instance installed as a component of Oracle Application
Server will use the JDK 5.0 by default. This new version of the JDK is required to
utilize EJB 3.0 and offers numerous performance improvements. However, if
applications that will be deployed to OC4J require a JDK 1.4.2 release, it may be
necessary to downgrade to the earlier version.
Before switching from JDK 5.0 to JDK 1.4.2, you must remove all compiled application
files from the OC4J instance:
1. Stop the OC4J instance.
2. Delete the ORACLE_HOME/j2ee/instance/application-deployments
directory.
Deleting this directory will cause the application files to be recompiled when OC4J
is restarted with the JDK 1.4.2.
You can specify the JDK to use for each OC4J instance through manual edits to the
opmn.xml configuration file. If you want to use the javac compiler installed with the
JDK defined in the JAVA_HOME environment variable, also remove the
<java-compiler> element from server.xml and let OC4J rediscover the default
settings.
The use of any of the following methods on the returned MBeanServer object will
throw an UnsupportedOperationException exception:
public final ClassLoader getClassLoaderFor(ObjectName mbeanName)
Solution
If your application uses the JMX MBeanServer or MBeanServerConnection interface,
avoid using any of the unsupported methods in the application.
Error
Process (index=1,uid=2012873812,pid=2988)
time out while waiting for a managed process to start
Solution
An application that requires significant resources, such as an application that attempts
to acquire multiple database connections for its various components, can cause OC4J
to fail to start. You can manage this by specifying the maximum amount of time to
allow applications to start in the <start-timeout> element defined for the OC4J
instance in opmn.xml. After this value is reached, the application will not be started.
This value will be applied to all applications deployed to the instance.
The following example increases the timeout value to 800 seconds for applications
deployed to the home OC4J instance:
<ias-component id="default_group">
...
<process-type id="home" module-id="OC4J" status="enabled">
...
<start timeout="800" retry="2"/>
</process-type>
</ias-component>
Additional Help
You can search for additional solutions on the following Oracle support-oriented Web
sites:
■ Oracle Application Server Release Notes, available on the Oracle Technology
Network at
http://www.oracle.com/technology/documentation/index.html
■ Oracle MetaLink, available at http://metalink.oracle.com
If you still cannot find a solution for the problem you are facing, please log a service
request.
This chapter provides detailed documentation on the XML files used to store
configuration data for the OC4J server and J2EE applications and modules deployed
into it.
■ Overview of the XML Configuration Files Used by OC4J
■ Elements of the OC4J Server Configuration File (server.xml)
■ Overview of the Web Site Configuration Files (*-web-site.xml)
Table B–1 describes the role and function for each OC4J server-level XML file as well as
the global configuration files displayed in the preceding figure.
Unless otherwise indicated, all of these files are installed in the ORACLE_
HOME/j2ee/instance/config directory by default.
Table B–2 describes the role and function for the various application-level XML files
displayed in the preceding figure.
Unless otherwise indicated, all of these files are installed in the ORACLE_
HOME/j2ee/instance/config directory by default.
server.xml file exists. In addition, the name of the XML file can be any name, as
long as the contents of the file conform to the appropriate DTD.
■ The <rmi-config> element denotes the name and location of the rmi.xml file.
■ The <jms-config> element denotes the name and location of the jms.xml file.
■ The <global-application> element denotes the name and location of the
global application.xml file.
■ The <global-web-app-config> element denotes the name and location of the
global-web-application.xml file.
■ The <web-site> element denotes the name and location of one
*-web-site.xml file. Since you can have multiple Web sites, you can have
multiple <web-site> entries.
The server.xml file format is described by application-server-10_1.xsd,
which can be viewed at the following link:
http://www.oracle.com/technology/oracleas/schema/index.html
<application-server>
Required? Required; one only
Child elements:
This is the root element of the OC4J configuration file.
<application>
Parent element: <application-server>
Child elements:
Defines a J2EE application deployed into the OC4J instance. The <application>
element defining an application is added to server.xml by OC4J at the time the
application is deployed. As such, there is generally no need to manually modify this
element.
<code-source>
Parent element: <shared-library>
<custom-thread-pool>
Parent element: <application-server>
Child elements:
Contains the configuration for a single thread pool with the specified name within an
OC4J process. One or more applications can be configured to use the thread pool. See
"Configuring OC4J Thread Pools" on page 10-1 for details.
<execution-order>
Parent element: <startup-class>, <shutdown-class>
Child elements:
Specifies the order of execution for each startup class. Specify an integer that
designates the order in which the classes are executed.
<global-application>
Parent element: <application-server>
Child elements:
Specifies the OC4J global application, known as the default application. The name
attribute defines its name; the path attribute specifies what to use as the OC4J global
application descriptor.
<global-thread-pool>
Parent element: <application-server>
Child elements:
Contains the old configuration format for thread pools within an OC4J process. If the
server.xml file contains the <global-thread-pool> element, the min, max,
keep-alive, and queue attribute values apply to the http thread pool, which is
created at OC4J startup. The cx-* attributes apply to the rmi connection thread
pool, and the rmiRequest-* attributes apply to the rmi request thread pool. See
"Configuring OC4J Thread Pools" on page 10-1 for details.
The <global-thread-pool> element is deprecated in OC4J 10g (10.1.3.1.0). If the
server.xml file contains this element, OC4J changes it to equivalent <thread-pool>
elements that define thread pools in the new configuration format.
<global-web-app-config>
Parent element: <application-server>
Child elements:
Identifies the configuration file for the OC4J global web application, which by default
is the parent of all other Web applications.
The name and root directory path of the default Web application are specified in the
global application descriptor, and the default Web application is bound to a Web site
through the default-web-site.xml file. In OC4J standalone, the default context
path for the default Web application is "/".
<import-shared-library>
Parent element: <shared-library>
<init-param>
Parent element: <startup-class>, <shutdown-class>
<j2ee-logging-config>
Parent element: <application-server>
Child elements:
Defines the file to use as the J2EE logging configuration file.
<java-compiler>
Parent element: <application-server>
Child elements:
Specifies configuration parameters for the Java compiler to use to compile EJBs. By
default, the javac compiler installed with the JDK defined in the JAVA_HOME
environment variable will be used.
<javacache-config>
Parent element: <application-server>
<jms-config>
Parent element: <application-server>
Child elements:
Specifies the file to use as the OC4J JMS configuration file.
<log>
Parent element: <application-server>
<rmi-config>
Parent element: <application-server>
Child elements:
Defines the file to use as the OC4J RMI configuration file.
<shared-library>
Parent element: <application-server>
<shutdown-class>
Parent element: <shutdown-classes>
<startup-class>
Parent element: <startup-classes>
<thread-pool>
Parent element: <application-server>
Child elements:
Contains the configuration for a single system, http, jca, rmi request, or rmi
connection thread pool within an OC4J process. See "Configuring OC4J Thread
Pools" on page 10-1 for details.
<transaction-manager-config>
Parent element: <application-server>
Child elements:
Specifies the transaction manager configuration file.
<web-site>
Parent element: <application-server>
Child elements:
References the configuration file for a single Web site defined within OC4J. A
<web-site> element must be created for each Web site; otherwise, the site will not be
enabled within OC4J. See Chapter 13, "Managing Web Sites in OC4J" for details.
<work-manager-thread-pool>
Parent element: <application-server>
Child elements:
Contains the configuration for a work management thread pool for resource adapters
within an OC4J process. See "Configuring OC4J Thread Pools" on page 10-1 for details.
This element is deprecated in OC4J 10g (10.1.3.1.0). If the server.xml file contains
this element, OC4J changes it to an equivalent <thread-pool> element that defines a
jca thread pool.
<web-site>
Required? Required; one only
Child elements:
<description>
<frontend>
<web-app>
<default-web-app>
<user-web-apps>
<access-log>
<odl-access-log>
<ssl-config>
<description>
Contains an optional brief description of the Web site.
<frontend>
Specifies a perceived front-end host and port of this Web site as seen by HTTP clients.
When the site is behind a load balancer or firewall, the <frontend> specification is
necessary to provide appropriate information to Web application code for
functionality such as URL rewriting.
Using the host and port specified in the <frontend> element, the back-end server
running the application knows to refer to the front end, instead of to itself, in any URL
rewriting. This way, subsequent requests properly come in through the front end
again, instead of trying to access the back end directly.
Table B–25 describes the attributes of <frontend>.
<web-app>
This element binds a particular Web module to this Web site. It specifies the name of a
J2EE application archive (EAR file name minus the .ear extension) from the
server.xml file, and the name of a Web module within the J2EE application. The
Web module is defined in the J2EE application.xml file in the application EAR file
(or possibly in the orion-application.xml file in the EAR file). The Web module
is bound at the location specified by the <web-app> element root attribute.
Mapping to and from Web site XML files, particularly with respect to the
application and name attributes, is shown in examples elsewhere in this document.
See "Deploying a J2EE Application (EAR)" on page 6-8 (for a typical scenario of
deploying a WAR file within an EAR file) and "Deploying a Standalone Web Module
(WAR)" on page 6-10 (for the scenario of deploying a WAR file by itself to the OC4J
default application).
Table B–26 describes the attributes of <web-app>.
<default-web-app>
This element creates a reference to the default Web application bound to this Web site.
When a single application is bound to the Web site, such as Application Server Control
Console, specify the application within this element.
For users, this element is relevant only in an OC4J standalone environment. In an
Oracle Application Server environment, the OC4J default Web application has
system-level functionality but is not otherwise meaningful.
The <default-web-app> element uses the same attributes as the <web-app>
element described immediately preceding, but the default setting of
load-on-startup is true.
<user-web-apps>
Use this element to support user directories and applications. Each user has his or her
own Web module and associated web-application.xml file. User applications are
reached at /username/ from the server root.
Table B–27 describes the attributes of <user-web-apps>.
<access-log>
Use this element to enable text-based access logging for this Web site and to specify
information about the access log, including the path, file name, and what information
is included. The log file is where incoming requests (each access of the Web site) are
logged.
See "Configuring Text-Based Access Logging" on page 13-13 for configuration details.
<odl-access-log>
Use this element to enable ODL-based access logging for the Web site and to specify
information about the access logs, including the path, and maximum values for the
size of each file and the total size of all files in the log directory. The log files are where
incoming requests (each access of the Web site) are logged.
See "Configuring ODL Access Logging" on page 13-15 for configuration details.
<ssl-config>
This element specifies SSL configuration settings, if applicable. You must use it
whenever you set the secure attribute of the <web-site> element to true.
Subelement of <ssl-config>:
<property>
This appendix documents the schema for the database tables used by the OC4J
database persistence mechanism. See "Configuring Database Replication" on page 9-9
for additional information on this mechanism.
OC4J_HTTP_SESSION
This table stores metadata for a single HTTP session, including identifiers for the
application and user setting properties on the session. The ID is the primary key.
There is a 1:many relationship between an OC4J_HTTP_SESSION table and the OC4J_
HTTP_SESSION_VALUE tables. Each entry in the OC4J_HTTP_SESSION table may
have 0 or more entries in the OC4J_HTTP_SESSION_VALUE table.
OC4J_HTTP_SESSION_VALUE
This table stores each HTTP session property and the values set on it by the
application user. The values are stored as a BLOB (binary large object). The ID and
KEY_FIELD values together compose the primary key.
OC4J_EJB_SESSION
This table stores the current state of a stateful session bean. The state data is stored as a
BLOB (binary large object). The ID is the primary key.
This appendix includes the Third Party License for all the third party products
included with Oracle Application Server.
ANTLR
This program contains third-party code from ANTLR. Under the terms of the Apache
license, Oracle is required to provide the following notices. Note, however, that the
Oracle program license that accompanied this product determines your right to use
the Oracle program, including the ANTLR software, and the terms contained in the
following notices do not change those rights.
Apache
This program contains third-party code from the Apache Software Foundation
("Apache"). Under the terms of the Apache license, Oracle is required to provide the
following notices. Note, however, that the Oracle program license that accompanied
this product determines your right to use the Oracle program, including the Apache
software, and the terms contained in the following notices do not change those rights.
The Apache license agreements apply to the following included Apache components:
■ Apache HTTP Server
■ Apache JServ
■ mod_jserv
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
Apache SOAP
This program contains third-party code from the Apache Software Foundation
("Apache"). Under the terms of the Apache license, Oracle is required to provide the
following notices. Note, however, that the Oracle program license that accompanied
this product determines your right to use the Oracle program, including the Apache
software, and the terms contained in the following notices do not change those rights.
Notwithstanding anything to the contrary in the Oracle program license, the Apache
software is provided by Oracle "AS IS" and without warranty or support of any kind
from Oracle or Apache.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
DBI Module
This program contains third-party code from Tim Bunce. Under the terms of the Tim
Bunce license, Oracle is required to provide the following notices. Note, however, that
the Oracle program license that accompanied this product determines your right to
use the Oracle program, including the Tim Bunce software, and the terms contained in
the following notices do not change those rights. Notwithstanding anything to the
contrary in the Oracle program license, the Tim Bunce software is provided by Oracle
"AS IS" and without warranty or support of any kind from Oracle or Tim Bunce.
The DBI module is Copyright (c) 1994-2002 Tim Bunce. Ireland. All rights reserved.
You may distribute under the terms of either the GNU General Public License or the
Artistic License, as specified in the Perl README file.
Preamble
The intent of this document is to state the conditions under which a Package may be
copied, such that the Copyright Holder maintains some semblance of artistic control
over the development of the package, while giving the users of the package the right
to use and distribute the Package in a more-or-less customary fashion, plus the right to
make reasonable modifications.
Definitions
"Package" refers to the collection of files distributed by the Copyright Holder, and
derivatives of that collection of files created through textual modification.
"Standard Version" refers to such a Package if it has not been modified, or has been
modified in accordance with the wishes of the Copyright Holder as specified below.
"Copyright Holder" is whoever is named in the copyright or copyrights for the
package.
"You" is you, if you're thinking about copying or distributing this Package.
"Reasonable copying fee" is whatever you can justify on the basis of media cost,
duplication charges, time of people involved, and so on. (You will not be required to
justify it to the Copyright Holder, but only to the computing community at large as a
market that must bear the fee.)
"Freely Available" means that no fee is charged for the item itself, though there may be
fees involved in handling the item. It also means that recipients of the item may
redistribute it under the same conditions they received it.
1. You may make and give away verbatim copies of the source form of the Standard
Version of this Package without restriction, provided that you duplicate all of the
original copyright notices and associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications derived from
the Public Domain or from the Copyright Holder. A Package modified in such a
way shall still be considered the Standard Version.
3. You may otherwise modify your copy of this Package in any way, provided that
you insert a prominent notice in each changed file stating how and when you
changed that file, and provided that you do at least ONE of the following:
a. place your modifications in the Public Domain or otherwise make them Freely
Available, such as by posting said modifications to Usenet or an equivalent
medium, or placing the modifications on a major archive site such as
uunet.uu.net, or by allowing the Copyright Holder to include your
modifications in the Standard Version of the Package.
b. use the modified Package only within your corporation or organization.
c. rename any non-standard executables so the names do not conflict with
standard executables, which must also be provided, and provide a separate
manual page for each non-standard executable that clearly documents how it
differs from the Standard Version.
d. make other distribution arrangements with the Copyright Holder.
4. You may distribute the programs of this Package in object code or executable form,
provided that you do at least ONE of the following:
a. distribute a Standard Version of the executables and library files, together with
instructions (in the manual page or equivalent) on where to get the Standard
Version.
b. accompany the distribution with the machine-readable source of the Package
with your modifications.
c. give non-standard executables non-standard names, and clearly document the
differences in manual pages (or equivalent), together with instructions on
where to get the Standard Version.
d. make other distribution arrangements with the Copyright Holder.
5. You may charge a reasonable copying fee for any distribution of this Package. You
may charge any fee you choose for support of this Package. You may not charge a
fee for this Package itself. However, you may distribute this Package in aggregate
with other (possibly commercial) programs as part of a larger (possibly
commercial) software distribution provided that you do not advertise this Package
as a product of your own. You may embed this Package's interpreter within an
executable of yours (by linking); this shall be construed as a mere form of
aggregation, provided that the complete Standard Version of the interpreter is so
embedded.
6. The scripts and library files supplied as input to or produced as output from the
programs of this Package do not automatically fall under the copyright of this
Package, but belong to whoever generated them, and may be sold commercially,
and may be aggregated with this Package. If such scripts or library files are
aggregated with this Package through the so-called "undump" or "unexec"
methods of producing a binary executable image, then distribution of such an
image shall neither be construed as a distribution of this Package nor shall it fall
under the restrictions of Paragraphs 3 and 4, provided that you do not represent
such an executable image as a Standard Version of this Package.
7. C subroutines (or comparably compiled subroutines in other languages) supplied
by you and linked into this Package in order to emulate subroutines and variables
of the language defined by this Package shall not be considered part of this
Package, but are the equivalent of input as in Paragraph 6, provided these
subroutines do not change the language in any way that would cause it to fail the
regression tests for the language.
8. Aggregation of this Package with a commercial distribution is always permitted
provided that the use of this Package is embedded; that is, when no overt attempt
is made to make this Package's interfaces visible to the end user of the commercial
distribution. Such use shall not be construed as a distribution of this Package.
9. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written permission.
10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
The End
FastCGI
This program contains third-party code from Open Market, Inc. Under the terms of the
Open Market license, Oracle is required to license the Open Market software to you
under the following terms. Note that the terms contained in the Oracle program
license that accompanied this product do not apply to the Open Market software, and
your rights to use the software are solely as set forth below. Oracle is not responsible
for the performance of the Open Market software, does not provide technical support
for the software, and shall not be liable for any damages arising out of any use of the
software.
contrary in the Oracle program license, the Info-ZIP software is provided by Oracle
"AS IS" and without warranty or support of any kind from Oracle or Info-ZIP.
Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, Jean-loup
Gailly, Hunter Goatley, Ian Gorman, Chris Herborth, Dirk Haase, Greg Hartwig,
Robert Heath, Jonathan Hudson, Paul Kienitz, David Kirschbaum, Johnny Lee, Onno
van der Linden, Igor Mandrichenko, Steve P. Miller, Sergio Monesi, Keith Owens,
George Petrov, Greg Roelofs, Kai Uwe Rommel, Steve Salisbury, Dave Smith,
Christian Spieler, Antoince Verheijen, Paul von Behren, Rich Wales, Mike White
This software is provided "AS IS," without warranty of any kind, express or
implied. In no event shall InfoZIP or its contributors be held liable for any
direct, indirect, incidental, special or consequential damages arising out of the
use of or inability to use this software."
JSR 110
This program contains third-party code from IBM Corporation ("IBM"). Under the
terms of the IBM license, Oracle is required to provide the following notices. Note,
however, that the Oracle program license that accompanied this product determines
your right to use the Oracle program, including the IBM software, and the terms
contained in the following notices do not change those rights. Notwithstanding
anything to the contrary in the Oracle program license, the IBM software is provided
by Oracle "AS IS" and without warranty or support of any kind from Oracle or IBM.
Copyright IBM Corporation 2003 – All rights reserved
Jaxen
This program contains third-party code from the Apache Software Foundation
("Apache") and from the Jaxen Project ("Jaxen"). Under the terms of the Apache and
Jaxen licenses, Oracle is required to provide the following notices. Note, however, that
the Oracle program license that accompanied this product determines your right to
use the Oracle program, including the Apache and Jaxen software, and the terms
contained in the following notices do not change those rights.
Redistributions of source code must retain the above copyright notice, this list
of conditions, and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions, and the disclaimer that follows these conditions in the
documentation and/or other materials provided with the distribution.
The name "Jaxen" must not be used to endorse or promote products derived from this
software without prior written permission. For written permission, please contact
[email protected].
Products derived from this software may not be called "Jaxen", nor may "Jaxen"
appear in their name, without prior written permission from the Jaxen Project
Management ([email protected]).
In addition, we request (but do not require) that you include in the end-user
documentation provided with the redistribution and/or in the software itself an
acknowledgment equivalent to the following: "This product includes software
developed by the Jaxen Project (http://www.jaxen.org/)." Alternatively, the
acknowledgment may be graphical using the logos available at
http://www.jaxen.org/.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE Jaxen
AUTHORS OR THE PROJECT CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
JGroups
This program contains third-party code from GNU. Under the terms of the GNU
license, Oracle is required to provide the following notices. Note, however, that the
Oracle program license that accompanied this product determines your right to use
the Oracle program, including the GNU software, and the terms contained in the
following notices do not change those rights. Notwithstanding anything to the
contrary in the Oracle program license, the GNU software is provided by Oracle "AS
IS" and without warranty or support of any kind from Oracle or GNU.
Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite
330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute
verbatim copies of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts as the
successor of the GNU Library Public License, version 2, hence the version number
2.1.]
Preamble
The licenses for most software are designed to take away your freedom to share and
change it. By contrast, the GNU General Public Licenses are intended to guarantee
your freedom to share and change free software--to make sure the software is free
for all its users.
This license, the Lesser General Public License, applies to some specially
designated software packages--typically libraries--of the Free Software Foundation
and other authors who decide to use it. You can use it too, but we suggest you
first think carefully about whether this license or the ordinary General Public
License is the better strategy to use in any particular case, based on the
explanations below.
When we speak of free software, we are referring to freedom of use, not price. Our
General Public Licenses are designed to make sure that you have the freedom to
distribute copies of free software (and charge for this service if you wish); that
you receive source code or can get it if you want it; that you can change the
software and use pieces of it in new free programs; and that you are informed that
you can do these things.
For example, if you distribute copies of the library, whether gratis or for a fee,
you must give the recipients all the rights that we gave you. You must make sure
that they, too, receive or can get the source code. If you link other code with
the library, you must provide complete object files to the recipients, so that
they can relink them with the library after making changes to the library and
recompiling it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the library, and
(2) we offer you this license, which gives you legal permission to copy,
distribute and/or modify the library.
Finally, software patents pose a constant threat to the existence of any free
program. We wish to make sure that a company cannot effectively restrict the users
of a free program by obtaining a restrictive license from a patent holder.
Therefore, we insist that any patent license obtained for a version of the library
must be consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the ordinary GNU
General Public License. This license, the GNU Lesser General Public License,
applies to certain designated libraries, and is quite different from the ordinary
General Public License. We use this license for certain libraries in order to
permit linking those libraries into non-free programs.
We call this license the "Lesser" General Public License because it does Less to
protect the user's freedom than the ordinary General Public License. It also
provides other free software developers Less of an advantage over competing
non-free programs. These disadvantages are the reason we use the ordinary General
Public License for many libraries. However, the Lesser license provides advantages
For example, on rare occasions, there may be a special need to encourage the
widest possible use of a certain library, so that it becomes a de-facto standard.
To achieve this, non-free programs must be allowed to use the library. A more
frequent case is that a free library does the same job as widely used non-free
libraries. In this case, there is little to gain by limiting the free library to
free software only, so we use the Lesser General Public License.
Although the Lesser General Public License is Less protective of the users'
freedom, it does ensure that the user of a program that is linked with the Library
has the freedom and the wherewithal to run that program using a modified version
of the Library.
The precise terms and conditions for copying, distribution and modification
follow. Pay close attention to the difference between a "work based on the
library" and a "work that uses the library". The former contains code derived from
the library, whereas the latter must be combined with the library in order to run.
The "Library", below, refers to any such software library or work which has been
distributed under these terms. A "work based on the Library" means either the
Library or any derivative work under copyright law: that is to say, a work
containing the Library or a portion of it, either verbatim or with modifications
and/or translated straightforwardly into another language. (Hereinafter,
translation is included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for making
modifications to it. For a library, complete source code means all the source code
for all modules it contains, plus any associated interface definition files, plus
the scripts used to control compilation and installation of the library.
Activities other than copying, distribution and modification are not covered by
this License; they are outside its scope. The act of running a program using the
Library is not restricted, and output from such a program is covered only if its
contents constitute a work based on the Library (independent of the use of the
Library in a tool for writing it). Whether that is true depends on what the
Library does and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's complete source
code as you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and disclaimer
of warranty; keep intact all the notices that refer to this License and to the
absence of any warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy, and you may at
your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Library or any portion of it, thus
forming a work based on the Library, and copy and distribute such modifications or
work under the terms of Section 1 above, provided that you also meet all of these
conditions:
b) You must cause the files modified to carry prominent notices stating that you
changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no charge to all third
parties under the terms of this License.
(For example, a function in a library to compute square roots has a purpose that
is entirely well-defined independent of the application. Therefore, Subsection 2d
requires that any application-supplied function or table used by this function
must be optional: if the application does not supply it, the square root function
must still compute square roots.)
Thus, it is not the intent of this section to claim rights or contest your rights
to work written entirely by you; rather, the intent is to exercise the right to
control the distribution of derivative or collective works based on the Library.
In addition, mere aggregation of another work not based on the Library with the
Library (or with a work based on the Library) on a volume of a storage or
distribution medium does not bring the other work under the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public License
instead of this License to a given copy of the Library. To do this, you must alter
all the notices that refer to this License, so that they refer to the ordinary GNU
General Public License, version 2, instead of to this License. (If a newer version
than version 2 of the ordinary GNU General Public License has appeared, then you
can specify that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for that copy, so the
ordinary GNU General Public License applies to all subsequent copies and
derivative works made from that copy.
This option is useful when you wish to copy part of the code of the Library into a
4. You may copy and distribute the Library (or a portion or derivative of it,
under Section 2) in object code or executable form under the terms of Sections 1
and 2 above provided that you accompany it with the complete corresponding
machine-readable source code, which must be distributed under the terms of
Sections 1 and 2 above on a medium customarily used for software interchange.
However, linking a "work that uses the Library" with the Library creates an
executable that is a derivative of the Library (because it contains portions of
the Library), rather than a "work that uses the library". The executable is
therefore covered by this License. Section 6 states terms for distribution of such
executables.
When a "work that uses the Library" uses material from a header file that is part
of the Library, the object code for the work may be a derivative work of the
Library even though the source code is not. Whether this is true is especially
significant if the work can be linked without the Library, or if the work is
itself a library. The threshold for this to be true is not precisely defined by
law.
If such an object file uses only numerical parameters, data structure layouts and
accessors, and small macros and small inline functions (ten lines or less in
length), then the use of the object file is unrestricted, regardless of whether it
is legally a derivative work. (Executables containing this object code plus
portions of the Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may distribute the
object code for the work under the terms of Section 6. Any executables containing
that work also fall under Section 6, whether or not they are linked directly with
the Library itself.
6. As an exception to the Sections above, you may also combine or link a "work
that uses the Library" with the Library to produce a work containing portions of
the Library, and distribute that work under terms of your choice, provided that
the terms permit modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the Library is used
in it and that the Library and its use are covered by this License. You must
supply a copy of this License. If the work during execution displays copyright
notices, you must include the copyright notice for the Library among them, as well
as a reference directing the user to the copy of this License. Also, you must do
one of these things:
a) Accompany the work with the complete corresponding machine-readable source code
for the Library including whatever changes were used in the work (which must be
distributed under Sections 1 and 2 above); and, if the work is an executable
linked with the Library, with the complete machine-readable "work that uses the
Library", as object code and/or source code, so that the user can modify the
Library and then relink to produce a modified executable containing the modified
Library. (It is understood that the user who changes the contents of definitions
files in the Library will not necessarily be able to recompile the application to
use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the Library. A
suitable mechanism is one that (1) uses at run time a copy of the library already
present on the user's computer system, rather than copying library functions into
the executable, and (2) will operate properly with a modified version of the
library, if the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at least three years, to
give the same user the materials specified in Subsection 6a, above, for a charge
no more than the cost of performing this distribution.
e) Verify that the user has already received a copy of these materials or that you
have already sent this user a copy.
For an executable, the required form of the "work that uses the Library" must
include any data and utility programs needed for reproducing the executable from
it. However, as a special exception, the materials to be distributed need not
include anything that is normally distributed (in either source or binary form)
with the major components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies the
executable.
It may happen that this requirement contradicts the license restrictions of other
proprietary libraries that do not normally accompany the operating system. Such a
contradiction means you cannot use both them and the Library together in an
executable that you distribute.
7. You may place library facilities that are a work based on the Library
side-by-side in a single library together with other library facilities not
covered by this License, and distribute such a combined library, provided that the
separate distribution of the work based on the Library and of the other library
facilities is otherwise permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work based on the
Library, uncombined with any other library facilities. This must be distributed
under the terms of the Sections above.
b) Give prominent notice with the combined library of the fact that part of it is
a work based on the Library, and explaining where to find the accompanying
uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute the Library
except as expressly provided under this License. Any attempt otherwise to copy,
modify, sublicense, link with, or distribute the Library is void, and will
automatically terminate your rights under this License. However, parties who have
received copies, or rights, from you under this License will not have their
licenses terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the Library or
its derivative works. These actions are prohibited by law if you do not accept
this License. Therefore, by modifying or distributing the Library (or any work
based on the Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying the Library or
works based on it.
10. Each time you redistribute the Library (or any work based on the Library), the
recipient automatically receives a license from the original licensor to copy,
distribute, link with or modify the Library subject to these terms and conditions.
You may not impose any further restrictions on the recipients' exercise of the
rights granted herein. You are not responsible for enforcing compliance by third
parties with this License.
It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of the free software
distribution system which is implemented by public license practices. Many people
have made generous contributions to the wide range of software distributed through
that system in reliance on consistent application of that system; it is up to the
author/donor to decide if he or she is willing to distribute software through any
other system and a licensee cannot impose that choice.
13. The Free Software Foundation may publish revised and/or new versions of the
Lesser General Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to address new problems
or concerns.
14. If you wish to incorporate parts of the Library into other free programs whose
distribution conditions are incompatible with these, write to the author to ask
for permission. For software which is copyrighted by the Free Software Foundation,
write to the Free Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status of all
derivatives of our free software and of promoting the sharing and reuse of
software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH
YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
To apply these terms, attach the following notices to the library. It is safest to
attach them to the start of each source file to most effectively convey the
exclusion of warranty; and each file should have at least the "copyright" line and
a pointer to where the full notice is found.
<one line to give the library's name and an idea of what it does.> Copyright (C)
<year> <name of author>
This library is free software; you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free Software
Foundation; either version 2.1 of the License, or (at your option) any later
version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this library; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA
determines your right to use the Oracle program, including the Engelschall software,
and the terms contained in the following notices do not change those rights.
Notwithstanding anything to the contrary in the Oracle program license, the mod_mm
software is provided by Oracle "AS IS" and without warranty or support of any kind
from Oracle or Engelschall.
mod_mm
Copyright (c) 1999 - 2000 Ralf S. Engelschall. All rights reserved.
This product includes software developed by Ralf S. Engelschall
<[email protected]> for use in the mod_ssl project (http://www.modssl.org/).
mod_ssl
Copyright (c) 1998-2001 Ralf S. Engelschall. All rights reserved.
This product includes software developed by Ralf S. Engelschall
<[email protected]> for use in the mod_ssl project (http://www.modssl.org/).
OpenSSL
This program contains third-party code from the OpenSSL Project. Under the terms of
the OpenSSL Project license, Oracle is required to provide the following notices. Note,
however, that the Oracle program license that accompanied this product determines
your right to use the Oracle program, including the OpenSSL software, and the terms
contained in the following notices do not change those rights.
OpenSSL License
/* ====================================================================
* Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* [email protected].
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
Perl
This program contains third-party code from the Comprehensive Perl Archive
Network ("CPAN"). Under the terms of the CPAN license, Oracle is required to
provide the following notices. Note, however, that the Oracle program license that
accompanied this product determines your right to use the Oracle program, including
the CPAN software, and the terms contained in the following notices do not change
those rights.
For those of you that choose to use the GNU General Public License, my interpretation
of the GNU General Public License is that no Perl script falls under the terms of the
GPL unless you explicitly put said script under the terms of the GPL yourself.
Furthermore, any object code linked with perl does not automatically fall under the
terms of the GPL, provided such object code only adds definitions of subroutines and
variables, and does not otherwise impair the resulting interpreter from executing any
standard Perl script. I consider linking in C subroutines in this manner to be the moral
equivalent of defining subroutines in the Perl language itself. You may sell such an
object file as proprietary provided that you provide or offer to provide the Perl source,
as specified by the GNU General Public License. (This is merely an alternate way of
specifying input to the program.) You may also sell a binary produced by the dumping
of a running Perl script that belongs to you, provided that you provide or offer to
provide the Perl source as specified by the GPL. (The fact that a Perl interpreter and
your code are in the same binary file is, in this case, a form of mere aggregation.) This
is my interpretation of the GPL. If you still have concerns or difficulties understanding
my intent, feel free to contact me. Of course, the Artistic License spells all this out for
your protection, so you may prefer to use that.
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
Preamble
The intent of this document is to state the conditions under which a Package may be
copied, such that the Copyright Holder maintains some semblance of artistic control
over the development of the package, while giving the users of the package the right
to use and distribute the Package in a more-or-less customary fashion, plus the right to
make reasonable modifications.
Definitions
"Package" refers to the collection of files distributed by the Copyright Holder, and
derivatives of that collection of files created through textual modification.
"Standard Version" refers to such a Package if it has not been modified, or has been
modified in accordance with the wishes of the Copyright Holder as specified below.
"Copyright Holder" is whoever is named in the copyright or copyrights for the
package.
"You" is you, if you're thinking about copying or distributing this Package.
"Reasonable copying fee" is whatever you can justify on the basis of media cost,
duplication charges, time of people involved, and so on. (You will not be required to
justify it to the Copyright Holder, but only to the computing community at large as a
market that must bear the fee.)
"Freely Available" means that no fee is charged for the item itself, though there may be
fees involved in handling the item. It also means that recipients of the item may
redistribute it under the same conditions they received it.
1. You may make and give away verbatim copies of the source form of the Standard
Version of this Package without restriction, provided that you duplicate all of the
original copyright notices and associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications derived from
the Public Domain or from the Copyright Holder. A Package modified in such a
way shall still be considered the Standard Version.
3. You may otherwise modify your copy of this Package in any way, provided that
you insert a prominent notice in each changed file stating how and when you
changed that file, and provided that you do at least ONE of the following:
a. place your modifications in the Public Domain or otherwise make them Freely
Available, such as by posting said modifications to Usenet or an equivalent
medium, or placing the modifications on a major archive site such as
uunet.uu.net, or by allowing the Copyright Holder to include your
modifications in the Standard Version of the Package.
b. use the modified Package only within your corporation or organization.
c. rename any non-standard executables so the names do not conflict with
standard executables, which must also be provided, and provide a separate
manual page for each non-standard executable that clearly documents how it
differs from the Standard Version.
d. make other distribution arrangements with the Copyright Holder.
4. You may distribute the programs of this Package in object code or executable form,
provided that you do at least ONE of the following:
a. distribute a Standard Version of the executables and library files, together with
instructions (in the manual page or equivalent) on where to get the Standard
Version.
b. accompany the distribution with the machine-readable source of the Package
with your modifications.
c. give non-standard executables non-standard names, and clearly document the
differences in manual pages (or equivalent), together with instructions on
where to get the Standard Version.
d. make other distribution arrangements with the Copyright Holder.
5. You may charge a reasonable copying fee for any distribution of this Package. You
may charge any fee you choose for support of this Package. You may not charge a
fee for this Package itself. However, you may distribute this Package in aggregate
with other (possibly commercial) programs as part of a larger (possibly
commercial) software distribution provided that you do not advertise this Package
as a product of your own. You may embed this Package's interpreter within an
executable of yours (by linking); this shall be construed as a mere form of
aggregation, provided that the complete Standard Version of the interpreter is so
embedded.
6. The scripts and library files supplied as input to or produced as output from the
programs of this Package do not automatically fall under the copyright of this
Package, but belong to whoever generated them, and may be sold commercially,
and may be aggregated with this Package. If such scripts or library files are
aggregated with this Package through the so-called "undump" or "unexec"
methods of producing a binary executable image, then distribution of such an
image shall neither be construed as a distribution of this Package nor shall it fall
under the restrictions of Paragraphs 3 and 4, provided that you do not represent
such an executable image as a Standard Version of this Package.
7. C subroutines (or comparably compiled subroutines in other languages) supplied
by you and linked into this Package in order to emulate subroutines and variables
of the language defined by this Package shall not be considered part of this
Package, but are the equivalent of input as in Paragraph 6, provided these
subroutines do not change the language in any way that would cause it to fail the
regression tests for the language.
8. Aggregation of this Package with a commercial distribution is always permitted
provided that the use of this Package is embedded; that is, when no overt attempt
is made to make this Package's interfaces visible to the end user of the commercial
distribution. Such use shall not be construed as a distribution of this Package.
9. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written permission.
10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
The End
SAXPath
This program contains third-party code from SAXPath. Under the terms of the
SAXPath license, Oracle is required to provide the following notices. Note, however,
that the Oracle program license that accompanied this product determines your right
to use the Oracle program, including the SAXPath software, and the terms contained
in the following notices do not change those rights. Notwithstanding anything to the
contrary in the Oracle program license, the SAXPath software is provided by Oracle
"AS IS" and without warranty or support of any kind from Oracle or SAXPath.
Redistributions of source code must retain the above copyright notice, this list
of conditions, and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions, and the disclaimer that follows these conditions in the
documentation and/or other materials provided with the distribution.
The name "SAXPath" must not be used to endorse or promote products derived from
this software without prior written permission. For written permission, please
contact [email protected].
Products derived from this software may not be called "SAXPath", nor may "SAXPath"
appear in their name, without prior written permission from the SAXPath Project
Management ([email protected]).
In addition, we request (but do not require) that you include in the end-user
documentation provided with the redistribution and/or in the software itself an
acknowledgment equivalent to the following: "This product includes software
developed by the SAXPath Project (http://www.saxpath.org/)." Alternatively, the
acknowledgment may be graphical using the logos available at
http://www.saxpath.org/.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE SAXPath
AUTHORS OR THE PROJECT CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. This software consists of voluntary contributions made
by many individuals on behalf of the SAXPath Project and was originally created by
bob mcwhirter and James Strachan . For more information on the SAXPath Project,
please see http://www.saxpath.org/.
W3C DOM
This program contains third-party code from the World Wide Web Consortium
("W3C"). Under the terms of the W3C license, Oracle is required to provide the
following notices. Note, however, that the Oracle program license that accompanied
this product determines your right to use the Oracle program, including the W3C
software, and the terms contained in the following notices do not change those rights.
Notwithstanding anything to the contrary in the Oracle program license, the W3C
software is provided by Oracle AS IS and without warranty or support of any kind
from Oracle or W3C.
Permission to copy, modify, and distribute this software and its documentation,
with or without modification, for any purpose and without fee or royalty is hereby
granted, provided that you include the following on ALL copies of the software and
documentation or portions thereof, including modifications:
The full text of this NOTICE in a location viewable to users of the redistributed
or derivative work.
Any pre-existing intellectual property disclaimers, notices, or terms and
conditions. If none exist, the W3C Software Short Notice should be included
(hypertext is preferred, text is permitted) within the body of any redistributed
or derivative code.
Notice of any changes or modifications to the files, including the date changes
were made. (We recommend you provide URIs to the location from which the code is
derived.)
THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO,
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
The name and trademarks of copyright holders may NOT be used in advertising or
publicity pertaining to the software without specific, written prior permission.
Title to copyright in this software and any associated documentation will at all
times remain with copyright holders.
Index-1
DefineColumnType property, 4-7 subscribing to, 12-5
-describeSharedLibrary command, 6-18 JMX support, 12-1
DTDs JSR-77 support, 12-1
registering with OC4J, 14-1 JVM, 1-2
E K
EJB 3.0 support, 1-4 KeepIIOPCode property, 4-6
EJB module
updating, 6-15, 7-7
L
entity resolver, 14-1
environment variables libraries
J2EE_HOME, 2-2, 4-5 creating shared, 6-15
JAVA_HOME, 2-1 installing shared, 6-15
ORACLE_HOME, 2-2, 4-5 managing shared, 6-15
setting, 2-1 -listSharedLibraries command, 6-18
load balancing, 8-22
load balancing algorithms
G mod_oc4j, 8-25
garbage collection LoadBalanceOnLookup property, 4-6
impact on server performance, A-2 loadbalancer.jar, 9-2
GenerateIIOP property, 4-5 logging
-getDataSourcesDescriptor command, 6-25 Oracle Diagnostic Logging, 11-4
-getDestinations command, 6-28 plain text, 11-3
-getJMSConnectionFactories command, 6-26 rotating log files, 11-4
global web application, 1-10 summary of log files, 11-1
H M
HTTP method managing OC4J from a JMX client, 6-30
trace, 4-9 managing OC4J through a remote client, 6-28
http.method.trace.allow property, 4-9 MBeans
http.request.debug property, 4-8, 4-9 accessing, 12-5
HTTPS, 13-10 application-specific, 12-6
client-authentication, 13-12 notifications, 12-5
persistence policy, 12-4
using, 12-5
I
what are, 12-1
InitialContext, 4-6 MBeanServer, 6-28
instances mod_oc4j
creating additional OC4J instances, 8-7 choosing load balancing algorithm, 8-27
load balancing options, 8-25
J mod_oc4j module, 1-9, 8-22
mod_oc4j.conf
J2EE configuring load balancing, 8-26
definition, 1-1 Oc4jRoutingWeight directive, 8-26
supported APIs, 1-2 Oc4jSelectMethod directive, 8-26
J2EE Management support, 12-1 -modifySharedLibrary command, 6-17
J2EE_HOME environment variable, 2-2, 4-5 mount points, 8-28
j2ee-logging.xml, 11-9
Java Management Extensions support, 12-1
JAVA_HOME environment variable, 2-1 N
java.awt.headless property, 4-5 needs-client-auth attribute, 13-12
java.ext.dirs property, 4-5 Network Interface Card binding, 9-6
java.io.tmpdir property, 4-5
java.lang.OutOfMemory errors, A-1
JConsole, 6-28
O
JDK OC4J
supported versions, 1-2 administration, 3-3, 3-4, 6-1, 7-1
JMX client for managing OC4J remotely, 6-30 Ant tasks, 1-8
JMX notifications command-line interface, 3-3, 6-1, 7-1
Index-2
command-line options, 4-4 P
creating new instances of, 8-7
load balancing, 8-25 password
mod_oc4j, 8-25 changing for all instances in a cluster, 3-6
restarting, 5-5, 6-19 changing in OC4J, 3-6
shutting down, 5-3, 6-19 performance
startup, 5-1 oracle.dms.sensors setting, 4-7
stopping, 6-19 performance setting
system properties, 4-4 dedicated.connection, 4-6
troubleshooting, A-1 dedicated.rmicontext, 4-6
oc4j executable scripts, 3-4 DefineColumnType, 4-7
oc4j shell script, 3-4 LoadBalanceOnLookup, 4-6
OC4J version, 7-3 oracle.dms.gate, 4-7
OC4J_EJB_SESSION, C-2 oracle.j2ee.rmi.loadBalance, 4-6
oc4j_extended, 2-1 task manager granularity, 10-1
OC4J_HTTP_SESSION, C-1 -publishSharedLibrary command, 6-15
OC4J_HTTP_SESSION_VALUE, C-1
oc4j.cmd batch file, 3-4 R
oc4j-connectors.xml, B-3
remote client for managing OC4J, 6-28
oc4j.jar tool
-removeDataSourceConnectionPool command, 6-21
startup, 5-1
-removeDestination command, 6-27
oc4j-ra.xml, B-5
removeinstance utility, 8-9
Oc4jRoutingWeight directive, 8-26
-removeJMSConnectionFactory command, 6-26
Oc4jSelectMethod directive, 8-26
-removeManagedDataSource command, 6-23
ODL Archives, 11-6
-removeNativeDataSource command, 6-24
ODL log, 11-6
-removeSharedLibrary command, 6-18
ONS, 8-1
resource adapters
opmnassociate tool, 8-15
deploying, 7-11
opmnctl
undeploying, 7-11
config port command, 13-4
-restart command, 6-19
configuring a cluster, 8-14
restarting
configuring Web site ports, 13-4
OC4J, 5-5, 6-19
using to start OC4J, 5-2
restarting applications, 6-18
OPMN-managed replication, 9-7
restarting OC4J, 6-19
Oracle Diagnostic Logging, 11-4
routing IDs
Oracle Diagnostic Logging (ODL)
creating, 8-22
file naming, 11-6, 11-7
using to manage Web routing, 8-22
Oracle Diagnostic Logging, see logging
ODL
Oracle HTTP Server, 1-9 S
Oracle HTTP server schemas
dynamic OC4J discovery, 8-28 viewing, B-1
load balancing, 8-22 scripted deployment
mod_oc4j module, 8-22 using Ant tasks, 1-8
overview, 1-9 Secure Socket Layer--see SSL
routing IDs, 8-22 secure Web site, 13-10
oracle Logger security
configuring, 11-9 OC4J and Oracle HTTP Server
Oracle Notification System, 8-1 configuration, 13-10
ORACLE_HOME environment variable, 2-2 server.xml file, B-5
OracleAS JAAS Provider user context, B-4 shared libraries
oracle.dms.gate setting, 4-7 creating, 6-15
oracle.dms.sensors setting, 4-7 installing, 6-15
oracle.j2ee.rmi.loadBalance property, 4-6 managing, 6-15
oracle.mdb.fastUndeploy property, 4-6 -shutdown command, 6-19
oracle-webservices.xml, B-5 SSL, 13-10
Out of Memory error, 4-5 client-authentication, 13-12
-start command, 6-19
starting applications, 6-18
starting OC4J in a standalone environment, 5-1
Index-3
-stop command, 6-19 X
stopping a group of OC4J instances, 6-19
stopping an OC4J instance in a managed XML files
environment, 6-19 reloading modified, 7-3
stopping applications, 6-18 XML schemas, B-1
stopping OC4J, 6-19 XSDs
stopping OC4J in a standalone configuration, 5-3, registering with OC4J, 14-1
6-19 viewing, B-1
system application, 1-10, B-2
configuring, 1-10
overview, 1-10
System MBean Browser, 12-5
system properties, 4-4
system-application.xml, 1-10, B-2
T
task manager
execution interval, 10-1
setting granularity, 10-1
taskmanager-granularity attribute, 10-1
-testDatabaseConnection command, 6-24
-testDataSource command, 6-24
-testDataSourceConnectionPool command, 6-21
thread pools
configuring, 10-4
troubleshooting OC4J, A-1
two-phase commit transaction coordinator, 1-4
U
-updateEJBModule command, 6-15
V
version
view OC4J release version, 7-3
W
Web communications
in a standalone OC4J installation, 1-7
in an Oracle Application Server installation, 1-9
Web server
native OC4J listener, 1-7
Oracle HTTP Server, 1-9
Web services support, 1-3
Web site
binding applications to multiple sites, 13-9
client authentication, 13-11
configuration file, 13-6
configuring in OPMN, 13-2
configuring in standalone OC4J, 13-2
creating a new site, 13-6
referencing in opmn.xml, 13-8
referencing in server.xml, 13-8
secure, 13-10
starting and stopping, 13-13
ws.debug property, 4-9
Index-4