Skip Headers
Oracle® Application Server High Availability Guide
10g Release 2 (10.1.2)
B14003-03
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

5 High Availability for Middle-tier Components

This chapter provides high availability information for the following middle-tier components:

5.1 Middle-Tier Components in Active-Passive Topologies

Generally, most middle-tier components are supported on OracleAS Cold Failover Cluster, or active-passive, topologies. However, some components have some conditions that you need to be aware of when running them in OracleAS Cold Failover Cluster topologies. These components include:

See the section for the component for details.

5.2 OracleAS Portal

You can run OracleAS Portal in active-active topologies, where you have at least two middle-tier instances running OracleAS Portal. These middle-tier instances are fronted by a load balancer, which distributes requests to the middle tiers.

There are two versions of this topology:

Highlights of OracleAS Portal in Active-Active Topologies

Session Binding for OracleAS Web Clipping Portlet

The session binding feature in OracleAS Web Cache is used to bind user sessions to a given origin server to maintain state for a period of time. Although almost all components running in a default OracleAS Portal middle-tier are stateless, session binding is required for two reasons:

For details, see "Step 7: Enable Session Binding on OracleAS Web Cache" in the Oracle Application Server Portal Configuration Guide.

5.3 OracleAS Wireless

Configuring OracleAS Wireless for high availability is documented in chapter 14, "Load Balancing and Failover", of the Oracle Application Server Wireless Administrator's Guide.

Note that if you want to run OracleAS Wireless in an OracleAS Cold Failover Cluster (Middle-Tier) topology, you need to install the Oracle home for the middle tier on the local storage of each node. OracleAS Wireless is not supported on single Oracle home installations (that is, it is not supported if you install the Oracle home for the middle tier on the shared storage).

5.4 OracleAS Reports Services

OracleAS Reports Services is the reports publishing component of Oracle Application Server. It is an enterprise reporting service for producing high quality production reports that dynamically retrieve, format, and distribute any data, in any format, anywhere. You can use OracleAS Reports Services to publish in both Web-based and non-Web-based environments.

For details on OracleAS Reports Services, see Oracle Application Server Reports Services Publishing Reports to the Web.

Contents of this section:

5.4.1 OracleAS Reports Services Architecture

OracleAS Reports Services runs as a set of processes in an Oracle Application Server middle-tier instance. These processes handle requests from clients, prepare reports, submit requests to a database, and deliver the result back to the client. The primary OracleAS Reports Services processes are:

Table 5-1 Primary Processes for OracleAS Reports Services

Process Description

Reports client

A Reports client connects to a Reports Server. The client can be a command-line client (rwclient) or Web-based (the Reports servlet).

Reports servlet

The Reports servlet directs requests to a specific Reports Server. The servlet runs under OC4J.

Reports Server


The Reports Server is responsible for interpreting the request and spawning one or more Reports Engine to fulfill the request. The Reports Server can run as a standalone process or within the OC4J process. If run within the OC4J process, it is called an "in-process Reports Server".

If run as a standalone process, it does not need to run on the Oracle Application Server middle-tier node where you installed the OracleAS Reports Services component.

Reports Engine

The Reports Engine handles individual requests. It connects to the database as required. The Reports Engine fulfills the request and informs the Reports Server upon completion.


Figure 5-1 shows the interaction between these processes.

Figure 5-1 Processes for OracleAS Reports Services

Description of Figure 5-1  follows
Description of "Figure 5-1 Processes for OracleAS Reports Services"

5.4.2 OracleAS Reports Services High Availability Features

OracleAS Reports Services has the following high availability features:

5.4.2.1 Process Management

The in-process Reports Server is managed by OPMN via "urlping-parameters". If for some reason the oc4j_bi_forms instance is restarted, the Reports Server will also be restarted and become available once the oc4j_bi_forms instance is up.

The standalone Reports Server is managed by OPMN as a component. If the Reports Server fails or is stopped unexpectedly, OPMN restarts it automatically. Upon installation, the default Reports Server will be automatically configured to be managed by OPMN. If you add new Reports Servers, you must configure them manually so that OPMN can manage them. These configuration instructions are in the documentation.

If you use the Reports Bridge, you should also configure it so that OPMN can manage it. Instructions for configuring the Reports Bridge with OPMN are provided in the documentation.

5.4.2.2 Connection Retry

If components that OracleAS Reports Services is trying to connect to are unavailable, OracleAS Reports Services has the following features:

