Monday, April 26, 2010

Correlation Sets tutorial in SOA 11g using Oracle JDeveloper

Usage of Co-relations sets in SOA 11g has been demonstrated in this blog. Correlation sets are typically used when you need to contact with an already running BPEL instance.

Sample use case of co-relation sets ::
In our current application we need to expose a BPEL service which will take Employee ID as input and asynchronsoulsy calls back another method returning the Name of the given Employee ID.

Now once it receives the Employee ID, it waits on an receive activity to receive the Employee name for the given employee ID. Through a separate service call, we will provide the details of Employee name for the given employee id to the above BPEL instance. Once the BPEL instance receives the name, it proceeds further and callsback the method to return the employee name.

Here the correlation sets are required because when the second service is invoked to provide the details of the employee name, it needs to know to which BPEL instance the details should be provided. This is tracked internally using the correlation sets by setting EmployeeID as the property in the correlation set.

The series of images below demonstrate the development of this sample applicaiton. The completed sample of this tutorial is available here. All the below images are annotated with proper explanation. So the slides are self explanatory.

Slide Show ::
You can access the slide show of images here.


  1. Hello Harish,

    It's a nice post. I have a question. Our ultimate goal is to call the first service whiich has an input emp id. While asynchronously it calls the second service to display the emp name for the give emp id. What is the main purpose to create three elements in schema creation. Why don't we create a single element as employee and inside an employee element why don't we provide emp id, emp name as inputs. Could you please assist me