ActiveVOS
Clustering with
JBoss
Technical Note
Version 1.2 29 December 2011Content
Introduction ... 3
Clustering ... 3
ActiveVOS Nodes Clustering ... 3
Failover ... 4
Load Balancer... 4
ActiveVOS and JBoss Clustering ... 5
Pre-requisites ... 5
Configuring JBoss Cluster ... 6
Verifying the Cluster’s Configuration ... 7
Testing ActiveVOS Clustering on JBoss ... 8
Scenario A – cluster working under normal conditions ... 8
Scenario B – Failure with single node (new request) ... 8
Scenario C – In-flight BPEL Process Tests ... 8
Load Balancer... 9
Deploying ActiveVOS Services to a Cluster... 9
Appendix – Frequently Asked Question ...10
Introduction
Clustering
ActiveVOS leverages the underlying application server’s clustering architecture as summarized here:
Application Server Clustering Technology
Tomcat JGroups – application level
JBoss JGroups – server level
WebLogic Cluster MBeans – server level WebSphere Cluster MBeans - server level
This technical note addresses the clustering of ActiveVOS nodes on JBoss.
ActiveVOS Nodes Clustering
HTTP Load Balancer ` Database App Server Node 1 ActiveVOS Enterprise Server App Server Node 2 ActiveVOS Enterprise Server App Server Node n ActiveVOS Enterprise Server
.
.
.
Failover
In the peer-to-peer clustering, there is no traditional Hot/Cold standby configuration. All nodes participate in the round-robin processing of transactions. This permits load balance to occur continuously and guard against the failover of 1 or more nodes in the cluster.
Load Balancer
A load balancer needs to be configured to direct the traffic to the appropriate Node. This can be either a hardware device or a software based load balancer.
The Apache Web Server can be configured (see Technical Note, High Availability Configuration of ActiveVOS Central with Apache Load Balancer) to route HTTP based requests to nodes in the cluster (e.g. Application Node1 & Application Node2).
ActiveVOS and JBoss Clustering
This example illustrates how to setup clustering and failover with JBoss. The configuration of JBoss Cluster is at the server level and not the application level. HTTP Load Balancer ` JBoss Node1 Mod_jk ActiveVOS Enterprise Server JBoss Node2 Mod_jk ActiveVOS Enterprise Server Database
Pre-requisites
To perform clustering and failover with JBoss, you need to assemble the following:
JBoss Application Servers (2)
Database Server (MySQL, Oracle DB, MS SQL Server, DB2)
Load Balancer (or Apache Web Server)
Configuring JBoss Cluster
You would create 2 JBoss Application server nodes. This document was created using JBoss 5.1.0 GA. Please check JBoss documentation for details about other JBoss versions. The details of JBoss Clustering used in this document are here.
The JBoss all configuration (JBOSS_HOME/server/all) fully enables JBoss clustering. Before starting, it is recommended that you copy the JBOSS_HOME/server/all to JBOSS_HOME/server/<your name> such as node1 or nodeN to keep it separate from the built-in …/all directory. To start each JBoss node use the run.sh or run.bat command, from the JBOSS_HOME/server/bin with the following parameters:
-c the config file from the JBOSS_HOME/server/ directory (all, node1, node2, etc.)
-g the name you assign to this specific node
-u the multicast address used by the cluster to communicate among nodes (the same for all nodes in a cluster)
-b the IP address the node will bind to (listen on)
-Djboss.messaging.ServerPeerID= unique numeric id (1
thru n) for node
On one server machine you might start the first cluster node with
run.bat –c all –g Node1 -u 235.255.100.100 -b 192.168.1.128
–Djboss.messaging.ServerPeerID=1
and then a second server machine you might start the second cluster node with
run.bat –c all –g Node2 -u 235.255.100.100 -b 192.168.1.129 –Djboss.messaging.ServerPeerID=2
On each JBoss node, you would:
install the ActiveVOS Enterprise server
configure ActiveVOS Enterprise server to reference shared database
The Active VOS Server should be started automatically by JBoss. Both JBoss nodes and the Active VOS servers running on them will recognize their intra-cluster peers as they come on line.
Verifying the Cluster’s Configuration
Before verifying cluster setup for the ActiveVOS server clustering, it is important to insure that network connectivity between the clustered machines is working.
1. In machine 1 [SENDER ],open a command prompt and navigate to the JBOSS_HOME > server > all > lib directory and issue the command:
java cp jgroups.jar org.jgroups.tests.McastSenderTest -mcast_addr 228.1.221.1 -port 45566
2. In machine 2 [RECEIVER], open a command prompt and navigate to the JBOSS_HOME > server > all > lib directory and issue the command:
java cp jgroups.jar org.jgroups.tests.McastReceiverTest -mcast_addr 228.1.221.1 -port 45566
3. After hitting the return key in the machine 1, enter some text and then in your machine 2, verify if you receive the same text that you typed in machine 1.
Testing ActiveVOS Clustering on JBoss
After the ActiveVOS cluster has been established, you can execute the following testing scenarios to verify the cluster is working under normal and failure conditions.
Scenario A – cluster working under normal conditions
1. Verify cluster setup - ActiveVOS
Use ActiveVOS Admin console GUIs to verify a. Server is licensed correctly and running
b. BPEL process correctly deployed on both servers 2. Submit BPEL service request (new request)
Use client application to send BPEL request to Apache Web Server/ Load balancer
a. Web Services Explorer
SOAP_UI, web service browser tool can be used for simple testing
Verify BPEL process executes correctly
Scenario B – Failure with single node (new request)
After verifying cluster is operational, the next scenario is to submit a request when Node1 is down.
Submit BPEL service request
Use client application to send BPEL request to Apache Web Server/ Load balancer
SOAP_UI, web service browser tool can be used for simple testing
Verify request is routed to operational Node
Scenario C – In-flight BPEL Process Tests
1. Ensure at least 2 nodes are running
a. Launch a long running transaction using client application
b. Test using BPEL process containing synchronous invokes 2. Test using BPEL process containing asynchronous invokes 3. Locate Node/Server that BPEL process is running on 4. Terminate Node/Server
Load Balancer
Refer to the Introduction section.
Deploying ActiveVOS Services to a Cluster
The following summarizes the steps that occur when deploying ActiveVOS process definitions to a cluster.
` App Server Node 1 ActiveVOS Enterprise Server App Server Node 2 ActiveVOS Enterprise Server App Server Node n ActiveVOS Enterprise Server BPEL Database BPEL BPEL
...
1. Developer/System Admin deploys ActiveVOS (BPEL process) services using Eclipse deployment wizard or ActiveVOS
Administrative GUI, the processes are deployed to a single node in cluster.
4. Each ActiveVOS node in the cluster retrieves BPEL process definitions from the database.
5. Each ActiveVOS node now has a new BPEL process definition available for execution.
Appendix – Frequently Asked Question
1. Can we integrate with the BPM platform using a Virtual IP address or hostname meaning the integration can make use of the cluster configuration?
Yes. The exact configuration would depend on the hardware or software load balancing mechanism you select.
ActiveVOS does leverage clustering capabilities of the application server.
2. Does ActiveVOS have a monitoring daemon for clustering?
The ActiveVOS clusters work in a peer to peer basis.
From a single admin console, you can see the activity across the cluster.
Each ActiveVOS server emits heart beat messages that are broadcast to other members in the cluster.
About Active Endpoints
Active Endpoints (www.activevos.com) ActiveVOS is the leader in service-oriented BPM software for process automation. ActiveVOS empowers project teams to create business process management (BPM)