5.4.2.2.1 OracleAS Portal Database Connection Retry

If the connection from the Reports Server to the OracleAS Portal database schema is dropped for some reason, then the Reports Server tries to reestablish the connection before generating an error. It retrieves the OracleAS Portal connection string from the OracleAS Metadata Repository and attempts to reconnect. If reconnection is successful, you do not need to restart the Reports Server.

5.4.2.2.2 Oracle Internet Directory Connection Retry

If the Oracle Internet Directory connection becomes stale for some reason, the Reports servlet and the Reports Server try to reestablish the connection before generating errors. If reconnection is successful, you do not need to restart the Reports Server.

5.4.2.2.3 OracleAS Metadata Repository and Oracle Identity Management Outage

The outage of the OracleAS Metadata Repository (which stores security metadata) will not bring down the Reports Server. If the OracleAS Metadata Repository is unavailable, the Reports Server rejects new requests due to one of the component being unavailable. When the OracleAS Metadata Repository is brought back on-line, the Reports Server recovers itself and can begin to receive and process new requests.

If Oracle Identity Management components become unavailable for some reason, the Reports Server will also reject new requests. It has similar characteristics as outage of the OracleAS Metadata Repository.

5.4.2.3 Reports Server Timeout

The Reports Server has a configurable timeout for waiting for requests to be returned from the database. This has to be set to a high enough value to allow valid reports to run but not so high as to cause excessively long waits. You can configure this in the ORACLE_HOME/reports/conf/<server_name>.conf file, in the idleTimeOut attribute of the connection element.

5.4.3 OracleAS Reports Services in Active-Active Configurations

You can run OracleAS Reports Services in an active-active configuration, as shown in Figure 5-2. In this case, you have two or more Oracle Application Server middle-tier instances, and each instance runs its own Reports servlet and Reports Server. A load balancer placed in front of Oracle HTTP Server distributes requests to the instances.

Each Reports servlet is bound to one default Reports Server. Although a specific Reports Server can be specified for an individual report request, there is no method of specifying an alternate Reports Server if the default Reports Server is not available.

If an instance fails, the load balancer detects the failure and routes all requests to the remaining active instances.

Persistent (or Sticky) Connections on the Load Balancer

Persistent (also called sticky) connections refer to the capability on the load balancer to direct requests from the same client to the same server. Persistent connections are not required for Reports Server, but you may want to use persistent connections to take advantage of Reports caching. This depends on the usage pattern of the Reports Server.

Examples where you should use persistent connections:

  • If the requests that you typically get consist of multiple HTTP requests (that is, output format is HTML or HTML/CSS, where the base document and images are individual requests), then you should configure persistent connection on your load balancer so that requests from the same client get routed to the same server. This enables the server to return the completed report.

  • If you have many requests that are asynchronous job submissions (followed by a separate request to the Reports Server for the output), then you should configure persistent connection on your load balancer so that requests from the same client get routed to the same server. This enables you to take advantage of caching.

Examples where persistent connections are optional:

  • If the requests that you typically get are for formats that represent a complete report that can be sent back to the client in a single file (for example, formats such as XML, PDF, or RTF), then you do not need persistent connections because it does not matter if consecutive report requests from the same client are routed to the same or different server.

  • If you are not caching reports for whatever reason (for example, because requests are different or because the underlying data changes too frequently), then you do not require persistent connections because there are no cached reports that you can take advantage of. The load balancer can route requests from the same client to any server.

Note that you should not confuse persistent connections on the load balancer with the Reports servlet being bound to a specific Reports Server. You should think of the Reports servlet-Reports Server as a single unit, and the load balancer directs requests to a Reports servlet-Reports Server unit.

Command-line Client, rwclient, Not Supported in Active-Active Configurations

Only Web clients are supported in active-active configurations. The command-line client, rwclient, is not supported. The reason is that rwclient connects to a specific Reports Server by name, and there can be only one named instance of a specific Reports Server. To run rwclient in a high availability environment, you can use the active-passive configuration. See Section 5.4.4, "OracleAS Reports Services in Active-Passive Configurations".

Storage Location for Source Files and Cache Directory

For Reports source files, you can store them in an NFS-mounted storage device that can be accessed by all nodes in the active-active configuration, or you can store the source files on local directories on each node.

For caching, you should use separate directories on each node. This means that if you execute a report on one node, and the next request for the same report goes to the other node, then the report will be executed again instead of being delivered from cache.

Multicast Subnet

