|Skip Navigation Links|
|Exit Print View|
|Oracle Java CAPS BPEL Designer and Service Engine User's Guide Java CAPS Documentation|
Correlation mechanism is used to route messages to the right processes. The section describes how to define correlation.
The BPEL Service Engine runtime uses a mechanism called correlation to track the multiple, long-running exchanges of messages that typically take place between a BPEL process and its partner services. The correlation mechanism helps to route messages to appropriate process instances.
A message in a conversation is connected with a composite value made up of one or more properties defined in a WSDL file. A property is a field within a message identified by a query. Queries are specified by special constructs called property aliases.
Thus, correlation sets are used to support stateful collaboration between web services in a standardized, implementation independent way. Correlation sets rely on the correlation data tokens stored in the message envelopes, headers, or business documents themselves. The declaration of correlation relies on the declarative properties of messages.
The following terms apply to correlation:
Property — A property is an arbitrarily named token. It must be a simple type. It is defined in a WSDL file.
Property alias — A property alias is a rule that tells the BPEL runtime how to map data from a message into a property value. You can define several property aliases for a property that will be used as a correlation value. You would do this if the same property value needs to be mapped from more than one message, which is typical in correlation. For instance, if two different messages have the same part that you want to extract. Then you need one property and two property aliases - one for each message). Property aliases are defined in a WSDL file.
Correlation set — A correlation set is a compound key made up of one or more property values, actually it is a property set. The BPEL runtime uses this key to ensure that messages are routed to the right process instance for a particular conversation. A correlation set is defined in a BPEL file.
Correlations — Correlations mark the activities, identify the correlation sets by name and indicate which correlation sets occur in the messages being sent or received.
Correlation sets can be defined for the Process element. The defined correlation sets are then used by message activities (Invoke, Reply, and Receive), which describe a conversation between a process and a partner service.
Correlation sets on Invoke activities are used to verify that outbound messages contain data that is consistent with the data found within specified correlation set instances.
Correlation set names are also used in the onMessage branches of Pick elements and in the onEvent variant of event handlers.
There are two ways to define correlation:
Use the Correlation wizard which will automatically perform all the main steps. This is the most easy and convenient way to define correlation. Usually you do not have to know in details how does correlation work. The Wizard will make it for you.
Define correlation manually
The Correlation Wizard is used to define correlations for two messaging activities, such as Invoke, Reply, Receive, OnEvent or onMessage branch of Pick element.
Note - The wizard is only used to create a correlation. You cannot use the wizard to edit a correlation.
The Correlation Wizard opens. If correlation is required for an activity, the Designer places a warning icon on the diagram.
Connect the messages parts that define correlation by selecting the node in the Output (source) pane and dragging your cursor to the appropriate node in the Input (destination) pane.
Note that properties and property aliases are written to a new WSDL file that you can see among the process files of the BPEL Module. The original WSDL file for the partner service is imported to the new WSDL. For all correlation created using the wizard, both properties and property aliases are written to this file. Partner WSDL files are imported. The correlation set defined in the BPEL file refers to the new WSDL.
To define a correlation set:
Alternatively, in the BPEL Logical View of the Navigator window, right-click the Correlation Sets node and choose Add Correlation Set.
By default, the Property Chooser dialog box only shows those files that have already been referenced in the process. However, the project may contain other WSDL and XSD files which have not yet been imported into the process. If you select a type for the new property that is defined in a non-imported file, the IDE will automatically add the required import to the BPEL process.
The correlation sets defined for the Process have global visibility. The name of a correlation set must be unique among the names of other correlation sets.
Yes – The activity must attempt to initiate the correlation set.
Join – The activity must attempt to initiate the correlation set if the correlation set is not yet initiated.
No – The activity must not attempt to initiate the correlation set. This is the default option.
From the Pattern drop-down list, select a pattern attribute to indicate whether the correlation applies to the outbound message (request), inbound message (response), or both (request-response).