Oracle® BPEL Process Manager Installation Guide 10g Release 3 (10.1.3.1.0) for UNIX and Microsoft Windows Part Number B28980-03 |
|
|
View PDF |
Oracle BPEL Process Manager performs tasks such as sending requests to and receiving responses from Web services, storing processes for future use (dehydration), retrieving stored processes, and performing logic on incoming data. If a single Oracle BPEL Server fails while BPEL processes are running, service is interrupted. This interruption is preventable by setting up a cluster to improve reliability, throughput, and performance.
This chapter provides information on how to create and configure a cluster of 10.1.3.1.0 Oracle BPEL Process Manager for OracleAS Middle Tier installation types to provide faster and more reliable performance.
This chapter contains the following topics:
J2EE instances on which Oracle BPEL Process Manager is installed and clustered must be part of an OPMN cluster. In this environment, J2EE applications that are part of BPEL applications are automatically deployed to all nodes (if they are up and running) when a BPEL application is deployed.
Oracle BPEL Process Manager 10.1.3.1 supports a clustering environment that consists of the following components:
Install either of the following Oracle Application Server SOA advanced installation types:
J2EE Server and Web Server
J2EE Server
During installation, you are prompted to configure this instance to be part of an Oracle Application Server cluster.
Install Oracle BPEL Process Manager for OracleAS Middle Tier installation type.
The tasks in subsequent sections of this chapter describe how to create an Oracle BPEL Process Manager cluster.
The following components are sufficient for Oracle BPEL Process Manager clustering:
Multiple Oracle BPEL Servers (installed as part of the Oracle BPEL Process Manager for OracleAS Middle Tier installation type) on different nodes.
A load balancer to proxy all communication between clients and Oracle BPEL Server. The load balancer can be a software load balancer or hardware load balancer such as F5 BigIP Switch.
A dehydration store database shared by all Oracle BPEL Server installations.
In case of server failure, the next available Oracle BPEL Server running on another server resumes the process from the last dehydration point. All Oracle BPEL Servers share the same database resource and SOAP URLs. As long as a front end load balancer and dispatcher are available, the BPEL processes are shared among the Oracle BPEL Servers in the cluster. If any Oracle BPEL Servers are down, the remaining Oracle BPEL Servers in the cluster pick up and continue processing the uncompleted BPEL processes of the failed Oracle BPEL Server.
Figure 5-1 provides an overview of this Oracle BPEL Process Manager clustering environment.
Figure 5-1 Oracle BPEL Process Manager in a Cluster Environment
See Also:
Oracle Application Server Installation Guide 10g Release 3 (10.1.3.1.0) for your operating system for instructions on installing and clustering the Oracle Application Server SOA advanced installation types
Chapter 2, "Oracle BPEL Process Manager Installation" for instructions on installing Oracle BPEL Process Manager for OracleAS Middle Tier
This section describes how to create an Oracle BPEL Process Manager cluster.
This section contains the following topics:
Notes:
Ensure that you have accurate time synchronization on all nodes in a cluster. For example, if there are wait activities in your process and all nodes in the cluster are not operating with identical times, an activity may finish ahead of the actual wait time when a node fails, as they happen to be in different time zones.For example, on UNIX systems, synchronize the system time through the network time protocol (NTP) (/usr/sbin/ntpdate
).
Follow the instructions in Oracle Application Server Installation Guide 10g Release 3 (10.1.3.1.0) for your operating system to install either of the following Oracle Application Server SOA advanced installation types:
J2EE Server and Web Server
J2EE Server
For example, on host 1:
C:\OraBPELMT
Install Oracle BPEL Process Manager for OracleAS Middle Tier into the same Oracle home as the Oracle Application Server SOA advanced installation type in Step 1.
For example, on host 1:
C:\OraBPELMT
Repeat Steps 1 and 2 to install an Oracle Application Server SOA advanced installation type and Oracle BPEL Process Manager for OracleAS Middle Tier into the same Oracle home directory on a different node (for example, on host 2, host 3, and so on).
Ensure that you point to the same dehydration store during each Oracle BPEL Process Manager for OracleAS Middle Tier installation.
Installation is now complete. The remaining tasks in this section describe how to configure the Oracle BPEL Process Manager cluster.
You now configure the cluster by setting values for the following properties on each node on which you installed the Oracle BPEL Process Manager for OracleAS Middle Tier:
Cluster ID, host, and port
Multicast address
Multicast port
Use a text editor to open the SOA_Oracle_Home
\bpel\system\config\collaxa-config.xml
file.
Set enableCluster
to true
to enable clustering.
<property id="enableCluster">
<name>Cluster enable flag</name>
<value>true</value>
Specify the clusterName
cluster ID, host name, and port values for the node on which the load balancer to use is installed. The cluster ID must be a unique string that is used as a filter for internode communication. If you installed the J2EE Server and Web Server installation type, the cluster ID, host name, and port for the Oracle HTTP Server load balancer appear by default.
<property id="clusterName"> <name>Cluster Id</name> <value>myhost-pc.us.oracle.com:8888</value>
The values for the enableCluster
and clusterName
properties must be the same for all Oracle BPEL Process Manager nodes in the cluster.
Save your changes and exit the file.
Use a text editor to open the SOA_Oracle_Home
\bpel\system\config\jgroups-protocol.xml
file.
See the following step based on whether each node in the cluster is in the same subnet or a different subnet:
Specify the User Datagram Protocol (UDP) mcast_port
and mcast_addr
values.
<config> <UDP mcast_send_buf_size="32000" mcast_port="45788" ucast_recv_buf_size="64000" mcast_addr="228.8.15.24" bind_to_all_interfaces="true" loopback="true" mcast_recv_buf_size="64000" max_bundle_size="48000" max_bundle_timeout="30" use_incoming_packet_handler="false" use_outgoing_packet_handler="false" ucast_send_buf_size="32000" ip_ttl="32" enable_bundling="false"/> <PING timeout="2000" num_initial_members="3"/> <MERGE2 max_interval="10000" min_interval="5000"/> <FD timeout="2000" max_tries="3" shun="true"/> <VERIFY_SUSPECT timeout="1500"/> <pbcast.NAKACK max_xmit_size="8192" use_mcast_xmit="false" gc_lag="50" retransmit_timeout="600,1200,2400,4800"/> <UNICAST timeout="1200,2400,3600"/> . . . . . .
The values for the mcast_port
and mcast_addr
properties must be the same for all Oracle BPEL Process Manager nodes in the cluster.
Save your changes and exit the file.
Go to Step 13.
Edit jgroups-protocol.xml
as follows:
<!-- For cluster across subnet, please use the following tcp config and - change the initial_hosts instead of the above, the initial_hosts that - are going to be participating in the cluster. --> <config> <TCP start_port="7900" loopback="true" send_buf_size="32000" recv_buf_size="64000"/> <TCPPING timeout="3000" initial_hosts="node1[7900],node2[7900]" port_range="3" num_initial_members="3"/> <FD timeout="2000" max_tries="4"/> <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/> <pbcast.NAKACK gc_lag="100" retransmit_timeout="600,1200,2400,4800"/> <pbcast.STABLE stability_delay="1000" desired_avg_gossip="20000" down_thread="false" max_bytes="0" up_thread="false"/> <VIEW_SYNC avg_send_interval="60000" down_thread="false" up_thread="false" /> <pbcast.GMS print_local_addr="true" join_timeout="5000" join_retry_timeout="2000" shun="true"/> </config>
where you replace node1
and node2
with the actual host names.
Save your changes and exit the file.
Go to Step 13.
If you did not specify the URL of the load balancer when prompted during Oracle Application Server SOA advanced installation in "Task 1: Installing the Required Components", you must manually specify this information.
Log in to Oracle BPEL Admin Console.
http://localhost:port/BPELAdmin
Enter the oc4jadmin
username and password.
Set the following two parameters under the Configuration tab to point to the host name and port of the load balancer URL:
Repeat these configuration steps on all remaining nodes on which an Oracle Application Server SOA advanced installation type and Oracle BPEL Process Manager for OracleAS Middle Tier are installed (for example, on host 2).
You must manually restart each of the nodes in the cluster.
Change directories to the following location:
cd SOA_Oracle_Home\opmn\bin
Stop and restart Oracle Application Server:
opmnctl stopall opmnctl startall
Wait for Oracle Application Server to completely restart before starting Oracle Application Server on the next node in the cluster.
Repeat Steps 1 through 3 for each of the remaining nodes in the cluster.
As a best practice, Oracle recommends using ant
, instead of Oracle JDeveloper, to deploy to a production cluster environment.
Go to the host from which to deploy BPEL processes.
Ensure your BPEL process is cluster-ready. For example, if your project uses EJB binding (such as the sample in SOA_Oracle_Home
\bpel\samples\702.Bindings\EJBBinding
), review the following:
Use system variables such as ${jndi_provider_url}
in the WSDL file instead of hard-coding the URL. (See the CreditRatingService.wsdl
file for the sample in the EJBBinding
directory mentioned above.)
If you use EJB bindings, copy or FTP the EJB stub classes to the SOA_Oracle_Home
\bpel\system\classes
directory on each node in the BPEL cluster. As a current limitation in 10.1.3.1 class loading, the EJB client side classes can not be packaged and deployed together with the BPEL suitcase. These classes must reside in the system\classes
directory of each node. You can automate copying or using FTP by using ant
property tasks in your build.xml
file. See your Apache ant
documentation for more details.
Upload any third party libraries by importing shared libraries for each node in the BPEL cluster. See Oracle Containers for J2EE Deployment Guide for details.
Use a text editor to open the SOA_Oracle_Home
\bpel\utilites\ant-orabpel.properties
file.
Define the properties that share common values across multiple nodes. For example:
http.hostname=load_balancer_url http.port=load_balancer_port cluster = true oc4jinstancename = default_group j2ee.hostname = node1.mycompany.com opmn.requestport=6005
where:
http.hostname
and http.port
are the URL and port for the load balancer. The URL must match the value of soapServerUrl set either during Oracle Application Server SOA advanced installation or manually as a postinstallation task in Step 13 of "Task 2: Editing Configuration Files". The value for soapServerUrl must be the same for all nodes.
cluster
indicates that applications are to be deployed in an OC4J cluster. This property is required for J2EE artifacts.
oc4jinstancename
is the OPMN cluster group in which the OC4J container for Oracle Application Server is clustered. A group is a collection of OC4J instances that belong to the same cluster topology.
j2ee.hostname
defines the URL to the OC4J container that includes Oracle Enterprise Manager 10g Application Server Control Console.
opmn.requestport
defines the OPMN request port for the above OC4J container.
Deploy the BPEL suitcase by running ant
.
Note:
For property descriptions, see the comments in SOA_Oracle_Home
\bpel\utilites\ant-orabpel.properties
.
In some situations, deployment of BPEL processes may also be automatically attempted to all nodes in your cluster, including nodes on which Oracle BPEL Process Manager is not installed. If you receive a deployment operation failure message on a node on which Oracle BPEL Process Manager in not installed, it can be ignored.
The host from which to deploy BPEL processes does not need to be part of the Oracle BPEL Process Manager cluster.
See Also:
Oracle Application Server Administrator's Guide for details about OC4J containers and groupsThis chapter describes how to configure an Oracle BPEL Process Manager cluster. This cluster consists of an Oracle Application Server SOA advanced J2EE Server and Web Server installation type or J2EE Server installation type and an Oracle BPEL Process Manager for OracleAS Middle Tier installation type.