For OracleAS Reports Services, all instances and components in an active-active configuration must run in the same subnet because the Reports servlet uses multicast to discover Reports Servers. If you need to run OracleAS Reports Services components across different subnets, then you need to use the Reports Bridge to provide access to Reports Servers on different subnets. In this case, the Reports Bridge becomes a vital component which you must secure using a high availability method such as OracleAS Cold Failover Cluster.

Figure 5-2 Running OracleAS Reports Services in an Active-Active Configuration

Description of Figure 5-2  follows
Description of "Figure 5-2 Running OracleAS Reports Services in an Active-Active Configuration"

Steps for Creating an Active-Active Configuration

To create this active-active configuration, you perform these steps:

  1. Install at least two middle-tier instances.

  2. Configure your load balancer to distribute requests to the instances.

    To verify that the Reports servlet is running, configure your load balancer to ping the following URL:

    http://your_machine_name.domain_name:your_port_number/reports/rwservlet/help
    
    

    The URL is case sensitive. If you run this URL in a browser, the Reports servlet displays a help page describing the rwservlet command line arguments.

    To verify that the Reports Server is running, configure your load balancer to ping the following URL:

    http://your_machine_name.domain_name:your_port_number/reports/rwservlet/getserverinfo?server=your_server_name
    
    

    The server=your_server_name argument is not required if you are using the default Reports Server name (rep_machine_name) or the Reports Server specified in the servlet configuration file, rwservlet.properties (ORACLE_HOME\reports\conf\). If you run this URL in a browser, you should see a listing of the job queue for the specified Reports Server.

    For more information, see section 2.5, "Verifying That the Reports Servlet and Server Are Running", in the Oracle Application Server Reports Services Publishing Reports to the Web guide.

  3. Ensure that the Reports Servers have different names.

    This is required because clients broadcast packets with the name of the Reports Server to which they want to connect. A Reports Server with the matching name responds if it exists in the network. If you have multiple Reports Servers with the same name, then clients will not be able to specify which server to connect to.

    For more information, see section 1.4.1.1, "Server Discovery Within a Subnet", in the Oracle Application Server Reports Services Publishing Reports to the Web. guide

  4. If you set up additional Reports Servers, make sure you configure OPMN to manage them. See the following guide for details.

    Item Name
    Book Oracle Application Server Reports Services Publishing Reports to the Web

    This book is available in the Oracle Application Server documentation set.

    Chapter 3, "Configuring OracleAS Reports Services"
    Section "Configuring Reports Server with the Oracle Process Manager and Notification Server and Oracle Enterprise Manager 10g"

  5. Ensure that configuration files are identical on all the middle-tier instances. If the files are different, requests may be interpreted differently on each instance. Configuration files include:

    • the key map file (by default, ORACLE_HOME/reports/conf/cgicmd.dat)

    • the Reports servlet properties file (ORACLE_HOME/reports/conf/rwservlet.properties)

  6. Set up a backup plan to back up all configuration files regularly and frequently, especially the Reports Server batch file.

5.4.4 OracleAS Reports Services in Active-Passive Configurations

You can use a provided script for installing and deploying OracleAS Reports Services in an active-passive configuration. However, note the following restrictions:

  • All components (Reports Servlet, Reports Server, and Reports Engines) must run from the same Oracle Application Server middle-tier instance.

  • Reports Bridge is not part of the solution.

5.5 OracleAS Forms Services

At runtime, OracleAS Forms Services consist of the components listed in Table 5-2.

Table 5-2 Runtime Forms Services components

Component Function

Forms Servlet

The Forms Servlet handles the initial application request and dynamically generates the start HTML file for the Forms generic Java Applet. If using OracleAS Single Sign-On, the Forms Servlet is also used to verify users' authentication.

Forms Listener Servlet

The Forms Listener Servlet is a dispatcher servlet that handles the communication between the Forms Java client in the client browser and the Forms runtime process in the middle tier server. The Forms Listener Servlet starts a Forms runtime process for each application request and user.

Forms Runtime Engine

The Forms Runtime Engine interprets the Forms application modules (fmx files) and executes the contained business logic. The Forms Runtime Engine also makes the database connection using SQLNet.


OracleAS Forms Services does not exist as a dedicated server process on the middle tier, and therefore, all that is required to request and run a Forms application on the Web is the availability of a servlet container (OC4J) that is configured to run Forms Services.

