What You May Need to Know About Limitations on BPEL 2.0 IMA Support
Receive activities are a type of inbound message activity (IMA). Other examples of IMAs are as follows:
-
onMessage branches of a scope activity (in BPEL 1.1) or a pick activity
-
onEvent branches of a scope activity in BPEL 2.0
The BPEL 2.0 specification allows multiple IMAs to work with each other or with other IMAs derived from extension activities. To provide for consistent runtime behavior, the BPEL 2.0 specification allows for correlation sets with the initiate
attribute set to join
.However, Oracle BPEL Process Manager's implementation of the BPEL 2.0 specification does not support this behavior. The only way to support multiple IMAs is by coding them as onMessage branches for a pick activity (that is, setting createInstance
to yes
).Oracle BPEL Process Manager also does not support other forms of multiple IMAs, such as a flow activity with two branches, each with a receive activity and with createInstance
set to yes
and correlation sets with initiate
set to join
.
As a workaround, you must design two different BPEL processes with the two receive activities in alternating order, as follows:
-
Process1 with receive1 followed by receive2, and only receive1 having
createInstance
set toyes
. -
Process2 with receive2 followed by receive1, and only receive2 having
createInstance
set toyes
.
The same also applies for any other combination of IMAs, such as a receive activity and pick activity, or two pick activities.