Oracle Application Server Containers for J2EE 10g (9.0.4) - Feature Overview
FAQ Oracle Application Server Logo
Oracle Application Server Containers for J2EE 10g (9.0.4)
 September 2003


Overview

Oracle Application Server 10g is the next generation application server, enabled for enterprise grid computing. It enables on-demand computing across an enterprise by efficiently pooling and utilizing hundreds of hardware resources (CPU, memory, storage) available within an enterprise.

At the heart of Oracle Application Server 10g is a fast, lightweight, highly scalable and easy-to-use J2EE container that is written entirely in Java and which executes using the Java2 Standard Edition (J2SE). The J2EE container component, Oracle Application Server Containers for J2EE (OC4J) is J2EE 1.3 compatible and provides a Web container supporting JSP page translation and execution with a Servlet engine, an Enterprise Java Beans (EJB) container, a choice of JMS providers, and the rest of the J2EE services such as JNDI, JDBC, JTA, JCA, and JAAS.

Oracle Application Server provides support for new and emerging technologies such as Web services through the implementation of SOAP, WSDL, and UDDI standards. Oracle Application Server incorporates these standards into its flexible application development and deployment environment, enabling you to integrate and extend your existing applications and infrastructure with new applications, forming a a single, centrally managed environment.

New Features in Oracle Application Server Containers for J2EE 10g (9.0.4):

Startup and Shutdown Classes

In support of a common user enhancement request, the use of server level startup and shutdown classes has been added to OC4J. Startup and shutdown classes are specific Java classes that are loaded and invoked by OC4J immediately after it has finished its initialization routines, and immediately before it completes its shutdown tasks. Startup and shutdown classes are configured at the application server level and are provided with access to the JNDI context for the OC4J instance. For cases where multiple classes are provided for invocation at startup and/or shutdown, configuration parameters can be used to indicate the required order of execution.

Web Tier Features

The JavaServer Pages Standard Tag Library (JSTL) is now packaged and distributed with OC4J, allowing developers to easily make use of the wide array of tags supported in JSTL within their JSP applications. With the increasing use of tag libraries within JSP applications, OC4J now includes a configurable persistent caching mechanism for tag library descriptors, providing applications with a performance benefit by storing parsed TLD files in a more efficiently interpreted format.

The use of HTTPS with the OC4J standalone HTTP server is a fully documented, and supported feature. In addition, the use of HTTPS as a communication channel between the mod_oc4j module running within Oracle HTTP Server and OC4J is now supported, enabling secure transmission of requests and data between the two runtime components.

EJB Features

The EJB container has been improved in a number of areas. Firstly, a significant amount of work has been done to increase the quality of the container managed relationships implementation, particularly in the area of custom primary keys and bi-directional relationships.

For EJBQL, additional capabilities have been added to support the use of common time and date types within query statements, specifically, the use of java.util.Date, java.sql.Date and java.sql.Timestamp objects. This enables EJBQL statement to perform operations which utilize date and time fields. The use of a SQRT function has also been added.

For stateful session beans, a configurable activation and passivation capability has been implemented -- configuration options include factors such as the maximum instance count, memory threshold limits, and inactivity time-outs.

For J2EE applications which are deployed to Oracle Application Server environments and make connections to managed OC4J instances which have dynamically allocated port numbers, a new transparent lookup operation has been added to allow client side EJB components to locate the required port numbers.

Extended Web Services Support

The Oracle Application Server Web Services (OracleAS Web Services) framework is tightly integrated with J2EE so that an existing J2EE application can easily be turned into a Web service. Web services deployed to, and executed on the OC4J platform inherit all the runtime and lifecycle management elements of J2EE applications. In addition to J2EE application components, the following types of Web services can be run on OC4J

  • Stateless or Stateful Java classes as RPC or Document Style Web services
  • Stateless session EJBs as Web services
  • PL/SQL Stored Procedures as Web services
  • JMS endpoints (Topics and Queues) as Document Style Web services

OracleAS Web services supports the use of both typed and untyped SOAP messages, enabling better interoperability with Web services running on .NET. Access to SOAP headers is provided via an API enabling the use of SOAP headers to transmit and receive additional semantic information from messages.