Because OracleAS Forms Services launches a dedicated Forms Runtime process for each user there is no transparent application failover. Once a user session is interrupted, the user has to restart the Forms Web application by issuing a new request to the Forms Servlet.

If a middle tier server crashes or a servlet session is interrupted, recover from either failure by restarting the application. To set up high availability for OracleAS Forms Services, the following components can be used:

mod_oc4j - Handling the failure of an OC4J instance, OracleAS Forms Services can be set up to load balance application requests between different OC4J instances. This ensures that an application request can be routed to the next available OC4J instance if the current OC4J instance fails.

OracleAS Web Cache - Using OracleAS Web Cache as a HTTP load balancer enables you to distribute Forms requests between many Oracle Application Server instances that may or may not share the same Infrastructure installation. If one instance fails, then the next Forms application request gets routed to the next available instance. Each instance can also use mod_oc4j to load balance Forms sessions between OC4J instances.

Hardware load balancers - A hardware load balancer can be deployed in front of OracleAS Web Cache, thereby adding one more layer of load balancing for Forms requests. Or, they can also replace OracleAS Web Cache and load balance requests directly to Oracle HTTP Servers.

For the OracleAS Infrastructure that is used by Forms Services installations, inclusive of Oracle Identity Management, use the OracleAS Cold Failover Cluster topology. This is described in Chapter 9, "OracleAS Infrastructure: High Availability Topologies".

For more information about Forms Services architecture and setup, refer to Oracle Application Server Forms Services Deployment Guide.

5.6 OracleAS Integration B2B

OracleAS Integration B2B uses several components from the Oracle Application Server stack during runtime. These include Oracle HTTP Server, OC4J, and OracleAS Metadata Repository. Figure 5-3 shows the OracleAS Integration B2B high availability configuration.

Figure 5-3 High Availability Configuration of OracleAS Integration B2B

Description of Figure 5-3  follows
Description of "Figure 5-3 High Availability Configuration of OracleAS Integration B2B"

For OracleAS Integration B2B services to be highly available, the following components must be highly available:

For discussion purposes, the runtime architecture can be segmented into the following tiers:

If each of these tiers has active-active availability, then OracleAS Integration B2B has active-active availability. Otherwise, if one of the tiers is active-passive, then OracleAS Integration B2B service is active-passive. For example, if the OracleAS Infrastructure tier uses the OracleAS Cold Failover Cluster (Infrastructure) configuration, then OracleAS Integration B2B service has active-passive availability.

Web Server and OC4J Tier

This tier consists of Oracle HTTP Server and the OC4J transport servlet instances. The servlets are deployed in OC4J containers and can utilize the high availability properties of the containers. They can be grouped together into OracleAS Clusters (OC4J) and be synchronized by DCM for consistent configuration. The OC4J instances are load balanced by mod_oc4j.

For active-active availability, the web server and OC4J tier is front-ended by a load balancer router appliance and/or OracleAS Web Cache. If OracleAS Web Cache is used, it should be configured into an OracleAS Cluster (Web Cache). Monitoring and automatic restart of OracleAS Web Cache, Oracle HTTP Server, and OC4J processes are performed by OPMN.

The transport servlets perform the tasks of forwarding requests to and receiving responses from the OracleAS Integration B2B instances. The servlets do not maintain state for each request handled. They communicate with the OracleAS Integration B2B instances through Java RMI. Each instance of OracleAS Integration B2B is registered in the web.xml file of each of the OC4J containers hosting the transport servlets. The servlets forward requests to the OracleAS Integration B2B instances using the round-robin model. If any of the OracleAS Integration B2B instances fail, the servlets re-route requests to the next instance in the round-robin queue after a specified timeout period.

OracleAS Integration B2B Tier

The OracleAS Integration B2B tier consists of the OracleAS Integration B2B server runtime. This is a Java application, but its instances do not run in OC4J containers. They run in their own standalone JVM processes.

The OracleAS Integration B2B server has the following characteristics:

To ensure that the server has active-active availability, multiple instances (on different nodes) of its runtime should be instantiated. Ideally, these instances should be deployed in more than one node to protect from node failure. For each instance, OPMN ensures that failure detection and automatic restart of each instance is managed.

