Tuesday, October 25, 2011

Oracle SOA Suite 10g to Oracle SOA Suite 11g Migration – FlowN execution issue

Oracle SOA Suite 10g to Oracle SOA Suite 11g Migration – FlowN execution issue:


We had a flow in 10g that invokes another composite inside the FlowN activity with different data based on the index variable and it was working properly but after the migration the composite has always invoked with the payload of the first flow branch.

We did some analysis and found that 10g FlowN activity and 11g FlowN activities are working in different manner.

In 10g ,the activities in the same flow branch is executed in sequence that after completing the first branch the second branch getting executed
But in 11g, the execution of the activities are swapped between branches that the first activity in the first branch is executed then the first activity in second branch then second activity in first branch and second activity in second activity and so on.

In 10g even though we are using the global variables inside the flowN activity each flowN branch is working with different message/payload based on the Index Variable.
In 11g if we are using the global variables inside the flowN activity all the flowN branches are executed with the same message/payload of the first flow branch.
To overcome this issue we have copied the global variable data to local FlowN scope variable and used the local variable inside the FlowN.

Below is the detailed execution of activities within FlowN in 10g:-

FlowN with two branches and both the branches are working on the same global variable ‘Varaible_1’
The value of ‘Varaible_1’ has incremented to 1 in Assign_2 and to 2 in Assign_3 (Assign_2 and Assign_3 data’s are displayed together) of Flow2


The value of ‘Varaible_1’ has incremented to 3 in Assign_2 and to 4 in Assign_3 (Assign_2 and Assign_3 data’s are displayed together) of Flow1





The activities are executed in the following order


Below is the detailed execution of activities within FlowN in 11g:

FlowN with two branches and both the branches are working on the same global variable ‘Varaible1’
The value of ‘Varaible1’ has incremented to 1 in Assign1 of Flow2




The value of ‘Varaible1’ has incremented to 2 in Assign1 of Flow1


The value of ‘Varaible1’ has incremented to 3 in Assign2 of Flow2



The value of ‘Varaible1’ has incremented to 4 in Assign 2 of Flow1





The activities are executed in the following order




Summary

In 10g the each branch in FlowN activity is executed in sequence that is after completing one branch the activities in the next branch are getting executed. In 11g the execution of the activities are swapped between branches. Steps are not truly executed at the same time but the branches in the Flow get their turn to execute the next step.

5 comments:

  1. I faced exactly the same issue and fixed by using local variables to scope of FlowN activity in SOA Suite 11g.

    Regards,
    Deb

    ReplyDelete
  2. I already knew it but you explained it very nicely.

    ReplyDelete
  3. what use of FTP adpter in SOA?

    ReplyDelete
    Replies
    1. The Oracle FTP Adapter enable a BPEL process or a Mediator to exchange (read and write) files on remote file systems (through use of the file transfer protocol (FTP)). The file contents can be both XML and non-XML data formats.
      Refer the below url for more details -
      http://docs.oracle.com/cd/E23943_01/integration.1111/e10231/adptr_file.htm

      Regards
      Albin i

      Delete