To provide a simpler testing environment for Web services, a dynamic WSDL tester is provided. The dynamic WSDL tester constructs a Web based test client from a given WSDL document, enabling deployed Web services to be invoked without needing to explicitly build a client.

Additional JMS Provider

OC4J continues to provides strong support for JMS, with this release seeing the introduction of an additional JMS provider -- Oracle Application Server JMS (OracleAS JMS). OC4J now provides developers and system architects with a choice of JMS providers to use, each being JMS 1.02b standards compliant, and capable of supporting JMS operations for the J2EE container. The JMS providers are:

OracleAS JMS: a pure Java JMS provider which runs in process with OC4J. It uses an in-memory model for message storage and propagation and provides support for message persistence across container restarts using a file based message store. OracleAS JMS is configured using an XML file and provides a command line utility to monitor and manage runtime operations. OracleAS JMS supports MessageDriven Bean operations.

Oracle JMS (OJMS): JMS provider that is based on the Streams Advanced Queuing messaging service of the Oracle Database where Queues and Topics are created directly within the Oracle Database. OJMS is accessible from OC4J via the ResourceProvider interface mechanism, publishing Queues and Topics under specified resource names. Oracle JMS can be configured using Oracle Enterprise Manager, and supports MessageDriven Bean operations.

High Availability Support for Data Sources

OC4J can be configured to support the highly available architectures made possible with the Oracle database - Oracle DataGuard, Real Application Clusters, and Transparent Application Failover (TAF). Specifically, OC4J provides configurable data source support for network failure protection and transparent application failover in RAC environments.

Network Failover describes the ability of the data source to continue to make new connections to an available database instance in a RAC cluster even though it is configured to connect to an instance that has failed. Existing connections to the failed instance are not reconnected to the surviving instances. This is the only type of failover available when using the thin JDBC drivers.

TAF describes the ability of the data source to both failover and reestablish existing connections to available database instances in a RAC cluster. Connections are automatically reconnected to an available instance when the original instance fails, and in some situations, in progress SELECT statements and JDBC PreparedStatements can continue. TAF is only available for use with the thick JDBC drivers.

For non highly available database environments, data sources now support a configurable threshold period to specify how often connections in the data source should be validated and cleaned up if necessary.

Password Obfuscation and Indirection in Configuration Files

To help prevent the exposure of sensitive passwords, OC4J supports an indirection model for specifying passwords in configuration files. This model enables an administrator to specify an entry for a password which in turn is used as a pointer to a user who exists in a secured user repository. The password for the user from the secured user repository is then used as the real password for the configuration element. This enables passwords to be consolidated into a central location, enabling password changes to be effected more easily and reliably. The secured user repository can be either the file based JAZN user store, or the JAZN-LDAP user store.

Rotating Log Files and XML Formatting Option

To support production environments where the need to carefully log and monitor activities is very important, OC4J can be configured to direct it's logging output to files which are rotated according to a set of specified criteria. Through the provision of a maximum directory size setting, the OC4J logging subsystem will maintain a set of log files, of which only one is active at a time. This provides administrators with the ability to constrain the amount of diskspace used for logging, which is particularly important for systems which receive significant amounts of traffic. By utilizing a rolling log schedule, administrators are also able to work with the log files without needing to take the server offline.

In addition to the support for rolling log files, the logging subsystem can also format logging output using an XML format defined by the Oracle Diagnostic Logging (ODL) specification. The formatting of log files in XML format enables them to be more easily parsed and reused by other Oracle Application Server and custom developed components. Oracle Enterprise Manager provides a new aggregated view of log files across the various OC4J instances it is managing, allowing administrators to view all logging outputs from one centralized location.

Key Capabilities of Oracle Application Server Containers for J2EE 10g (9.0.4):

J2EE 1.3 Compatible

OC4J 10g (9.0.4) is J2EE 1.3 compatible and provides complete support for all J2EE 1.3 APIs -- JavaServer Pages 1.2, Java Servlet 2.3, Enterprise JavaBeans 2.0, JDBC 2.0 Extension, J2EE Connector Architecture 1.0, Java Message Service 1.02b, Java Transaction API 1.0, Java API for XML Processing 1.1, Java Authentication and Authorization Service 1.0, JavaMail 1.2, and Java Activation Framework 1.0.