Inbound communication to the OracleAS Integration B2B instances is received by the load balancer fronting the Oracle HTTP Servers. The load balancer distributes requests to the Oracle HTTP Server instances, which forwards the requests to the transport servlets via mod_oc4j load balancing. The transport servlets communicate the requests to the OracleAS Integration B2B instances using the RMI protocol.Outbound communication from the OracleAS Integration B2B instances occurs as follows. The instances send responses to the Oracle HTTP Servers, which are configured as proxy servers. This configuration can be accomplished by specifying the proxy host and port properties in the tip.properties file.

OracleAS Infrastructure Tier

High availability in the OracleAS Infrastructure tier can be enabled by any of the high availability configurations for the OracleAS Infrastructure explained in Chapter 9, "OracleAS Infrastructure: High Availability Topologies". These configurations ensure that the OracleAS Metadata Repository and Oracle Identity Management components are highly available for the web server and OC4J, and OracleAS Integration B2B tiers. For active-active availability, one of the configurations described in Section 6.2.1, "Active-Active High Availability Topologies", should be used. This allows the entire OracleAS Integration B2B service stack to have active-active availability.

5.7 OracleAS Integration InterConnect

OracleAS Integration InterConnect has a hub and spoke architecture. Figure 5-4 shows OracleAS Integration InterConnect components with two spoke applications as an example.

Figure 5-4 OracleAS Integration InterConnect runtime components with two spoke application as an example

Description of Figure 5-4  follows
Description of "Figure 5-4 OracleAS Integration InterConnect runtime components with two spoke application as an example"

The OracleAS Integration InterConnect components are:

For OracleAS Integration InterConnect to be highly available, all its components must be highly available. One additional requirement is for the data or message sources that provide information to the adapters to be highly available. These are the spoke applications. Because these applications are customer-dependent and not part of the Oracle Application Server product, their high availability discussion is outside the scope of this book.

For the purpose of high availability discussion, the OracleAS Integration InterConnect components can be segmented into the following tiers:

The following sections provide details on how high availability can be achieved for each tier.


See Also:

OracleAS Integration InterConnect documentation for detailed information about OracleAS Integration InterConnect components

Adapter Tier

Except for the HTTP adapter, each adapter runs in a standalone JVM process (not OC4J) and is stateless. This JVM process can be configured as a custom OPMN application to achieve process failure detection and automatic restart. The custom application can be configured in the opmn.xml file. Refer to the Oracle Process Manager and Notification Server Administrator's Guide for instructions on how to do this. After the configuration, the adapter processes should be started using OPMN (opmnctl command).

OPMN only monitors and restarts individual processes. In order for the adapter tier to be fully redundant, multiple adapter processes are required. The adapters can be set up using an active-active or active-passive approach:

If the hub database is a Real Application Clusters database, the adapters are enabled to work with the multiple database instances in the Real Application Clusters. Real Application Clusters technology provides consistent and uninterrupted service without having to restart the adapters if a database instance fails. The adapters connect to the first of the listed available nodes in the adapter.ini or hub.ini files. If one of the Real Application Clusters nodes fails, the database connection is established with the next available node in the adapter.ini or hub.ini file recursively until a successful connection. Failover is transparent to the spoke application. Refer to the "Hub Database Tier" section below for more information on how the adapter process can be made aware of Real Application Clusters hub database instances.


See Also:

OracleAS Integration InterConnect adapters installation documentation for details on adapter.ini and hub.ini files associated with specific adapters

High availability specific to each adapter type can be achieved as follows:

Repository Server Tier

This tier consists of the Repository Server instance. Only a single instance can be actively running at any one time. Hence, the Repository Server can be deployed in a two-node cold failover cluster configuration with the nodes using shared storage. This configuration provides for node-level failover.

For Repository Server process high availability, the process can be configured as a custom application for OPMN in the opmn.xml file. This allows OPMN to monitor and automatically restart the Repository Server process if it fails. After the modification, the Repository Server process should be started using OPMN (opmnctl command).

The repository server is only used at run time for the Xref feature. Otherwise, it is only needed during design time and deployment time, when adapters are first started and fetch application metadata from the hub database.

Hub Database Tier

The hub database can be any database, including the OracleAS Metadata Repository database. It stores OracleAS Integration InterConnect metadata such as application view and common view formats. iStudio accesses the hub database at design time through RMI via the Repository Server, which is a JVM process. The Repository Server can communicate with multiple hub database instances as multiple JDBC data sources. Internally, the Repository Server iteratively retries each data source with timeouts.

The OracleAS Integration InterConnect hub database can be made highly available by using Real Application Clusters. The following are some guidelines:


See Also:

