The TCP settings in jgroups-protocol.xml are designed for clustering across subnets, and Oracle seems to generally recommend using multicast otherwise. Unfortunately, the Enterprise Deployment Guide (10.1.3.3) does not describe how to configure TCP-based clustering for BPEL Process Manager.
When to use TCP for BPEL Process Manager Clustering
You should you use node-to-node (TCP) instead of multicast (UDP) when configuring a BPEL Process Manager cluster if a combination of the conditions below apply:
- You cannot configure multicast.
- Your BPEL Process Manager servers communicate across subnets.
- You have a very large number of nodes in your cluster.
- Performance of UDP is slow in your environment.
Configuring TCP-based clustering for BPEL Process Manager
Perform the following on all BPEL Process Manager servers in your cluster.
1. Comment out the UDP multicast configuration in jgroups-protocol.xml:
<TCP start_port="7900" loopback="true" send_buf_size="32000" recv_buf_size="64000"/>
<TCPPING timeout="3000" initial_hosts="server1,server2" port_range="3" num_initial_members="3"/>
3. Restart OPMN.
If configured correctly, the log file SOA_GROUP~OC4J_SOA~SOA_GROUP~1.log should show it working with entries similar to:
|INFO: server socket created on 192.168.28.210:7900|
GMS: address is 192.168.28.210:7900
INFO: created socket to 192.168.28.207:7900
INFO: created socket to 192.168.28.210:7900
|WARNING: discarded message from different group "server2:8880" (our group is "server1:7777"). Sender was192.168.28.207:7900|
WARNING: discarded message from different group "server2:8880" (our group is "server1:7777"). Sender was192.168.28.207:7900