With OC4J, you can take advantage of the latest and most advanced J2EE features to create flexible, secure, portable, and highly performant applications.

Support for Web Services

Oracle Application Server Web Services provide a complete environment for developing, deploying and managing Web services. OC4J is the backbone of the Web services platform, acting as the runtime engine to execute deployed Web services. Deployment and management operations are facilitated using Oracle Enterprise Manager, and UDDI services for publishing, querying and searching for Web services are supported with the OracleAS UDDI registry. Rapid development of Web services is fulfilled with Oracle JDeveloper 10g, enabling modeling, development, deployment and testing to be carried out from one integrated environment.

Developer Friendly, Enterprise Enabled

OC4J is distributed in two different mediums - as a pure Java standalone distribution, and as part of the full Oracle Application Server product.

The pure Java standalone distribution is ideally suited for use in development and testing environments, as well as small scale production systems. It is distributed as a single zip file, enabling it to be easily downloaded and installed. It is configured and managed through the manual manipulation of a set of simple XML files. In this usage model, OC4J runs as a single process and HTTP requests are processed directly by OC4J's built in HTTP listener.

For large scale production systems which require the use of a world class HTTP server, single-sign-on capabilities for security, automatic process management for system availability, and browser based server management, OC4J is used within the full Oracle Application Server environment. In this usage model, OC4J is tightly integrated with the entire Oracle Application Server technology stack. Configuration, server management and application deployment is performed using the HTML based management console of Enterprise Manager. Incoming HTTP requests are serviced with Oracle HTTP Server, and processes are managed automatically by the high availability services provided in Oracle Application Server.

For both usage models, the same OC4J component is used, therefore providing a consistent level of J2EE support between the two environments. This enables developers to use the standalone distribution to develop and test applications, and then deploy completed applications to Oracle Application Server to take advantage of its advances capabilities, safe in the knowledge that the two environments are compatible with one another.

Java applications built with any development tool can be deployed against OC4J. It supports standard J2EE deployment packages EAR, WAR, JAR or Client JAR files. Applications deployed to OC4J can be debugged using standard Java profiling and debugging facilities.

Availability and Scalability

OC4J provides component clustering, load-balancing, and application state replication for Web and EJB applications. It is tightly integrated with the high availability and process monitoring infrastructure of Oracle Application Server so it can be deployed in mission critical environments with no single point of failure.

This release supports an extended set of mod_oc4j load balancing algorithms to route requests from Oracle HTTP Server to OC4J. The new algorithms provide more flexibility in the dispatching of requests from clients to waiting OC4J instances.

High Performance