OracleAS Integration InterConnect adapters installation documentation for details on adapter.ini and hub.ini files associated with specific adapters.

5.8 Oracle BPEL Process Manager

BPEL (Business Process Execution Language) is an XML-based language that enables you to assemble discrete services into an end-to-end process flow. Oracle BPEL Process Manager provides a framework for designing, deploying, and managing BPEL business processes.

Oracle BPEL Process Manager is a J2EE application that you can run on different application servers. It is a stateless application, but it uses a database as its "dehydration store" to store process state information.

5.8.1 Oracle BPEL Process Manager in an Active-Active Configuration

The Oracle BPEL Process Manager architecture is also stateless, which makes it simple to make highly available. Figure 5-6 shows Oracle BPEL Process Manager in an active-active configuration, with a Real Application Clusters database as the dehydration store.

Figure 5-6 Oracle BPEL Process Manager in an Active-Active Configuration

Description of Figure 5-6  follows
Description of "Figure 5-6 Oracle BPEL Process Manager in an Active-Active Configuration"

In an active-active configuration, all the components run at the same time. The load balancer distributes requests to the appropriate node. If the node is unavailable, it sends the request to the next available node.

To run Oracle BPEL Process Manager in an active-active configuration, you perform these steps:

  • Install Oracle BPEL Process Manager on multiple Oracle Application Server middle-tier instances (or on multiple standalone OC4J, WebLogic, JBoss, or WebSphere instances).

  • Place a load balancer in front of these Oracle Application Server instances. This can be a software load balancer such as OracleAS Web Cache, but for production purposes, a hardware load balancer such as f5 BIG-IP is recommended.

  • Configure all the BPEL servers to use the same database as their dehydration store.

  • Configure all the BPEL engines to use the load balancer as the server URL and callback address for the generated SOAP URLs. Specifically, use the Oracle BPEL Process Manager Administration Console to set the soapServerUrl and soapCallbackUrl properties to be the URL of the load balancer.

  • Change any JNDI lookups (for example, to retrieve services) to use a list of JNDI providers returned by OPMN. For example, instead of specifying JNDI providers like this:

    jndiProviderURL = "ormi://localhost/CustomerService"
    
    

    you should use this:

    jndiProviderURL = "opmn:ormi://host1:port1:oc4j/app,
     opmn:ormi://host2:port2:oc4j/app"
    
    

    This enables high availability at the JVM level. If you are running multiple JVM processes for a single OC4J instance, OPMN can route requests to independent JNDI objects based on the number of JVMs available.

To deploy BPEL processes on an active-active configuration:

  • In your design environment (for example, Oracle JDeveloper), compile and deploy your BPEL process on each node. You can also do this manually or through a script. See the Oracle BPEL Process Manager Developer's Guide for details.

  • Ensure that all the servers in the cluster have the same domains (as above, this can also be done manually or through a script).

Invoking BPEL Processes in an Active-Active Topology

This section describes the changes needed if you invoke BPEL processes through SOAP/WSDL or through the Oracle BPEL Process Manager Java API.

If you use SOAP/WSDL, then ensure that you use the load balancer virtual server name, instead of the hostnames of the nodes.

If you use the Oracle BPEL Process Manager Java API, then you list each hostname of the nodes in the active-active topology. See the jndiProviderURL example above.

Using a Real Application Clusters Database for the Dehydration Store

To complete the high availability picture, you should run the dehydration store on a highly available database, such as a Real Application Clusters database. With a Real Application Clusters database, then all the components are highly available.

If you are using a Real Application Clusters database for the dehydration store, you need to make the following changes to your configuration:

  • Modify the OC4J data-sources.xml file so that the connect information to the Real Application Clusters database has the following format:

    jdbc:oracle:thin:@(DESCRIPTION=
       (ADDRESS_LIST=(LOAD_BALANCE=on)
          (ADDRESS=(PROTOCOL=tcp)(HOST=hostname1)(PORT=1521))
          (ADDRESS=(PROTOCOL=tcp)(HOST=hostname2)(PORT=1521))
       )
       (CONNECT_DATA=(SERVICE_NAME=orcl))
    )
    
    

    hostname1 and hostname2 specify the names of the nodes running the Real Application Clusters database.

    orcl specifies the service name of the database.

    Note that both the address and the load balancer options are within the ADDRESS_LIST element.

5.8.2 Oracle BPEL Process Manager in an Active-Passive Configuration

