Purpose
In a HA Deployments, when a bpel process is executed you cannot identify which server is currently executing of a given instance. It's often a requirement to test a BPEL Process in HA Environment and prove that which server is actually executing. As you may be aware when you execute a BPEL Process you cannot tell which node has executed that at any given time.
The following example helps you identifying which server is executing so that you can do some HA testing.
Step 1
Create a Simple Synchronous BPEL Process and name it as "HAHelloWorld"
Step 2
Drag and Drop "Java Embedding" Activity between "receive" and "reply".
Step 3
Drag and Drop "Assign" Activity and Initialize the Variable "result" with some text (Note: anything it doesn't matter all you are doing here is initializing the result variable)
Step 4
Double click on "Java Embedding"Activity and copy the following details
/*Set Title*/
String prop = System.getProperty("server.id");
setVariableData("outputVariable", "payload", "/client:HAHelloWorldProcessResponse/client:result", prop);
setTitle("Server:"+prop);
Step 5
Make sure your BPEL Process looks like below
Step 6
Goto opmn.xml in SOA Installation under opmn\conf directory on Node1 and peform the following.
Edit opmn.xml and add "-Dserver.id=vm104" in the "java-options" of process-type "OC4J_SOA"
It should look like below see the highlighted in red
Perform the same above operations in opmn.xml in SOA Installation under opmn\conf directory on Node2 just make the servier.id=vm105
Step 7
Restart both nodes
Step 8
Deploy the BPEL Process & Test.
When you run the BPEL Test and go to Instances tab you will see below
Download
You can download the complete code Here