OC4J is highly optimized, providing extremely fast response times and high throughput rates. New concurrency and locking models for EJBs enable high levels of concurrent access without sacrificing data consistency. Oracle is a keen participator in open, standards based performance benchmarks such as SPECjAppServer2002 (http://www.spec.org/jAppServer2002/) which is developed and administered by the Standard Performance Evaluation Corp. (SPEC). SPECjAppServer2002 measures the performance of Java 2 Enterprise Edition (J2EE) 1.3 application servers connected to a database server.

Runtime Monitoring

The sub-systems of OC4J have been instrumented at key points using the Dynamic Monitoring Service (DMS) to provide runtime performance and operational data. DMS has been submitted as a Java Specification Request (JSR 138). The gathered metrics can be viewed directly using the Spy Web application supplied with OC4J, or viewed as an aggregate across all Oracle Application Server instances using the Oracle Enterprise Manager Web console.

Security

OC4J provides strong support for creating secure applications through it's implementation of the Java Authentication and Authorization Service (JAAS). This enables developers and administrators to secure the access to, and execution of, J2EE applications. To satisfy a growing requirement for single station user administration and single sign on across an organization, the Oracle implementation of JAAS can easily integrate applications with Oracle Application Server Single Sign On and Oracle Internet Directory.

Management

OC4J can be fully administered using the HTML based Enterprise Manager console. This includes support for starting and stopping server instances, creating and managing clustered environments, deploying and configuring J2EE applications, and viewing both aggregated and detail level runtime performance metrics collected from DMS.

Broad Platform Support

Oracle Application Server is available on the following operating systems and hardware platforms: Solaris, HP-UX, IBM AIX, Compaq Tru64, Windows NT/2000 and Linux. OC4J standalone is pure Java and is fully supported for production use on all of the above platforms.

Full Feature List -- Oracle Application Server Containers for J2EE 10g (9.0.4)

FEATURE DETAILS

Web Container - Java Servlets

Full support for Servlet 2.3:

  • Servlet Filters
  • Application Lifecycle Events  
  • Full WAR file-based deployment  
  • Automatic compilation and deployment  
  • Stateful failover and cluster deployment 
  • Supports WAR file Manifest Class-Path settings and preferential loading of Web application specific class libraries
  • 100% compatibility with applications developed to the JSP and Servlet standard APIs using the Tomcat Servlet Engine
  • Integrated with Oracle HTTP Server for high availability, load-balancing, and failover through the module mod_oc4j using AJP 1.3
  • Support for encryption of traffic between Oracle HTTP Server and OC4J through the use of an SSL enabled connection with mod_oc4j
  • Seamless integration with single sign on services through Oracle Application Server Single Sign and mod_osso
  • Complete support for development and deployment of secure applications via the Oracle Application Server JAAS implementation and the Java2 security model

Web Container - JavaServer Pages

Full support for JSP 1.2:

  • JSP Page and JSP Document support
  • Support for JSP 1.2 runtime buffer management and page error handling
  • Prepackaged JSP Standard Tag Library (JSTL) to support tag based logic, conditional and formatting operations in JSP
  • Pre-built custom tag libraries to provide Web application developers with simple access to common JSP tasks:
    • Web services: allow easy integration of OC4J and external Web Service content with JSPs
    • EJB client tags: easy location and use of EJB applications components within JSP
    • FileAccess: simply enable operations with file system and database resident data from JSP
    • XML: exposes the powerful facilities of the XML parser to JSP developers in an easy to use manner
    • Java Edge Side Includes (JESI): provide simple mechanism to integrate dynamic content with edge caching infrastructure to improve performance and reduce hardware requirements
    • Connection Pooling: provide connection pooling facilities for JSP pages interacting with databases
    • Web Object Cache: increase application performance by caching XML and Java objects within the JVM
    • SendMail Tags: enable Web application developers to easily include e-mail sending functionality in their JSP
  • Pre-built custom tag libraries to expose the full capabilities of the Oracle Application Server platform to Web application developers:
    • UltraSearch: incorporate search facilities into JSP
    • Personalization: incorporate targeted recommendations from the Oracle Recommendation engine into JSP
    • Intermedia: access full range of multimedia content via Oracle Intermedia from JSP
  • Tag library caching to increase application performance through the persistent storage of tags which have been used in applications
  • Support for embedded SQLJ statements within JSP
  • Direct support for JSP source code debugging with Oracle JDeveloper 10g

Enterprise JavaBeans (EJB) Container

Full support for EJB 2.0:

  • Session Beans  
  • Entity Beans with container-managed persistence (CMP) and container managed relationships (CMR)
  • Entity Beans with bean-managed persistence (BMP)
  • Message-Driven Beans using either of the JMS providers supplied with OC4J
  • Local Interfaces
  • EJB Query Language (EJB QL) with added support for operations utilizing Date, Time, Timestamp types and SQRT functions
  • Configurable Activation and Passivation policies for Stateful Session Beans
  • Dynamic EJB stub generation  
  • Simplified configuration and customization  
  • Full EAR file based deployment  
  • Automatic and hot application deployment  
  • 2 phase commit support
  • Clustering for session and entity beans
  • Extended locking models for entity beans
    • Optimistic locking mode
    • Pessimistic locking mode
    • Read-only mode
  • Enhanced entity bean concurrency models to support concurrent access from multiple clients
  • In memory security context propagation from servlet container to EJB container
  • Integration with Oracle Application Server TopLink for advanced Object-Relational mapping operations from session and BMP style entity beans

Web Services

Oracle Application Server Web Services provides a complete infrastructure for developing, deploying and managing Web services.

  • Allows developers to create the following types of Web services:
    • Stateless or Stateful Java classes as RPC or Document Style Web services
    • Stateless session EJBs as Web services
    • PL/SQL Stored Procedures as Web services
    • JMS endpoints (Topics and Queues) as Document Style Web services
  • Automatic home page generation for Web Service endpoints exposing the WSDL, the static client proxy library to invoke the endpoint, and a Web based test page to exercise the endpoint
  • Static or dynamic client invocation
  • Publishing and query with UDDI v2
  • Dynamic WSDL tester
  • Supports typed and untyped SOAP messages with SOAP header access
  • Extended server side debug output
  • Additional support for using PL/SQL types such as BLOB, CLOB

Java Messaging Service

Full and comprehensive support for the JMS 1.02b specification via two service provider implementations

  • OracleAS JMS
    • Pure Java JMS 1.02b implementation
    • Runs in-process with OC4J
    • Highly configurable and tunable using command line utilities
    • Provides high performance through the use of in-memory operations
    • Supports file based persistence of Destinations and Messages
    • Integrated with EJB container, supporting MessageDriven Bean applications
  • Oracle JMS
    • Complete JMS 1.02b provider, utilizing Oracle Advanced Queuing as message service
    • Exposes Queues and Topics defined and managed with Oracle Advanced Queuing
    • Configurable via Oracle Enterprise Manager
    • Integrated with EJB, supporting MessageDriven Bean applications
    • Supports integration with other messaging systems via Oracle Messaging Gateways
  • Third Party JMS Support
    • Supports functionality to lookup and send messages to 3rd party JMS providers such as IBM MQSeries, SwiftMQ, and SonicMQ

Java Database Connectivity Services (JDBC)

Full Oracle and non-Oracle database access via JDBC including: 

  • Full JDBC 2.0 extension support 
    • Oracle JDBC-OCI driver (type 2)  
    • Oracle thin JDBC driver (type 4) 
  • Complete data type support  
  • Comprehensive DataSource support including an optimized one-phase commit data source for very fast database access, a full JTA/2PC enabled data source, and a native datasource implementation to allow for the use of the direct DataSource implementations provided by JDBC driver libraries
  • Configurable connection pooling and statement caching options
  • Provides configurable support for all Oracle Database high availability modes - Oracle RAC, Oracle Data Guard, cold-failover, and transparent application failover (TAF)
  • Improved dead connection detection and refresh
  • Advanced JDBC features using Oracle Connection and data types
  • Support for Oracle8i and Oracle9i Databases 
  • Bundled DataDirect type 4 JDBC Drivers which provide access to Informix, Sybase, Microsoft SQL Server and IBM DB/2 databases 

J2EE Connectors

Full support for the J2EE Connector 1.0 specification:

  • Deployment of standard Resource Adapter Archives (RARs)
  • Quality of Service (QoS) contracts support for connection pooling, container managed security
  • Open interface for custom authentication modules

Java Authentication and Authorization Service (JAAS)

Full support for the JAAS 1.0 specification:

  • A complete implementation of JAAS, the standard Java framework and programming interface that enables applications to authenticate and enforce access controls upon users
  • Integrates JAAS framework with J2EE deployment descriptors to enable declarative configuration of standards based security constraints for deployed applications
  • Provides integrated and switchable user managers:
    • Lightweight XML file user manager supporting role based access control and authentication from obfuscated XML files
    • LDAP user manager providing role based access control and authentication using LDAP with Oracle Internet Directory (OID)
  • Supports the configuration and use of custom JAAS login modules

J2EE Services and Infrastructure

Full support of the following platform services: 

  • Java Naming and Directory Interface (JNDI)  
  • Java Transaction API (JTA)  
  • RMI/IIOP for standards based interoperability and remote access
  • CSIv2 for security
  • RMI and HTTP tunneling services
  • HTTP and HTTPS tunneling 

Load Balancing and Availability 

Oracle Application Server provides load balancing at the Oracle HTTP Server (Apache) and OC4J levels: 

  • Tight integration with the Web container and HTTP server using the Apache module - mod_oc4j
  • mod_oc4j uses a binary protocol (AJP 1.3) to provide efficient request dispatching and response handling
  • Extended load balancing algorithms to support metric-based, round-robin, and affinity based routing decisions
  • Automatic connection rerouting in case of server instance outages
  • Automatic death detection of OC4J processes with automatic restart 
  • Transparent application failover  
  • Session state replication and failover for Web and EJB components
  • Static IP-based multicast  
  • No single point of failure  
  • Integration with third-party load balancing products  

 

Management and Administration

Oracle Application Server uses the HTML based console of Enterprise Manager for management and administration services:

  • Enables the management of local, remote, and clustered environments
  • Full deployment and configuration capabilities for J2EE applications
  • Single-station management and deployment for clustered environments
  • Complete control of OC4J specific parameters
  • Provide aggregated and low-level detail views of runtime metrics collected from DMS

Logging Services 

OC4J supports logging at a number of levels:

  • Support for rolling log files which are rotated within a specified directory according to a configurable maximum directory size
  • Configurable use of Oracle Diagnostic Logging to produce XML formatted log files for easier machine parsing and translation
  • Web access logging
  • Server and Application activity logs
  • RMI and JMS activity logs

 

Configuration and Deployment 

OC4J server configuration is XML-based, including:

  • Server configuration files 
  • Generic J2EE application and component configuration files 
  • OC4J-specific application and component configuration files 
  • Enables the use of obfuscated and indirect password entries in configuration files to shield passwords from unauthorized viewing

Oracle JDeveloper 10g Integration

Tight integration with Oracle's award winning Java development tool:

  • JDeveloper uses OC4J as an embedded J2EE container, enabling developers to build and test their applications against the same J2EE container used for production deployment
  • Configuration palette for embedded OC4J options
  • Single-click deployment from JDeveloper to OC4J
  • Remote and distributed debugging of J2EE application in OC4J
  • Remote profiling of J2EE applications in OC4J for execution, memory, and event analysis

Third Party Support

Oracle Application Server has strong support from partners and ISVs:

  • Supported by industry leading Java development, enterprise modeling, and content creation tools: Borland JBuilder, Sun Forte, Rational Rose, TogetherSoft Control Center, MacroMedia UltraDev, Pramati Studio, Compuware OptimalJ, Computer Associates Cool:Joe
  • Supported by industry leading performance monitoring, and load testing tools: Sitraka, VMGear, Mercury Interactive, Wiley

 

Oracle Application Server Containers for J2EE 10g (9.0.4) Standalone - System Requirements

Download Size: 28 MB
Installation Size 33 MB
J2SE Versions: 1.3.1, 1.4.x

Oracle Application Server Containers for J2EE 10g (9.0.4) - J2EE API Support
 
J2EE APIs OC4J Support
JSP 1.2
Servlet 2.3
EJB 2.0
JDBC 2.0 + Extension
JMS 1.02b
JNDI 1.2
Connector 1.0
JTA 1.0
JavaMail 1.1
JAF 1.0
JAXP 1.1

Summary

Oracle Application Server provides the latest in grid computing and J2EE technology with its J2EE 1.3 compatible server. It delivers the performance, scalability, high availability, security, and and ease-of-use required to support the evolving and agile business world of today. For more details, see on-line materials located on http://otn.oracle.com/tech/java/oc4j

Top of Page


Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
+1.650.506.7000
Fax +1.650.506.7200
http://www.oracle.com/

Copyright © Oracle Corporation 2003
All Rights Reserved

This document is provided for informational purposes only,
and the information herein is subject to change
without notice.  Please report any errors herein to
Oracle Corporation.  Oracle Corporation does not provide
any warranties covering and specifically disclaims any
liability in connection with this document.

Oracle is a registered trademark of Oracle Corporation.

All other company and product names mentioned are used
for identification purposes only and may be trademarks of
their respective owners.

 
E-mail this page
Printer View Printer View
Oracle Is The Information Company About Oracle | Oracle RSS Feeds | Careers | Contact Us | Site Maps | Legal Notices | Terms of Use | Privacy