Oracle BPEL Process Manager should work in an OracleAS Cold Failover Cluster, or active-passive, configuration. An active-passive configuration consists of two nodes in a hardware cluster, a shared storage, and a virtual hostname and IP. You install the files on the shared storage so that either node in the hardware cluster can access them. Clients use the virtual hostname to access the active in the hardware cluster. If the active node becomes unavailable, a failover event occurs, and the passive node takes over and runs the processes.

5.8.3 Oracle BPEL Process Manager with Adapters

You can use Oracle BPEL Process Manager with Oracle Application Server adapters to integrate your Oracle BPEL Process Manager processes with external resources. These adapters are based on J2EE Connector Architecture (JCA).

This section describes how to run Oracle BPEL Process Manager with adapters in a highly available manner. This section contains the following subsections:

5.8.3.1 Overview of JCA-Based Adapters

Oracle Application Server JCA-based adapters integrate Oracle Application Server with various external resources, as shown in Table 5-3:

Table 5-3 Types of Adapters

Adapter Type Examples

Technology

Technology adapters integrate Oracle Application Server with transport protocols, data stores, and messaging middleware.

Examples of technology adapters include: FTP, Files, Database, JMS, and Advanced Queuing.

Packaged application

Packaged application adapters integrate Oracle Application Server with applications such as Siebel and SAP.

Legacy and mainframe

Legacy and mainframe adapters integrate Oracle Application Server with applications such as CICS and VSAM.


For detailed information on adapters, see Oracle Application Server Adapter Concepts.

5.8.3.2 Concurrency Support

Concurrency support means that multiple adapter services can access the same resource at the same time without causing any data corruption. You can think of concurrency support as transactional support. For example, multiple adapter services for the database adapter can access the same table in the database at the same time.

Adapters can be divided into those that support concurrency and those that do not:

  • Adapters that do not support concurrency include the file and FTP adapters. This is because the external resource, which is the file system, does not support concurrent access.

  • All other adapters support concurrency.

The concurrency/no-concurrency support affects high availability options for the adapters, as shown in Table 5-4.

Note that for all high availability options, it is assumed that you have installed the adapters on all nodes. However, in some of the high availability options, you run Oracle BPEL Process Manager on only one node.

5.8.3.3 Active-Active Topology for Adapters

This topology can be used only for adapters that support concurrency.

Figure 5-6 shows this active-active topology. In this topology, you have one or more nodes fronted by a load balancer. On each node, you deploy and run Oracle BPEL Process Manager and business processes. This is the desired model from a high availability point of view, because you have all the components available on all nodes.

If you deploy an adapter that does not support concurrency on an active-active topology, then you risk corrupting the data on the external data source (for example, reading and writing the same file at the same time).

5.8.3.4 Modified Active-Active Topology for Adapters

This modified version of an active-active topology is similar to the full active-active topology except for these differences:

  • You still deploy and run Oracle BPEL Process Manager and business processes on all nodes, but on all nodes except the first node, you disable the Activation Agent for partner links that use adapters that do not support concurrency.

    Only the adapter service on the first node gets "receive" requests.

This topology can be used for these adapters:

  • adapters that do not support concurrency

  • adapters that support concurrency. Although you can run this type of adapter in a full active-active topology, you choose not to do so because you want to coordinate resources (such as managing and ensuring the proper sequence of messages), and the only way of doing this is to have only one adapter service running at any given time.

Figure 5-7 shows this modified active-active topology.

Figure 5-7 Modified Active-Active Topology

Description of Figure 5-7  follows
Description of "Figure 5-7 Modified Active-Active Topology"

If the node with the Activation Agent fails, then you have to perform these steps:

  • Disable the Activation Agent on the failed node, so that when the node becomes active again, it will not run the Activation Agent (because another node is already running the Activation Agent).

  • Enable the Activation Agent on another node.

To Disable an Activation Agent

To disable an Activation Agent, you comment out its activationAgent element in the bpel.xml file. In the following example, the comment lines surround the activation agent that you want to disable.

<activationAgents>
   <!-- start comment
   <activationAgent
                className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent"
                partnerLink="InboundPL">
      <property name="InputFileDir">C:/ora_home/integration/bpm/samples/tutorials/
                             121.FileAdapter/ComplexStructure/InputDir/</property>
      <property name="portType">Read_ptt</property>
   </activationAgent>
   end comment -->
</activationAgents>

5.8.3.5 Active-Passive Topology for Adapters

This topology can be used for all adapters. The active-passive topology is also called OracleAS Cold Failover Cluster topology.

