Oracle® Application Server Enterprise Deployment Guide 10g Release 3 (10.1.3.3.0) Part Number E10294-02 |
|
|
View PDF |
This chapter provides complete instructions for installing the web and application tiers for the mySOACompany configuration depicted in (Figure 1-1).
The Application Tier (APPHOST1 and APPHOST2) consists of multiple computers hosting middle tier Oracle Application Server instances. Each Oracle home contains multiple Oracle Containers for J2EE (OC4J) instances on which you deploy applications. In the complete configuration, requests are balanced among the OC4J instances on the application tier computers to ensure a performant and fault tolerant application environment.The Web Tier (WEBHOST1 and WEBHOST2) consists of Oracle HTTP Servers.
Table 3-1 Naming convention for the MySOACompany topology
Name | Description |
---|---|
Hosts for the web server nodes. |
|
Hosts for the application server nodes |
|
Oracle home on APPHOST1 and APPHOST2 for the following OC4J instances: OC4J_SOA, OC4J_ESBDT, OC4J_WSM, and Admin. |
|
Oracle home on APPHOST1/2 for the OC4J_GTWY instances. |
The complete installation and configuration process for the Web and Application tiers is detailed in this section.
Use the 10g Release 3 (10.1.3.1.0) Oracle Universal Installer to install the Web tier Oracle HTTP Servers, specifying the same OPMN cluster:
Install an Oracle HTTP Server on WEBHOST1
Install an Oracle HTTP Server on WEBHOST2
Use the 10g Release 3 (10.1.3.1.0) Oracle Universal Installer to install the Application Server tier (ORA_HOME1):
Install an Oracle Application Server instance on APPHOST1 (ORA_HOME1, naming the default OC4J instance ADMIN)
Install an Oracle Application Server instance on APPHOST2 (ORA_HOME1, naming the default OC4J instance ADMIN)
Disable the ADMIN OC4J instance on APPHOST2 (ORA_HOME1)
Use the 10g Release 3 (10.1.3.1.0) Oracle Universal Installer to install the Application Server tier (ORA_HOME2):
Install an Oracle Application Server instance on APPHOST1 (ORA_HOME2, naming the default OC4J instance OC4J_GTWY)
Install an Oracle Application Server instance on APPHOST2 (ORA_HOME2, naming the default OC4J instance OC4J_GTWY)
Using Oracle Enterprise Manager 10g Grid Control Console, create these OC4J groups and OC4J instances, ensuring that the instances are part of the same OPMN cluster:
On APPHOST1 in the application server instance in ORA_HOME1:
SOA_GROUP (for the OC4J_SOA instances)
ESBDT_GROUP (for the OC4J_ESBDT instances)
WSM_GROUP (for the OC4J_WSM instances)
OC4J_SOA
OC4J_ESBDT
OC4J_WSM
On APPHOST2 in the application server instance in ORA_HOME1:
OC4J_SOA
OC4J_ESBDT
OC4J_WSM
Leave the default ADMIN OC4J instance in the application server instance of ORA_HOME1 in the default group
Leave the default OC4J_GTWY OC4J instance in the application server instance of ORA_HOME2 in the default group
Cluster the Oracle HTTP Server and Oracle Application Server instances
If multicast is a problem, configure static discovery of the cluster
Create a gateway for instance discovery, if the instances are not on the same subnet.
Validate and discover the cluster status with the opmnctl status @cluster
command
Configure the Web server for the load balancer
Add these virtual hosts to the Oracle HTTP Servers on WEBHOST1 and WEBHOST2: soa.mycompany.com and soainternal.mycompany.com:7777
Configure the load balancer for soa.mycompany.com and soainternal.mycompany.com:7777
Filter out external access for soa.mycompany.com/em/*
Filter out external access for soa.mycompnay.com/esb/*
NAT internal traffic for soainternal.mycompany.com:7777
Use the standalone installer, available on the Companion CD, to install Oracle BPEL Process Manager
On APPHOST1 in the application server instance in ORA_HOME1, install Oracle BPEL Process Manager in the OC4J_SOA instance
On APPHOST2 in the application server instance in ORA_HOME1, install Oracle BPEL Process Manager in the OC4J_SOA instance
Perform post-installation configuration steps
Use the standalone installer, available on the Companion CD, to install Oracle Enterprise Service Bus run time instance
On APPHOST1 in the application server instance in ORA_HOME1, install an Oracle Enterprise Service Bus run time instance in the OC4J_SOA instance
On APPHOST2 in the application server instance in ORA_HOME1, install an Oracle Enterprise Service Bus run time instance in the OC4J_SOA instance
Perform post-installation configuration steps
Use the standalone installer, available on the Companion CD, to install Oracle Web Services Manager.
On APPHOST1 in the application server instance in ORA_HOME1, install Oracle WSM in the OC4J_WSM instance
On APPHOST2 in the application server instance in ORA_HOME1, install Oracle WSM in the OC4J_WSM instance
Perform post-installation configuration steps, including undeploying applications as appropriate.
On APPHOST1 in the application server instance in ORA_HOME2, install Oracle WSM in the OC4J_GTWY instance
On APPHOST2 in the application server instance in ORA_HOME2, install OWSM to OC4J_GTWY instance
Perform post-installation configuration steps, including undeploying applications as appropriate
Install the 10.1.3.3 patch set into all of the Oracle Homes.
Oracle Enterprise Service Bus repository instance deployment:
Using the procedure for 10.1.3.3, deploy the Oracle Enterprise Service Bus design time to the repository instance on APPHOST1.
Using the procedure for 10.1.3.3, deploy the Oracle Enterprise Service Bus design time to the repository instance on APPHOST2.
Perform post-installation configuration steps.
Install and configure adapters as necessary.
Perform the remaining configuration for the Identity Management tier.
Use the Advanced option of the Oracle Universal Installer to install the Oracle HTTP Server instances.
Ensure that the system, patch, kernel and other requirements are met as specified in the Oracle Application Server Installation Guide for the platform you are using. You can find this guide in the Oracle Application Server platform documentation library for the platform and version you are using.
Copy the staticports.ini
file from the Disk1/stage/Response
directory to a local directory, such as TMP. You will provide the path to this file during installation.
Edit the staticport.ini
file to assign the following custom port:
Oracle HTTP Server port = 7777
Note:
Ensure that this port is not already in use by any other service on the computer. Using the Static Ports feature to install the Application Server Tier ensures that the port assignments will be consistent, if the ports are correctly specified in the file and the port is not already in use. If a port is incorrectly specified, the Oracle Universal Installer will assign the default port. If a port is already in use, the Oracle Universal Installer will select the next available port.Start the Oracle Universal Installer as follows:
On UNIX, issue this command: runInstaller
On Windows, double-click setup.exe
The Oracle Application Server 10.1.3.1.0 Installation screen appears.
Specify an installation directory for the instance.
Select Advanced Installation Mode.
Click Install.
The Select Installation Type screen appears.
Select Web Server and click Next.
The Specify Port Configuration Options screen appears.
Select Manual, specify the location of the staticports.ini
file, and click Next.
The Specify Instance Name screen appears.
Specify the instance name and click Next.
The Cluster Topology Configuration screen appears.
Check the box to configure the instance to be part of an Oracle Application Server cluster.
Specify the multicast address and port.
Note:
An example of a multicast address is225.0.0.20
, with port 8001
. The address and port should be the same for each computer in a farm. This multicast address used should not be in use by any application or Oracle AS Instance on the network that is not a part of the farm.Click Next.
The Summary Screen appears.
Click Install.
The Configuration Assistants screen appears. When the configuration process completes, the End of Installation screen appears.
Click Exit, and then confirm your choice to exit.
Verify that the installation was successful by viewing the Oracle HTTP Server instances. Start a browser and access:
http://WEBHOST1.mycompany.com:7777
and
http://WEBHOST2.mycompany.com:7777
Note:
TheORACLE_HOME/install/readme.txt
file contains the URLs for the installation and a command to verify the status of processes.If you installed the Oracle HTTP Server based on Apache 2.0 from the Companion CD on WEBHOST1 and WEBHOST2, the instance name on both computers will be the default name assigned by the installer. In a cluster, you will want the instance names to be unique when you view the instances with the opmnctl @cluster status
command. Follow these steps to rename an instance:
Stop the instance by issuing this command:
opmnctl stopall
Modify the ORACLE_HOME/opmn/conf/opmn.xml
file to change the instance id and name:
<ias-instance id="AS-1 name="AS-1">
Replace both occurrences of the existing instance name (AS-1 in the example) with a unique instance name.
Save and close the file.
Restart the instance by issuing this command:
opmnctl startall
Install an Oracle Application Server instance consisting only of one OC4J instance, using the Advanced installation option of the Oracle Universal Installer. Follow these steps to install application servers to create ORA_HOME1 on APPHOST1 and APPHOST2.
Ensure that the system, patch, kernel and other requirements are met as specified in the Oracle Application Server Installation Guide. You can find this guide in the Oracle Application Server platform documentation library for the platform and version you are using.
Start the Oracle Universal Installer using one of these commands:
On UNIX, issue this command: runInstaller
On Windows, double-click setup.exe
The Oracle Application Server 10.1.3.1.0 Installation screen appears with the Basic Installation Mode and the Integrated Web Server, J2EE Web Server and Process Management installation type selected.
Specify an installation directory for the instance, or leave the default.
Select Advanced Install and click Next.
A confirmation dialog appears.
Click Yes.
A progress dialog appears, then the Select Installation Type screen appears.
Select J2EE Server and click Next.
The Specify Port Configuration Options screen appears.
Select Automatic and click Next.
The Administration Settings screen appears.
Specify an instance name for the application server instance.
Note:
The instance name you specify will be prepended to the host name. For example, if you specifyJ2EE
as the instance name and the host name is server1.mycompany.com
, the instance name will be J2EE.server1.mycompany.com
.Specify and confirm the administrator password for the default OC4J instance.
Specify a name for the default OC4J instance created by the installer (the default is home), such as Admin
, or a similar name that designates it as the instance dedicated to Application Server Control.
Note:
You will not deploy applications to the Admin OC4J instance; it will not be clustered with the user-created OC4J instances on which applications are deployed.Check the box to designate the instance installed as an administration OC4J instance (the instance on which the Application Server Control Console will operate).
Click Next.
The Cluster Topology Configuration screen appears.
Specify the multicast address and port.
This step configures the multiple instances in the same Oracle Notification Service (ONS) topology. Availability notifications are shared among the participants in the topology, enabling dynamic routing from Oracle HTTP Server to OC4J and dynamic discovery of instances, as well as creation of OC4J groups. This multicast address has purposes different from the multicast address provided in Section 3.12, "Configuring the Cluster of BPEL Instances on APPHOST1 and APPHOST2."
Note:
An example of a multicast address is225.0.0.20
, with port 8001
. The address and port should be the same for each computer in a farm. The multicast address specified must not be in use by any application or Oracle Application Server instance on the network that is not a part of the farm.Select the checkbox for the option Access this OC4J instance from a separate Oracle HTTP Server.
Click Next.
The Summary screen appears.
Click Install.
The Preparing to Install dialog appears, then the Install screen appears.
The Configuration Assistants screen appears. When the configuration process completes, the End of Installation screen appears.
Click Exit, and then confirm your choice to exit.
The first Oracle home, labeled ORA-HOME1 in the diagrams in Chapter 1, now exists on APPHOST1 and APPHOST2, with the Admin OC4J instance created.
Verify that the installation was successful by viewing the instance in Oracle Enterprise Manager 10g. Start a browser, log in to the Application Server Control Console, and view the application server instances at:
http://WEBHOST1.mycompany.com:7777/em
and
http://WEBHOST2.mycompany.com:7777/em
Notes:
On Windows, you can use the Start menu to select the instance, and then select the Oracle Application Server Control option.The ORACLE_HOME/install/readme.txt
file contains the URLs for the installation and a command to verify the status of processes.
By default, all components in the application tier are started in one JVM. You can increase the number of JVMs for the OC4J_SOA instance (Oracle BPEL Process Manager and Oracle Enterprise Service Bus). See the chapter titled "Reconfiguring Application Server Instances" in the Oracle Application Server Administrator's Guide in the 10g Release 3 (10.1.3.1) documentation library.
Application Server Control Console stores certain local state information that does not get replicated to another active Application Server Control Console. This includes things such as JMX Notification Subscriptions and Received Notifications. If you use JMX notifications, you may wish to disable Application Server Control Consoles other than that on APPHOST1, so that Oracle HTTP Server does not route requests to them. This will ensure that notifications subscriptions are not changed or deleted on the instance receiving requests (causing the two instances to be out of synchronization). You can disable routing to Application Server Control Consoles by setting the ohs-routing
tag in the default-web-site.xml
file for the Application Server Control Console to false
as shown:
<web-app application="ascontrol" load-on-startup="true" name="ascontrol" ohs-routing="false" root="/em"/>
You can set ohs-routing
to true
if you need to use the secondary Application Server Control Consoles for failover. You will need to use some backup and recovery procedure in order to restore the state of notification subscriptions and received notifications from the primary Application Server Control Consoles to the secondary.
If you have multiple Application Server Control Consoles active, be aware of the following:
If you change the administrator password on the managed OC4J instances, you will have to make the same change to the stored administrator password on all Application Server Control Console instances. When Oracle HTTP Server directs requests to an Application Server Control Console that does not have the correct password, attempts to connect to the managed instance will fail and Application Server Control Console will prompt for the new administrator password.
On login, Application Server Control Console displays a warning on the Cluster Topology page that there are multiple instances running.
Use the netstat command to identify occupied ports:
netstat -an
The port numbers within the AJP port range (12501-12600) that do not appear in the output of the netstat command are the port numbers that you can assign to OC4J instances.
Install an Oracle Application Server instance consisting only of one OC4J instance, using the Advanced installation option of the Oracle Universal Installer. Follow these steps to install application servers to create ORA-HOME2 on APPHOST1 and APPHOST2.
Ensure that the system, patch, kernel and other requirements are met as specified in the Oracle Application Server Installation Guide. You can find this guide in the Oracle Application Server platform documentation library for the platform and version you are using.
Start the Oracle Universal Installer using one of these commands:
On UNIX, issue this command: runInstaller
On Windows, double-click setup.exe
The Oracle Application Server 10.1.3.1.0 Installation screen appears with the Basic Installation Mode and the Integrated Web Server, J2EE Web Server and Process Management installation type selected.
Specify an installation directory for the instance, or leave the default.
Select Advanced Install and click Next.
A confirmation dialog appears.
Click Yes.
A progress dialog appears, then the Select Installation Type screen appears.
Select J2EE Server and click Next.
The Specify Port Configuration Options screen appears.
Select Automatic and click Next.
The Administration Settings screen appears.
Specify an instance name for the application server instance.
Note:
The instance name you specify will be prepended to the host name. For example, if you specifyJ2EE
as the instance name and the host name is server1.mycompany.com
, the instance name will be J2EE.server1.mycompany.com
.Specify and confirm the administrator password for the default OC4J instance.
Specify a name for the default OC4J instance created by the installer (the default is home), such as OC4J_GTWY
, or a similar name that designates it as the instance dedicated to the gateway.
Do not check the box to designate the instance installed as an administration OC4J instance (the instance on which the Application Server Control Console will operate).
Click Next.
The Cluster Topology Configuration screen appears.
Specify the multicast address and port.
Note:
An example of a multicast address is225.0.0.20
, with port 8001
. The address and port should be the same for each computer in a farm. The multicast address specified must not be in use by any application or Oracle Application Server instance on the network that is not a part of the farm.Select the checkbox for the option Access this OC4J instance from a separate Oracle HTTP Server.
Click Next.
The Summary screen appears.
Click Install.
The Preparing to Install dialog appears, then the Install screen appears.
The Configuration Assistants screen appears. When the configuration process completes, the End of Installation screen appears.
Click Exit, and then confirm your choice to exit.
The second Oracle home, labeled ORA-HOME2 in the diagrams in Chapter 1, now exists on APPHOST1 and APPHOST2, with the OC4J_GTWY instance created.
Verify that the installation was successful by viewing the instance in Oracle Enterprise Manager 10g. Start a browser, log in to the Application Server Control Console, and view the application server instance at:
http://WEBHOST1.mycompany.com:7777/em
Notes:
On Windows, you can use the Start menu to select the instance, and then select the Oracle Application Server Control option.The ORACLE_HOME/install/readme.txt file contains the URLs for the installation and a command to verify the status of processes.
You must create the OC4J instances and groups shown in the diagrams in Chapter 1. OC4J groups synchronize configuration of the OC4J instances in the group. For example, the SOA_GROUP created in this procedure ensures that configuration related to data sources, JMS, etc. will be synchronized across the multiple OC4J containers that are part of the group. Deployment of Oracle BPEL Process Manager is done on a per instance basis, as described in Section 3.11. BPEL processes, in turn, are deployed to the dehydration store. Since Oracle BPEL Process Manager instances in a BPEL cluster share the same dehydration store, a BPEL process need only be deployed once.
Instances:
OC4J_SOA
OC4J_ESBDT
OC4J_WSM
Groups:
SOA_GROUP
ESBDT_GROUP
WSM_GROUP
Log in to the Application Server Control Console with the password set during installation.
The Cluster Topology page appears.
Click the link for the application server instance (APPHOST1 or APPHOST2 in the Members list). You will create the instances in ORA-HOME1 only.
The Application Server page for the instance appears, with the Admin
OC4J instance in the System Components list.
Click Create OC4J Instance.
The Create OC4J Instance page appears.
Enter OC4J_SOA
in the OC4J Instance Name field.
Select Add to a new group with name, enter SOA_GROUP
in the New Group Name field, and check the box to start the instance.
Click Create.
The Processing: screen appears with a message, then the Application Server page appears with the new instance and a confirmation message that the instance was created and added to the group.
Click the OC4J_SOA instance.
The OC4J page appears.
Click Administration.
The Administration Tasks table appears.
Click the Go to Task icon for Server Properties in the Properties list.
The Server Properties page appears.
Specify an unused AJP port (see Section 3.5, "Listing Occupied Ports") for the default-web-site and click Apply.
The Processing screen appears with a status message, then a confirmation message appears.
Repeat steps 1 through 9 for the OC4J_ESBDT and OC4J_WSM instances, using ESBDT_GROUP and WSM_GROUP as the respective group names. Assign a different unique port within the AJP port range to each instance.
Issue these commands in ORACLE_HOME/opmn/bin:
opmnctl stopall
opmnctl startall
Firewalls separate the various tiers as shown in the architecture diagrams in Chapter 1. To enable communications between clusters on the tiers separated by a firewall, a cross-topology gateway needs to be configured. In a cross-topology gateway, one or more nodes on each side of the firewall are designated as entry points into the cluster.
For the Enterprise Deployment described in this guide, WEBHOST1 and WEBHOST2 are clustered on the web server tier (DMZ1) while APPHOST1 and APPHOST2 are clustered on the application server tier (DMZ2). To enable maximum redundancy, configure more than one node on each tier as the gateway (for example, configure WEBHOST1, WEBHOST2 in DMZ1 and APPHOST1, APPHOST2 on DMZ2 as gateway servers). The Oracle Notification Service (ONS) remote port on each instance is used for communication between the gateway servers.
To implement the gateway configuration:
Open the ORACLE_HOME/opmn/conf/opmn.xml
file on APPHOST1.
Create the <gateway>
subelement as shown in the example:
<notification-server>
<port local="6101" remote="6200" request="60041"/>
<ssl enabled="true" wallet-file="$ORACLE_HOME\opmn\conf\ssl.wlt\default"/>
<topology>
<discover list="*225.0.0.20:8001"/> <gateway list="apphost1.mycompany.com:6200&apphost2.mycompany.com:6200&apphost1.mycompany.com:6300&apphost2.mycompany.com:6300/webhost1.mycompany.com:6200&webhost2.mycompany.com:6200"/> <gateway list="webhost1.mycompany.com:6200&webhost2.mycompany.com:6200/apphost1.mycompany.com:6200&apphost2.mycompany.com:6200&apphost1.mycompany.com:6300&apphost2.mycompany.com:6300"/> </topology> </notification-server> ...
Issue this command in ORACLE_HOME/opmn/bin
on APPHOST1:
opmnctl reload
Copy the <gateway>
subelement to the opmn.xml
file on APPHOST2.
Issue this command in ORACLE_HOME/opmn/bin
on APPHOST2:
opmnctl reload
Copy the <gateway>
subelement to the ORACLE_ HOME/opmn/conf/opmn.xml
file on WEBHOST1 and change the host names to the WEBHOST host names.
Issue this command in ORACLE_HOME/opmn/bin
on WEBHOST1:
opmnctl reload
Copy the <gateway>
subelement to the opmn.xml file on WEBHOST2.
Issue this command in ORACLE_HOME/opmn/bin
on WEBHOST2:
opmnctl reload
Note:
For more information, see "Configuring Cross-Topology Gateways" in the Oracle Containers for J2EE Configuration and Administration Guide.The Load Balancing Router receives client requests and balances them to the two Oracle HTTP Server instances on the Web tier. This is accomplished using two virtual hosts: soa.mycompany.com for external access, and soainternal.mycompany for internal access. Only the external access URL is SSL-enabled.
To configure the Oracle HTTP Server instances to listen on the virtual hosts:
Open the Oracle HTTP Server configuration file:
Apache 1.3:
ORACLE_HOME/Apache/Apache/conf/httpd.conf
Apache 2.0:
ORACLE_HOME/ohs/conf/httpd.conf
Perform the following steps:
Add the LoadModule certheaders_module
directive for the appropriate platform.
UNIX Apache 1.3:
LoadModule certheaders_module libexec/mod_certheaders.so
UNIX Apache 2.0 (use this directive if you plan to use Apache 2.0 on UNIX):
LoadModule certheaders_module modules/mod_certheaders.so
Windows:
LoadModule certheaders_module modules/ApacheModuleCertHeaders.dll
Add the lines shown for the Apache version you are using to create a NameVirtualHost
directive and a VirtualHost
container for soa.mycompany.com
and port 443
.
Apache 1.3:
NameVirtualHost *:7777 <VirtualHost *:7777> ServerName soa.mycompany.com Port 443 ServerAdmin you@your.address RewriteEngine On RewriteOptions inherit SimulateHttps On </VirtualHost> <VirtualHost *:7777> ServerName soainternal.mycompany.com Port 7777 ServerAdmin you@your.address RewriteEngine On RewriteOptions inherit </VirtualHost>
Apache 2.0 (UNIX):
NameVirtualHost *:7777 <VirtualHost *:7777> ServerName soa.mycompany.com:443 ServerAdmin you@your.address RewriteEngine On RewriteOptions inherit SimulateHttps On </VirtualHost> <VirtualHost *:7777> ServerName soainternal.mycompany.com:7777 ServerAdmin you@your.address RewriteEngine On RewriteOptions inherit </VirtualHost>
Notes:
TheLoadModule
directives (in particular, the LoadModule rewrite_module
directive) must appear in the httpd.conf
file at a location preceding the VirtualHost
directives. The server must load all modules before it can execute the directives in the VirtualHost
container.
It is a good idea to create the VirtualHost
directives at the end of the httpd.conf
file.
The LoadModule rewrite_module
directive must appear before the LoadModule certheaders_module
directive.
Save the httpd.conf
file.
Restart the components by issuing these commands in ORACLE_HOME/opmn/bin
:
opmnctl stopall
opmnctl startall
Verify that you can access these URLs:
http://soainternal.mycompany.com:7777/j2ee
https://soa.mycompany.com/j2ee
Configure the load balancer to balance requests between WEBHOST1 and WEBHOST2 for virtual hosts https://soa.mycompany.com
and http://soainternal.mycompany.com:7777
Enable monitoring for the Oracle HTTP Server instances on WEBHOST1 and WEBHOST2.
Enable filtering to filter out external access to:
https://soa.mycompany.com/em/*
https://soa.mycompany.com/esbdt/*
https://soa.mycompany.com/BPELConsole/*
https://soa.mycompany.com/ccore/*
Include a Network Address Translation (NAT) statement to specify that soainternal.mycompany.com
is invisible externally.
Ensure that persistence is not set for soa.mycompany.com
and soainternal.mycompany.com
.
The Oracle BPEL Process Manager instances must be installed in the OC4J_SOA instances on APPHOST1 and APPHOST2.
Note:
You use the component CD-ROMs (for example, the Oracle BPEL Process Manager CD-ROM or the Oracle Enterprise Service Bus CD-ROM) to install individual components, and you install the individual components into the same Oracle home as the J2EE Server installation performed in Section 3.3, "Installing the Application Server Instances on APPHOST1 and APPHOST2 (ORA_HOME1)".Ensure that the system, patch, kernel and other requirements are met as specified in the Oracle Application Server Installation Guide for the platform you are using. You can find this guide in the Oracle Application Server platform documentation library for the platform and version you are using.
Insert the Oracle BPEL Process Manager (10.1.3.1.0) CD.
Start the Oracle Universal Installer:
On UNIX, issue this command: runInstaller
On Windows, double-click setup.exe
The Welcome screen appears.
Click Next.
The Specify File Locations screen appears.
Specify ORA_HOME1 as the installation directory (the same Oracle home as the Admin OC4J instance).
Click Next.
The Select Installation Type screen appears.
Select the BPEL Process Manager for OracleAS Middle Tier option and click Next.
The Specify Outgoing HTTP Proxy Information screen appears.
Specify the host, port and bypass proxy and click Next.
The Specify Database screen appears.
Specify database information:
Database Type: Oracle Database
Hostname and Port: INFRADBHOST1-V.mycompany.com:1521^INFRADBHOST2-V.mycompany.com:1521
Service Name: ORCLSVC.mycompany.com
ORABPEL Schema Password: (BPEL Process Manager Schema password)
Click Next.
The Administration Settings screen appears.
Specify administration settings:
AS Administrator Password: (The Oracle Application Server administrator password set during installation)
OC4J Instance Name: OC4J_SOA
HTTP Host:Port: soainternal.mycompany.com:7777
Click Next.
The Summary screen appears.
Click Install.
The installation proceeds, and then completes.
Click Exit, and confirm your choice to exit.
Verify that the installation was performed correctly by accessing these URLs:
http://soainternal.mycompany.com:7777/BPELConsole
This section briefly explains how to cluster BPEL instances for the Enterprise Deployment. BPEL instances in a cluster share the same dehydration store. If a BPEL instance fails, the surviving instance(s) in the cluster can resume ownership of a flow. Recovery can be manual, or can be scripted. A BPEL process suitcase is stored in the dehydration store as well, which allows a BPEL process to be deployed once to the store, and then be picked up for local deployment by each individual Oracle BPEL Process Manager instance in a BPEL cluster. This requires that Jgroups be configured. For more information, see the Oracle BPEL Process Manager Installation Guide, section titled "Creating an Oracle BPEL Process Manager Cluster".
Configure these server side properties (these instructions assume that APPHOST1 and APPHOST2 are in the same subnet. If they are not, see the instructions in the Oracle BPEL Process Manager Installation Guide 10g Release 3):
Set enableCluster
to true
and assign a name to the clusterName
property in ORACLE_HOME/bpel/system/config/collaxa-config.xml
. The clusterName
configures the Oracle BPEL Process Manager instances in a BPEL cluster, and should be the same on APPHOST1 and APPHOST2.
Set mcast-addr
and mcast-port
in ORACLE_HOME/bpel/system/config/jgroups-protocol.xml
. This configures the Jgroups configuration used by Oracle BPEL Process Manager as well as singleton adapters, such as the FTP adapter and the file adapter.The values for the mcast-addr
and mcast-port
properties:
Must be the same for all Oracle BPEL Process Manager nodes in the cluster
Should be the same for all Oracle BPEL Process Manager nodes in the cluster
Should not be in use by any application or instance on the network that is not also part of the farm
Note:
This step is required to manage the adapter state (active or passive) and for propagation of process deployment notifications in the BPEL cluster. Configuration of Jgroups in BPEL and configuration of the ONS topology in Oracle Application Server have different purposes, and must have different multicast addresses to prevent network conflicts.Set the soapServerURL
to the same value as the load balancer internal URL and the soapCallbackUrl
to the same value of the load balancer external URL, using the BPELADMIN console on each APPHOST:
Log in to Oracle BPEL Admin Console (http://hostname:port/BPELAdmin) as the oc4jadmin user.
In the Configuration tab, set these values:
soapServerURL to http://soainternal.mycompany.com:7777
soapCallbackURL to https://soa.mycompany.com
Refer to the Oracle BPEL Process Manager Administrator's Guide for more information on securing BPEL processes.
Configure these properties on the client side of all computers in the cluster:
In the ORACLE_HOME/bpel/utilities/ant-orabpel.properties
file, set cluster
to true
.
Set oc4jinstancename
to SOA_GROUP (the name of the OC4J group that has the Oracle BPEL Process Manager deployed to it).
Restart the OC4J_SOA instances on both computers.
When deploying applications in a BPEL cluster, ensure that you:
Always deploy the BPEL process and all other artifacts to each computer in the cluster. This is necessary because custom jar files may be needed on each computer (for example, a local EJB).
Use the BPEL Console to deploy processes to the cluster. See the Oracle BPEL Process Manager Developer's Guide for more information.
Start the computers one at a time, and wait until one computer is completely started before starting the next one.
Copy the client interfaces for EJB bindings to each computer's system/classes directory and then restart theOracle BPEL Process Manager to load the classes.
Ensure that for applications you build and deploy, define wsdlLocation
in the bpel.xml
file to point to the wsdl file on the local file system, and define wsdlRuntimeLocation to point to the wsdl file at run time. An example is provided in ORACLE_ HOME/bpel/samples/demos/LoanFlow/LoanDemo/bpel/bpel.xml
.
Confirm that the BPEL process works after deployment using the sample application, LoanFlow, located in the ORACLE_ HOME/bpel/samples/demos/LoanDemo
directory.
Refer to Chapter 1, Oracle BPEL Process Manager Security in the Oracle BPEL Process Manager Administrator's Guide for Release 10g (10.1.3.1) for information about securing BPEL and invoking secure BPEL processes.
When you work with tasks in the BPEL Console, this error may occur:
500 Internal Server Error
java.lang.OutOfMemoryError: PermGen space
To resolve the error, you increase the memory allocated to the PermGen space (used for loading static classes) with the MaxPermSize parameter. Follow these instructions to set the MaxPermSize
parameter in the Oracle Application Server instances on APPHOST1 and APPHOST2:
Open the ORACLE_HOME/opmn/conf/opmn.xml
file and locate the MaxPermSize
parameter, if present (shown in bold in Example 3-1). You might need to add the parameter to opmn.xml
. The parameter must be added for the OC4J_SOA
container startup.
Example 3-1 MaxPermSize Parameter in opmn.xml
...
<category id="start-parameters">
<data id="java-options" value="-Xrs -server
-XX:MaxPermSize=128M -ms512M -mx1024M -XX:AppendRatio=3
-Djava.security.policy=$ORACLE_HOME/j2ee/Admin/config/java2.policy
-Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
</category>
<category id="stop-parameters">
<data id="java-options"
value="-Djava.security.policy=$ORACLE_HOME/j2ee/Admin/config/java2.policy
-Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
...
Increase the value, or add the parameter, for example:
-XX:MaxPermSize=
256
M
Save and close the file, and restart the OC4J instance using these commands:
opmnctl reload
opmnctl stopproc process-type=OC4J_SOA
opmnctl startproc process-type=OC4J_SOA
The ESB Runtime instances must be installed in the OC4J_SOA instances on APPHOST1 and APPHOST2.
Note:
You use the component CD-ROMs (for example, the Oracle BPEL Process Manager CD-ROM or the Oracle Enterprise Service Bus CD-ROM) to install individual components, and you install the individual components into the same Oracle home as the J2EE Server installation performed in Section 3.3, "Installing the Application Server Instances on APPHOST1 and APPHOST2 (ORA_HOME1)".Ensure that the system, patch, kernel and other requirements are met as specified in the Oracle Application Server Installation Guide for the platform you are using. You can find this guide in the Oracle Application Server platform documentation library for the platform and version you are using.
Insert the Oracle Enterprise Service Bus (10.1.3.1.0) CD.
Start the Oracle Universal Installer:
On UNIX, issue this command: runInstaller
On Windows, double-click setup.exe
The Welcome screen appears.
Click Next.
The Specify File Locations screen appears.
Specify ORA_HOME1 as the installation directory (the same Oracle home as the OC4J_SOA instance).
Click Next.
The Select Installation Type screen appears.
Select the Enterprise Service Bus for OracleAS Middle Tier option and click Next.
The Specify Outgoing HTTP Proxy Information screen appears.
Specify the host, port and bypass proxy and click Next.
The Specify Database screen appears.
Specify database information:
Database Type: Oracle Database
Hostname and Port: INFRADBHOST1-V.mycompany.com:1521^INFRADBHOST2-V.mycompany.com:1521
Service Name: ORCLSVC.mycompany.com
ORAESB Schema Password: (ESB Schema password)
Click Next.
The Administration Settings screen appears.
Specify administration settings:
AS Administrator Password: (The Oracle Application Server administrator password set during installation)
OC4J Instance Name: OC4J_SOA
HTTP Host:Port: soainternal.mycompany.com:7777
Click Next.
The Select ESB Type screen appears.
Select Runtime and click Next.
The Summary screen appears.
Click Install.
The installation proceeds, and then completes.
Click Exit, and confirm your choice to exit.
The OWSM instances must be installed in these Oracle homes and OC4J instances as follows:
APPHOST1, Oracle home 1: OC4J_WSM
APPHOST2, Oracle home 2: OC4J_GTWY
APPHOST2, Oracle home 1: OC4J_WSM
APPHOST2, Oracle home 2: OC4J_GTWY
Note:
You use the component CD-ROMs (for example, the Oracle Web Services Manager CD-ROM or the Oracle Enterprise Service Bus CD-ROM) to install individual components, and you install the individual components into the same Oracle home as the J2EE Server installation performed in Section 3.6, "Installing the Application Server Instances on APPHOST1 and APPHOST2 (ORA_HOME2)".Ensure that the system, patch, kernel and other requirements are met as specified in the Oracle Application Server Installation Guide for the platform you are using. You can find this guide in the Oracle Application Server platform documentation library for the platform and version you are using.
Insert the Oracle Web Services Manager (10.1.3.1.0) CD.
Start the Oracle Universal Installer:
On UNIX, issue this command: runInstaller
On Windows, double-click setup.exe
The Oracle Web Services Manager 10g (10.1.3.1.0) Installation screen appears.
Specify the installation directory into which you installed the J2EE Server Oracle Application Server instance.
Specify the Application Server Details:
HTTP Host:Port: soainternal.mycompany.com:7777
OC4J Instance Name: OC4J_WSM
or OC4J_GTWY
(each in its Oracle home as described at the beginning of this procedure)
Administrator User: oc4jadmin
Administrator Password: (The password set during installation)
Specify the Database Details:
Database Type: Oracle Database
Driver Type: Thin
Name: ORCLSVC.mycompany.com
Database Connect String: (Hostname and port of the SOA database listener, in the format host:port) INFRADBHOST1-V:1521^INFRADBHOST2-V:1521
User ID: ORAWSM
Password: (Oracle Web Services Manager schema password)
Click Next.
The Summary screen appears.
Click Install.
The Install, the Oracle WSM Configuration Assistant, and then the End of Installation screens appear.
Click Exit, and confirm your choice to exit.
Access the OWSM console (the default user name is admin
and the default password is oracle
—you should change these for security reasons) at:
http://soainternal.mycompany.com:7777/ccore
Click Add New Component.
Use these values to register the clustered gateways:
Component Name: Gateway_Cluster
Component Type: gateway
Container Type: Oracle Web Services Manager
Component URL: http://soainternal.mycompany.com:7777/gateway
Leave the defaults for all other values.
Connect the single logical gateway to the OWSM monitor:
Start the Oracle WSM Control application by accessing http://soainternal.mycompany.com:7777/ccore
.
The Enforcement Points page appears.
Locate the gateway to configure and click its Edit icon.
Set the cfluent.monitor.rmi.host
property to the monitor's host name, for example, APPHOST1.mycompany.com (assuming coreman
is up on APPHOST1 and down on APPHOST2).
Set the cfluent.monitor.rmi.port
property to the monitor's RMI port, for example, 3118. (The port number is the value of dataload.monitor.rmi.port
in the ORACLE_ HOME/owsm/bin/coresv.properties file
.)
Click Save.
Connect the Oracle WSM Control to the Oracle WSM Monitor by performing these steps on each OC4J_WSM instance:
Open the ORACLE_ HOME/owsm/config/ccore/ui-config-installer.properties file.
Set the ui.om.server.rmiHost property to the Monitor's host name.
Set the ui.om.server.rmiPort property to the Monitor's RMI port.
Save and close the ui-config-installer.properties file.
Redploy the application using one of these commands:
(Windows) wsmadmin.bat deploy
OC4J administrator password
control
(Linux) wsmadmin.sh deploy
OC4J administrator password
control
Using the 10.1.3.3 Oracle Universal Installer, apply the patch to the Oracle home on the WEBHOST computers.
Stop all components on APPHOST1 and APPHOST2.
Increase the MaxPermSize
parameter as described in Section 3.12.2, "Resolving Out-of-Memory Errors in the BPEL Runtime Console".
Using the 10.1.3.3 Oracle Universal Installer, apply the patch to ORA-HOME1 and ORA-HOME2 on APPHOST1 and APPHOST2.
Use the Application Server Control Console to undeploy the listed applications on APPHOST1 and APPHOST2:
Table 3-2 Applications to undeploy
Undeploy this application... | on these OC4J instances |
---|---|
ccore |
Both OC4J_GTWY instances |
coreman |
Both OC4J_GTWY instances and one of the OC4J_WSM instances |
policymanager |
Both OC4J_GTWY instances |
gateway |
Both OC4J_WSM instances |
Log in to the Application Server Control Console with the password set during installation.
The Cluster Topology page appears.
Click the link in the Members list for the application server instance (APPHOST1 or APPHOST2).
The Application Server page for the instance appears, listing the OC4J instances under the System Components list (for example, OC4J_WSM).
Click the link for OC4J instance.
The OC4J Instance page appears.
Click the Applications tab.
The applications page for the OC4J instance appears. Click Expand All to list the applications deployed in that container.
Select the applications and click Undeploy.
The Undeploy Application page appears, listing the applications selected for undeployment.
Selet Yes.
Update the ORACLE_HOME/integration/esb/install/ant-tasks/esb_oc4j_install_props.xml
file with the values for your configuration (these values are those entered during the Oracle Enterprise Service Bus standalone installation). Example 3-2 shows the contents of the file.
Set the environment by executing the esbsetenv.sh
script, located in the ORACLE_HOME/integration/esb/bin
directory.
Deploy the Oracle Enterprise Service Bus repository or runtime instance by executing:
ant -f $ORACLE_HOME/integration/esb/install/ant-tasks/esboc4j.xml
Note:
The ant script does not perform the RAC configuration in thedata-sources.xml
file. After the Ant script finishes executing, you must modify the ORACLE_HOME
/j2ee/oc4j_esbdt/config/data-sources.xml
file to configure the RAC. (In the path given, substitute oc4j_esbdt
with the name of the OC4J container on your system, the directory in which the ESB repository was deployed using Ant scripts.)
Modify the connection pools ESBPool
and ESBAQJMSPool
to include the following:
<connection-factory factory-class="oracle.jdbc.pool.OracleDataSource" url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=tcp)(HOST=host1-vip.us.oracle.com) PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=host2-vip)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME=ORCL.us.oracle.com)))" user="oraesb" password="->pwdforOraesb">
Verify that the Oracle Enterprise Service Bus repository instance deployment was successful by accessing the Repository Instance Console at:
http://soainternal.mycompany.com:7777/esb
Example 3-2 esb_oc4j_install_props.xml
?xml version="1.0"?> <!-- $Header: esb_oc4j_install_props.xml 28-apr-2007.02:07:30 apatel Exp $ --><!-- Copyright (c) 2007, Oracle. All rights reserved. NAME esb_oc4j_install_props.xml - Values to be used for deploying ESB on OC4J container DESCRIPTION esb_oc4j_install_props.xml is imported in esboc4j.xml build file to deploy ESB (either repository or runtime) on OC4J container. Change the values of the properties in this file per your environment and then run ant -f ORACLE _HOME/integration/esb/install/ant-tasks/esboc4j.xml. The values of the properties you enter here are the ones you enter on Oracle Universal Installer (OUI) while installing Enterprise Service Bus (ESB) on OracleAS midtier using Advanced option. NOTES <other useful comments, qualifications, etc.> MODIFIED (MM/DD/YY) apatel 03/05/07 - Creation --> <project name="ESB Installation Properties" default=""> <!-- OC4J container in which you want to deploy ESB --> <property name="home_container_v" value="OC4J_ESBDT"/> <!-- ESB component (runtime or repository) that you want to deploy on OC4J. Possible values: 'design' (for repository) 'runtime' (for runtime) --> <property name="esb_type_v" value="design"/> <!-- OC4J host hosting the repository --> <property name="ohs.host" value="soa.acme.com"/> <!-- Port of OC4J host hosting the repository --> <property name="ohs.port" value="7777"/> <!-- Username for connecting to oraesb schema --> <property name="db.user" value="oraesb"/> <!-- Password for connecting to oraesb schema --> <property name="db.password" value="oraesb"/> <!-- Database host where oraesb schema is installed --> <property name="db_host_v" value="stajo05-vip.us.oracle.com"/> <!-- Port of database host where oraesb schema is installed --> <property name="db_port_v" value="1521"/> <!-- Service name for database where oraesb schema is installed --> <property name="db_sid_v" value="ORCLSVC.mycompany.com"/> <!-- Value of AS Instance Name to which the OC4J instance belongs. The OC4J instance is the one specified in property 'home_container_v' in this file. --><property name="ias_name_v" value="prodsoa1.stbee19.us.oracle.com"/> <!-- Value for 'AS Administrator Password' --> <property name="admin.server.password" value="welcome1"/> <!-- Database url for connecting to oraesb schema Sample value: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=tcp)(HOST=mypc.acme.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl))) --> <property name="db.url" value="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=tcp)(HOST=stajo05-vip.us.oracle.com)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=stajo06-vip.us.oracle.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLSVC.mycompany.com)))"/> <!-- If your computer is located behind a firewall you may need to route outgoing HTTP connections through a proxy server. Sample value: www-proxy.acme.com --> <property name="http.proxy.host" value="proxy.acme.com"/> <!-- HTTP proxy port --> <property name="http.proxy.port" value="80"/> <!-- Addresses for which proxy should be bypassed Sample value: "*acmecorp.com|localhost|mypc.us.oracle.com|*acme.com" --> <property name="http.non.proxy.hosts" value="*acmecorp.com|localhost|mypc.acme.com|*acme.com"/> <!-- Value of AS Instance Name. You can also get this value from $ORACLE_HOME/config/ias.properties property 'IASname' Sample value: soahome.mypc.acme.com --> <property name="ias.name" value="prodsoa1.stbee19.us.oracle.com"/> <!-- Value for OPMN request port. You can get this value from the following snippet in $ORACLE_HOME/opmn/conf/opmn.xml <notification-server> <port local="6101" remote="6201" request="6004"/> <ssl enabled="true" wallet-file="$ORACLE_HOME\opmn\conf\ssl.wlt\default"/> </notification-server> --> <property name="opmn.requestport" value="6003"/> <!-- Sample value: mypc.acme.com --> <property name="ias.virtual_host" value="stbee19.us.oracle.com"/> </project>
The failover scheme for the OC4J_ESBDT instances dictates that only one instance is up at any given time. If the single active instance fails, OPMN will start the other instance. Follow these steps on both OC4J_ESBDT instances to configure the failover:
Open the ORACLE_HOME\opmn\conf\opmn.xml
file.
Modify the OC4J_ESBDT process as shown in bold:
<process-type id="OC4J_ESBDT" module-id="OC4J" service-failover="1" status="enabled">
Remove the numprocs entry:
<process-set id="default_group" numprocs="1"/>
Restart the instance by issuing these commands in ORACLE_HOME\opmn\bin
:
opmnctl reload
opmnctl restartproc process-type=OC4J_ESBDT
If Oracle Enterprise Service Bus is deployed across a cluster, and an ESB flow is triggered by a singleton adapter (such as a file adapter), one, and only one instance of the clustered ESB should pick up the file and start one process. The ESB inbound endpoint property clusterGroupId
enforces singleton behavior by adapters in a clustered environment. This feature is designed for endpoints, such as a file system, that do not natively support a solid locking mechanism, as does a SQL database.
This singleton control of adapters requires that the ESB and BPEL instances belong to the same Jgroup configuration, obtained from the mcast-addr
and mcast-port
values in the ORACLE_HOME
/bpel/system/config/jgroup-protocol.xml
file, as described in Section 3.12, "Configuring the Cluster of BPEL Instances on APPHOST1 and APPHOST2."
To configure this behavior, you assign a combination of J2EE Connector Architecture (JCA) endpoint activations to a specific cluster group (typically, activations toward the same non-transactional endpoint, such as the same directory). Only one activation can be active at any given time. For example:
Cluster 1, instance 1:
<service name="InboundServiceX" ...>
...
<endpointProperties>
<property name="clusterGroupId" value="cluster1"/>
</endpointProperties>
</service>
Cluster1, instance 2:
<service name="InboundServiceX" ...>
...
<endpointProperties>
<property name="clusterGroupId" value="cluster1"/>
</endpointProperties>
</service>
Cluster1, instance 3:
<service name="InboundServiceX" ...>
...
<endpointProperties>
<property name="clusterGroupId" value="cluster1"/>
</endpointProperties>
</service>
[...]
In this configuration, all JCA adapter endpoint activations belonging to the same cluster group (in this case, cluster 1) will at any given time have only one activation active (the primary activation), and will be actively polling the endpoint (the file system). The others will be "hot standby", or secondary activations. For example, if instance 2 is the primary activation and it stops, instance 1 and instance 3 will immediately detect this, and then instance 1 or instance 3 will resume the activation responsibility (that is, become the primary activation). If instance 2 is restored to operation, it may re-assume the primary activation responsibility if instance 1 or instance 3 stops, and so on.
For more information, see "How to Add Endpoint Properties" in the Oracle SOA Suite Developer's Guide.
Note:
The cluster of Oracle Enterprise Service Bus instances must include instances of the runtime Server type only. The cluster must not include instances of the repository Server type.In the Oracle Enterprise Service Bus runtime installation:
If the file exists, modify the clustering properties in ORACLE_HOME
/j2ee/OC4J_SOA/applications/esb-rt/META-INF/orion-application.xml
to uncomment the cluster_name
property (for example, cluster_name=esbcluster
) and the property_name
property (for example, <property name="primary_oc4j" value="false" />
).
Copy the clustering properties you uncommented from ORACLE_HOME
/j2ee/OC4J_SOA/applications/esb-rt/META-INF/orion-application.xml
to ORACLE_HOME
/j2ee/OC4J_SOA/application-deployments/esb-rt/orion-application.xml
. (If the ORACLE_HOME
/j2ee/OC4J_SOA/applications/esb-rt/META-INF/orion-application.xml
file does not exist, uncomment the properties described in step 1 in the application-deployments/esb-rt/orion-application.xml
file).
Ensure that topics have been created by performing these steps in sqlplus
:
connect
oraesb user
/
oraesb password
;
select object_name from user_objects where object_name like 'AQ%';
If if no rows are returned, the queues and/or topics are missing, and you must perform Step c.
Execute ORACLE_HOME
/integration/esb/sql/oracle/create_esb_topics.sql
.
Restart the server by issuing these commands:
opmnctl stopall
opmnctl startall
Using Oracle Enterprise Manager 10g, follow these steps to configure JNDIs in the run time and both ESB repository instances. The JNDI Names created in this section are used to update the metadata in Section 3.24, "Updating the Oracle Enterprise Service Bus Metadata".
In the Administration tab, click Expand All, Services, Enterprise Messaging Service, then Database Persistence.
The Database Persistence configuration page appears.
Click Deploy.
Navigate to the OC4J Admin instance's Administration tab.
Click Expand All.
Navigate to Administration Tasks, Services, Enterprise Messaging Service, then Database Persistence.
Click Deploy.
The Deploy Database Persistence Provider screen appears.
Make the following entries and selections:
Resource Adapter Module Name: OracleOJMS
Select Add a new resource provider to be used by this connector
Resource Provider Name: esbRP
Datasource JNDI Location: jdbc/esbaqdatasource
Click OK.
A confirmation page appears.
Click Restart and confirm your choice to restart when prompted. If errors occur, use the opmnctl shutdown
and opmnctl startall
commands to restart the default application.
On the Resource Adapter page for the OracleOJMS RA, in the Connection Factories tab, click Create.
The Create Connection Factory: Select Interface screen appears.
Select javax.jms.XATopicConnectionFactory
from the Connection Factory Interface drop-down list and click Continue.
The Create Connection Factory screen appears.
In the JNDI Location field, enter OracleOJMS/XATCF
.
Click Finish.
A confirmation message appears.
Create another connection factory by repeating steps 10-12, but substitute these values:
Select javax.jms.TopicConnectionFactory
from the Connection Factory Interface drop-down list.
In the JNDI Location field, enter OracleOJMS/TCF
and click Finish.
Click the Administered Objects tab and click Create.
The Create Administered Object screen appears.
Select oracle.j2ee.ra.jms.generic.AdminObjectTopicImpl
from the Object Class drop-down list and click Continue.
In the JNDI Location field, enter ESBTopics
. Click Finish. In the resourceProviderName field, enter esbRP
.
Click Finish.
A confirmation message appears.
Navigate to the ORACLE_HOME/integration/esb/bin
directory and issue this command:
Windows: esbsetenv.bat
UNIX: esbsetenv.sh
Create a file in the ORACLE_HOME
directory called esbparam.properties
with the key=value pairs in the example below, and the JNDI Names used in Section 3.23, "Configuring JNDIs for the Topic and Topic Connection Factory".
Example 3-3 esbparam.properties file
DT_OC4J_HTTP_PORT=7777 DT_OC4J_HOST=soainternal.mycompany.com PROP_NAME_DEFERRED_TOPIC_JNDI=ESBTopics/Topics/ESB_JAVA_DEFERRED PROP_NAME_DEFERRED_TCF_JNDI=OracleOJMS/TCF PROP_NAME_DEFERRED_XATCF_JNDI=OracleOJMS/XATCF PROP_NAME_CONTROL_TOPIC_JNDI=ESBTopics/Topics/ESB_CONTROL PROP_NAME_CONTROL_TCF_JNDI=OracleOJMS/XATCF PROP_NAME_ERROR_TOPIC_JNDI=ESBTopics/Topics/ESB_ERROR PROP_NAME_ERROR_TCF_JNDI=OracleOJMS/TCF PROP_NAME_ERROR_XATCF_JNDI=OracleOJMS/XATCF PROP_NAME_ERROR_RETRY_JNDI=ESBTopics/Topics/ESB_ERROR_RETRY PROP_NAME_ERROR_RETRY_TCF_JNDI=OracleOJMS/XATCF PROP_NAME_MONITOR_TOPIC_JNDI=ESBTopics/Topics/ESB_MONITOR PROP_NAME_MONITOR_TCF_JNDI=OracleOJMS/TCF PROP_NAME_INITIAL_CONTEXT_FACTORY=com.evermind.server.rmi.RMIInitialContextFactory ACT_ID_RANGE=400
Issue this command to populate the esb.parameter table:
ant import-params -Dparamfile=esbparam.properties
On the ESB Console System screen (accessible at http://soainternal.mycompany.com:7777/esb
, http://APPHOST1:7777/esb
, http://APPHOST2:7777/esb
), for each installation, update the topic and topic connection factory for asynchronous topics with these values:
Topic: ESBTopics/Topics/ESB_JAVA_DEFERRED
Topic Connection Factory: OracleOJMS/XATCF
Perform the steps in this section in all run time and repository instances.
Navigate to the ORACLE_HOME/integration/esb/config
directory.
Make a copy of the Domain_DB.xml
file, naming the copy Domain.xml
.
Restart the server using these commands:
opmnctl stopall
opmnctl startall
After you have installed all of the components on the Application Tier, you will be able to identify the port numbers that need to be opened on the firewall. This depends on the number of application server instances and types of components installed. In general, the process of configuring the firewall involves these steps:
For each installed instance, examine the opmn.xml
file to determine the component types and their designated port ranges. See Example 3-6 for examples of port assignments and ranges.
Determine the ports in use with the netstat command:
netstat -an
Configure the firewall to open only the ports in use.
Example 3-6 Oracle Application Server components and port ranges in the opmn.xml file
<?xml version = '1.0' encoding = 'UTF-8'?> <opmn xmlns="http://www.mycompany.com/ias-instance"> <log path="$ORACLE_HOME/opmn/logs/opmn.log" comp="internal;ons;pm" rotation-size="1500000"/> <debug path="$ORACLE_HOME/opmn/logs/opmn.dbg" comp="" rotation-size="1500000"/> <notification-server interface="ipv4"> <port local="6104" remote="6204" request="6007"/> <ssl enabled="true" wallet-file="$ORACLE_HOME/opmn/conf/ssl.wlt/default"/> </notification-server> <process-manager> <process-modules> ... </process-modules> <ias-instance id="ohcoreidoid.stana17.mycompany.com" name="ohcoreidoid.stana17.mycompany.com"> ... <process-type id="IASPT" module-id="IASPT" working-dir="/scratch/aime6/coreidoid/oh/iaspt/bin"> <port id="ajp" range="7501-7600"/> <process-set id="IASPT" numprocs="1"/> </process-type> </ias-component> <ias-component id="ASG" status="enabled" id-matching="true"> ... </module-data> <start timeout="600" retry="2"/> <stop timeout="120"/> <restart timeout="720" retry="2"/> <port id="default-web-site" range="8895" protocol="ajp"/> <port id="rmi" range="12401-12500"/> <port id="rmis" range="12701-12800"/> <port id="jms" range="12601-12700"/> <process-set id="default_group" numprocs="1"/> </process-type> <process-type id="admin" module-id="OC4J" status="enabled"> <module-data> ... <port id="default-web-site" range="12501-12600" protocol="ajp"/> <port id="rmi" range="12401-12500"/> <port id="rmis" range="12701-12800"/> <port id="jms" range="12601-12700"/> <process-set id="default_group" numprocs="1"/> </process-type> </ias-component> <ias-component id="soa_group" status="enabled"> <process-type id="oc4j_soa" module-id="OC4J" status="enabled"> ... <start timeout="600" retry="2"/> <stop timeout="120"/> <restart timeout="720" retry="2"/> <port id="default-web-site" range="12501-12600" protocol="ajp"/> <port id="rmi" range="12401-12500"/> <port id="rmis" range="12701-12800"/> <port id="jms" range="12601-12700"/> <process-set id="default_group" numprocs="1"/> </process-type> </ias-component> </ias-instance> </process-manager> </opmn>
Note that the AJP ports used by applications fall within the range 12501-12600. Ensure that all of the AJP ports used by OC4J applications are open on the firewall between the Web server and the application. If a port is not open, the following error occurs when access to the application from the Web tier is attempted (that is, when the URL web host:port/application
is requested):
mod_oc4j: request to OC4J apphost1.mycompany.com:12501 failed: Connect failed (errno=110)
This error creates an entry in a log file in the ohs/logs
directory.
Follow the steps in this section to deploy applications. You can perform this step before or after configuring clusters.
Deploying Applications with the Oracle Enterprise Manager 10g Application Server Control Console
Access the Application Server Control Console at:
http://soainternal.mycompany.com/em
The Login page appears.
Provide the password that was set during installation and click Login.
The OC4J:home page appears.
Click the Cluster Topology link.
The Cluster Topology page appears.
Identify in the Members list the OC4J instance in which you will deploy applications. Ensure that a green upward arrow appears in its Status column, indicating that it is running.
Note:
You can deploy an application into multiple instances that belong to the same group. Instances in a group have the same name and password. For instructions on creating a group, see the Oracle Application Server Administrator's Guide, section titled "Using Application Server Control to Create and Manage Groups". If a group exists, you can scroll down to the Groups section to see the list of instances in the group. To deploy to the group, click the Group name and continue with Step 8.If necessary, start the OC4J instance by clicking the Select checkbox at the beginning of the row and then clicking the Start button preceding the Members list.
The Processing: Starting screen appears with this message:
The selected topology members are being started.
The Cluster Topology screen appears with a message that the topology member was started.
Click the link for the OC4J instance for application deployment.
The OC4J screen for the instance appears.
Click the Applications link.
The Applications page for the instance appears.
Click Deploy.
The Deploy: Select Archive screen appears.
Provide the location of the archive and click Next.
The Deploy: Application Attributes screen appears.
Provide the application name and click Next.
The Deploy: Deployment Settings screen appears.
(Optional) Perform deployment tasks or deployment plan editing, or save the current settings as a deployment plan.
Click Deploy.
The Processing: Deploy screen appears with progress messages.
Deploying Applications on the Command Line
Issue this command in APPHOST1_ORACLE_HOME\jdk\bin\java
(the parameters are shown on separate lines for readability only):
java -jar admin_client.jar uri admin ID admin password
-deploy -file full path -deploymentName app name
[-bindAllWebApps [Web site name]]
[-targetPath full path] [-parent app name] [-deploymentDirectory full path]
[-iiopClientJar full path]
Note:
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.The EAR file is deployed to the ORACLE_HOME/j2ee/instance name/applications
directory by default. The deployed EAR file is also copied to this directory. In each successive deployment, this EAR file is overwritten.
If multicast traffic is a problem, you can configure the Web and Application Tier cluster for static discovery by modifying the ORACLE_HOME\opmn\conf\opmn.xml
file after installation.
Locate the multicast entry:
<topology>
<discover list="*225.0.0.1:8001"/>
...
</topology>
Replace the entry with a nodes list to specify static discovery instead:
<topology>
<nodes list="apphost1:6200,apphost1:6200,apphost2:6200,apphost2:6200,webhost1:6200,web host1:6200"/>
</topology>
Issue this command in ORACLE_HOME\opmn\bin
:
opmnctl reload
Verify that all nodes are present in the cluster by issuing this command in ORACLE_HOME\opmn\bin
:
opmnctl @cluster status
Note:
When APPHOST1 and APPHOST2 and WEBHOST1 and WEBHOST2 are in different subnets, you also need a gateway entry. See Section 3.8, "Configuring the Cluster Gateways on WEBHOST1,2 and APPHOST1,2 (Optional)" for more information.Fast Connection Failover provides failover for a JDBC connection to a 10g R1 or 10g R2 RAC database. Upon failure of a RAC node, Oracle Notification Service (ONS) detects the failure and an SQL exception is thrown to application code. To enable Fast Connection Failover on APPHOST1 and APPHOST2:
Open the ORACLE_HOME/opmn/conf/opmn.xml
file.
Add the RAC database hostname and remote port identifiers:
<notification-server> <port local="6100" remote="6200" request="6003"/> <ssl enabled="false" wallet-file="$ORACLE_HOME\opmn\conf\ssl.wlt\default"/> <topology> <nodeslist="infradbhost1-vip.us.oracle.com:6200,infradbhost2-vip.us.oracle.com:6200"/> <discover list="*225.0.5.9:9999"/> </topology> </notification-server>
Save and close the file.
Open the ORACLE_HOME/j2ee/OC4J_SOA/config/data-sources.xml
file.
Add the RAC node information and enable Fast Connection Failover.
Ensure that the connection-factory class used by used by various connection pools in OC4J_SOA and OC4J_ESBDT is oracle.jdbc.pool.OracleDataSource
. Also ensure that the loginTimeout
, connectionCachingEnabled
, and fastConnectionFailoverEnabled
properties (shown in bold) are added for each connection pool.
<managed-data-source jndi-name="jdbc/TestDemoDS" description="Managed DataSource for TestDemoDS" connection-pool-name="connection_pool_name_for_OC4J_SOA_and_OC4J_ESBDT" name="TestDemoDS"/> <connection-pool name="TestDemoDS Connection Pool" min-connections="10" max-connections="30" inactivity-timeout="30" initial-limit="0" max-connect-attempts="10" connection-retry-interval="5"> <connection-factory factory-class="oracle.jdbc.pool.OracleDataSource" user="system" password="welcome1" url="jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=infradbhost1-V.mycompany.com)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=infradbhost2-V.mycompany.com)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=loon)))"> <property name="loginTimeout" value="30"/> <property name="connectionCachingEnabled" value="true"/> <property name="fastConnectionFailoverEnabled" value="true"/> </connection-factory> </connection-pool>
If you are using a RAC database as dehydration store, increase the nonFatalConnectionMaxRetry
to 5
(from the default value of 2
) in the SOA_Oracle_Home
\bpel\system\config\collaxa-config.xml
file. This setting ensures that BPEL performs sufficient connection retries in the event of RAC instance failover.
Save and close the file.
Issue this command in ORACLE_HOME/opmn/bin
:
opmnctl reload
Note:
Additional configuration is required on the data tier (see Section 2.2, "Configuring Fast Connection Failover for the RAC Database on INFRADBHOST1-V and INFRADBHOST2-V").In order to ensure consistent availability of all services, ensure that the connection time out values for all Oracle Application Server components are set to a lower time out value than that on the firewall and Load Balancing Router. If the firewall or Load Balancing Router drops a connection without sending a TCP close notification message, then Oracle Application Server components will continue to try to use the connection when it is no longer available.
After the installation and configuration is complete, configure the network communication as described in this section. Table lists the ports open on each firewall.
Configure the Load Balancing Router to:
Receive requests on https://soa.mycompany.com
, port 443
Balance requests with SSL acceleration to WEBHOST1, WEBHOST2 on port 7777
Configure the firewall for communication into DMZ1:
http://WEBHOST1.mycompany.com:7777
http://WEBHOST2.mycompany.com:7777
ONS remote port 6200 on WEBHOST1 and WEBHOST2
Configure the firewall for communication into and out of DMZ2:
http://APPHOST1.mycompany.com
(J2EE with SOA components) AJP ports 12501-12510
http://APPHOST2.mycompany.com
(J2EE with SOA components) AJP ports 12501-12510
ONS remote port 6200 for ORA_HOME1 and 6300 for ORA_HOME2 on APPHOST1 and APPHOST2
Configure the firewall for communication into DMZ3:
INFRADBHOST1-V INFRADBHOST2-V database with listener on port 1521
Table 3-3 Open ports between firewall zones
Firewall Zones | Ports | Purpose |
---|---|---|
DMZ1 to DMZ2 |
12510-12510 |
WEBHOST1 and WEBHOST2, to access APPHOST1 and APPHOST2 AJP ports |
DMZ1 to DMZ2 |
6200, 6300 |
OPMN cluster gateway. This port should be the Oracle Notification Server (ONS) remote port 6200 for ORA_HOME1 and 6300 for ORA_HOME2 on APPHOST1 and APPHOST2. The ports shown here are examples; the |
DMZ2 to DMZ1 |
6200, 6300 |
OPMN cluster gateway. This port should be the Oracle Notification Server (ONS) remote port 6200 for ORA_HOME1 and 6300 for ORA_HOME2 on APPHOST1 and APPHOST2. The ports shown here are examples; the |
DMZ2 to DMZ1 |
7777 |
APPHOST1 and APPHOST2 loopback access to soainternal.mycompany.com:7777 |
DMZ2 to DMZ3 |
1521 |
Database access |
DMZ2 to DMZ3 |
389, 636 |
Oracle Internet Directory server access |
DMZ2 to DMZ3 |
6200 |
ONS remote port for Fast Connection Failover for RAC database |
DMZ3 to DMZ2 |
6200 |
ONS remote port for Fast Connection Failover for RAC database |
The tasks you have to perform depend on the authentication method you will use for mySOACompany. If you want user login sessions to persist after a failover event, you will need to use single sign-on.
mySOACompany with JSSO and Oracle Internet Directory
Perform these tasks:
mySOACompany with Oracle Single Sign-On
Perform these tasks:
"Steps to Use the Oracle Identity Management Security Provider" and "Settings for Authentication Method with Oracle Identity Management" in the Oracle Containers for J2EE Security Guide, Chapter 8.
You will need to manually replicate certain OracleAS JAAS Provider settings from the Admin OC4J instance (created during installation) in the OC4J instances that use Oracle Internet Directory, created as described in this section.
For more information on pre- and post-installation requirements, see the Oracle BPEL Process Manager Administrator's Guide, Chapter 2, section titled "Configuring Identity Service 10.1.3.1.0 with 10.1.2 Oracle Internet Directory".
To configure Oracle Internet Directory for BPEL:
Navigate to the ORACLE_ HOME/bpel/system/services/install/ant-tasks
file.
Issue this command:
(Windows) configure_oid.bat
(Linux) configure_oid.sh
The syntax for Linux is:
sh ./configure_oid.sh oid_admin_user oid_admin_passwd oid_nonssl_port ssl_enabled oid_realm_name seedRequiredUsers | seedRequiredUsers oc4j_admin_ user oc4j_admin_passwd oc4j_container_name
For example:
sh ./configure_oid.sh orcladmin welcome 389 false us seedRequiredUsers oc4jadmin welcome1 oc4j_soa
If you deployed BPEL or ESB in OC4J instances other the default (home) instance, copy the ORACLE_HOME/j2ee/home/config/jazn.xml
file to the ORACLE_ HOME/j2ee/
oc4j instance name
/config/jazn.xml
file.
Note:
The policies for an OC4J instance are specified by the provider in the<jazn>
element in the jazn.xml
file.
When you deploy an application that uses a different provider than the instance-level provider for the instance to which the application is deployed (<jazn> config
in the orion-application.xml
file differs from <jazn> config
in the jazn.xml
file, in that one is XML and the other is LDAP), the provider specified in the orion-application.xml
file is used for identity store and authentication, while the provider specified in the jazn.xml
file would be used for policies and authorization. This is not a recommended usage.
Note:
Thehw_services
application should not be JSSO-enabled. If this application has been inadvertently SSO-enabled, deploying a process using ant on the command line will return the message "Successfully deployed the process..." although the deployment did not actually occur.You will need to follow these steps on APPHOST1 and APPHOST2 to configure Java SSO for these applications in the OC4J_Admin and OC4J_SOA instances:
orabpel
(for Oracle BPEL Process Manager)
esb-dt
(for Oracle Enterprise Service Bus)
ccore
(for Oracle Web Services Manager)
ascontrol
(for Application Server Control Console)
Access the Application Server Control Console and perform these steps:
Click the link for the OC4J instance.
The OC4J: page appears.
Click Applications.
The applications are listed.
Click Expand All.
Select the javasso application and click Start.
This warning message appears:
Java SSO is not properly configured. This is often caused when you are running multiple Java SSO applications in the cluster that use different shared symmetric keys. Please configure all Java SSO applications in the cluster to use the same shared symmetric key. You can do this from Java SSO Configuration page.
Click Configure Java SSO.
A confirmation message appears that the SSO configuration was completed and will take effect after the instances are restarted.
Click Restart.
A confirmation message appears.
Click Yes.
The instance is restarted. (If you are configuring the OC4J _Admin instance, the system terminates your login session and you must log back in to continue the setup.)
Scroll to the Administration section and click Java SSO Configuration.
The Java SSO Configuration page appears.
Click Participating Applications.
The applications are listed.
Click the check box for the applications to be Java SSO enabled.
Click Apply.
Configure SSO for Oracle Web Services Manager:
Navigate to ORACLE_HOME/owsm/bin
.
Edit the ORACLE_HOME/owsm/bin/install.properties
file to set the install.sso.support
property to true
.
Issue this command:
(Windows) wsmadmin.bat deploy
password
console
(Linux) wsmadmin.sh deploy
password
console
In the preceding commands, password is the OC4J administrator password.
Note:
JSSO enablement is lost for applications added with a patch set when moving from 10.1.3.1 to 10.1.3.3 The JSSO enablement is provided by every JSSO partner application inORACLE_HOME
/application-deployments/
APPLICATION
/orion-application.xml
. APPLICATION is the JSSO partner application directory. This declaration is required to signal a JSSO partner application:
<jazn provider="XML"> <jazn-web-app auth-method="CUSTOM_AUTH"/> </jazn>
When a patchset is applied to ascontrol
or another application, the application is redeployed and its orion-application.xml
file replaced with a new one containing an entry resembling the following when JSSO is re-enabled:
<!-- This is commented out unless jazn-based SSO is used. The installer or setup disables the comments if required. --> <!-- %BEGINGOVERNSSO% <jazn provider="XML"> <jazn-web-app auth-method="CUSTOM_AUTH"/> </jazn> %ENDGOVERNSSO% -->
which will become:
<jazn provider="XML"> <jazn-web-app auth-method="CUSTOM_AUTH"/> </jazn>
The worklist application is a sample application that does not support Oracle Single Sign-On or Java SSO. If you do not want any applications that do not support single sign-on to be enabled in a production environment, follow these steps to disable the worklist application:
Open the ORACLE_HOME/j2ee/home/config/default-web-site.xml
file.
Modify the file to comment out or delete this line:
<web-app application="hw_services" name="worklistapp" load-on-startup="true" root="/integration/worklistapp" />
Restart the server.