In an active-passive topology (Figure 5-8), you have two nodes in a hardware cluster. One of the nodes is the active node, and the other node is the passive node. There is also a shared storage; you install the Oracle home directories on this shared storage. The shared storage is mounted only on the active node.

The active node in the hardware cluster is associated with a virtual hostname and IP. Clients use the virtual hostname to access the active node in the cluster.

During runtime, the active node runs the processes. The virtual hostname points to the active node. If the active node becomes unavailable, then a failover event occurs. The passive node becomes the new active node and runs the processes.

You install and manage Oracle BPEL Process Manager as you would for a single-node deployment, except for these differences:

  • You install the Oracle home directories on the shared storage.

  • Clients access the active node using the virtual hostname. They do not need to know which node is actually running Oracle BPEL Process Manager.

Figure 5-8 Oracle BPEL Process Manager with Adapters in OracleAS Cold Failover Cluster Topology

Description of Figure 5-8  follows
Description of "Figure 5-8 Oracle BPEL Process Manager with Adapters in OracleAS Cold Failover Cluster Topology"

5.9 OracleBI Discoverer

Web connections to OracleBI Discoverer Server are managed through the Discoverer servlet. The servlet is responsible for brokering between the client and a Discoverer session component that then manages the actual transactions. Discoverer session components are initiated and managed by the OAD (Object Activation Daemon). Each machine has an OAD that manages its own Discoverer sessions. The OAD and session component are both monitored and managed by OPMN.

OracleBI Discoverer can be configured for high availability in the following ways:


See Also:

The chapter on installing in a multi machine environment in the Oracle Business Intelligence Discoverer Configuration Guide for multi machine considerations and pre-requisites for providing load balancing for OracleBI Discoverer

5.9.1 OracleBI Discoverer Preferences Server

The OracleBI Discoverer Preference Server stores individual user preferences across sessions. It is managed, like the session server, by the OAD. In a multiple machine environment, distributed session servers can be configured to access one centrally located OracleBI Discoverer Preferences Server. The latter is monitored and managed by OPMN.

The OracleBI Discoverer Preferences Server can be made highly available by deploying multiple instances that are fronted and serviced by a load balancer router and/or OracleAS Web Cache. Several considerations should be noted for managing session information for this scenario.

When deploying multiple OracleBI Discoverer middle-tiers behind a load balancer, you have two options for configuring the OracleBI Discoverer Preferences Server such that user preferences are consistent across a session:

  • Enable session binding either in the load balancer router or in the OracleAS Web Cache tier. This ensures that a particular user will always be directed to the machine where their local preferences are stored. For details on configuring session binding for your load balancer router, refer to instructions from your particular load balancer hardware vendor. For configuring OracleAS Web Cache session binding, see the Oracle Application Server Web Cache Administrator's Guide.

  • Configure all the OracleBI Discoverer Servers to share a single preference server. This ensures that all user preferences are centralized, although, all preference information is now dependent on the availability of one machine.


Note:

For instructions on how to configure a centralized OracleBI Discoverer Preferences Server, see the chapter on installing in a multiple machine environment in the Oracle Business Intelligence Discoverer Configuration Guide.

Protecting the OracleBI Discoverer Preferences Server

Loss of either the machine which hosts the OracleBI Discoverer Preference Server or the information stored on that server does not impact availability of OracleBI Discoverer. However, it means that users lose their stored preferences information.To limit the loss of preferences information, the data on the OracleBI Discoverer Preferences Server should be backed up regularly, in particular, the file <ORACLE_HOME>/discoverer/util/pref.txt. This file holds the preferences information.

5.10 Oracle Content Management SDK

In both active-active and active-passive environments, you need to ensure that the domain controller is running on an active node. If the node on which the domain controller is running becomes unavailable, you have to migrate the domain controller to another node. This is because the domain controller can run only on one node at any given time.

If you installed the Oracle Content Management SDK in an OracleAS Cold Failover Cluster (Middle-Tier), and a failover or failback event occurs, you need to migrate the domain controller to the new active node.

In an active-active environment, if the node on which the domain controller is running becomes unavailable, then you have to migrate it to another node.

For details on how to migrate the domain controller, see the section "Migrating the Domain Controller" in chapter 3, "Managing the Oracle CM SDK Domain", of the Oracle Content Management SDK Administrator's Guide. You can find this guide on the "Oracle Content Management SDK" CD-ROM.