I have read about both WS-Addressing & Correlation concepts in BPEL to handle correlation between the clients of the invoked process.
WS-Addressing : automatically manages the correlation between the clients of the invoked process. (user need not worry to about it :))
Correlation : This we need to handle manually by declaring correlation sets using the unique value we get from the request XML.
I need correlation concept explanation briefly. And how it is achieved ?? and what for condition it is used ?? and some pointers ?? (these questions may be am not sure)
Scenario 1 : Invoking & Receiving Asynchronous BPEL process from the Asynchronous BPEL process(exposed as soap web service) -> this works :)
Scenario 2 : Invoking & Receiving Asynchronous BPEL process from the Synchronous BPEL process(exposed as soap web service) -> this doesn't :(
while executing the scenario 1, this works without any error and I can investigate the flow trace and I am getting the desired output
But while invoking the scenario 2 results in fault saying
Non Recoverable System Fault :
Waiting for response has timed out. The conversation id is null. Please check the process instance for detail.
step 2) Within this process add a scope, in that scope add four activity namely
Timeout is a known issue when using massages invocation. The system default for timeout is 300s'.
Clearly this can be configured.
If you are calling an asynch' bpel process, you shouldn't have any problem receiving a response (using receive activity).
The thing is - if your callee process(asynch'), perform some actions (call other services etc..), that takes some time, you might end up with timeout exception.
So, the question is – is it possible your actions in the callee process increase the process duration?
my exposed synchronous bpel process(2-way) expects the result back from the Asynchronous bpel process(2-way).
And in my synchronous bpel process, I have invoke activity to invoke asynchbpel_process_ and following it a receive activity to receive responce from asynchbpel_process_
If this scenario can be achieved, then illustrate the solution. It is ok to increase the process duration for my process.
Illustrate how to achieve this scenario ?
I really hope I understood your request.
I've created and uploaded for you a very simple example (v220.127.116.11):
Let me know if that is what you wanted.
(I've used also a scope with catchAll activity for your other post)
Thanks exactly this is what I am looking for. your example works as expected. But I am doing something very similar, but getting the timeout exception.
I have uploaded my example here https://www.dropbox.com/s/4d0gmj62ofmjcjx/MyScenarioApp.rar
Examine my process, tell me where I am going wrong.
But let me tell you, I haven't explicitly added these properties. Just added 2 bpel process & configured required activities inside the two bpel process. How exactly these properties get added into the composite.xml ?
I have noticed this carefully. My Jdeveloper version 18.104.22.168.0
Whenever I drag a BPEL Process from component palette to components area, then in the process dialog apart from name, namespace, template, service name, input & output --> there is one more field is there called delivery.
case 1: if i select Asynchronous BPEL Process, then delivery values are async.persist/async.cache/sync
case 2: if i select Synchronous BPEL Process, then delivery changes to transaction having 2 values required/requiresNew
case 3: if i select one way BPEL Process, then case 1
The persistence policy(Delivery option) is very important when you build your orchestration process/s.
When you call one bpel process to another, or receive a callback from the other, you should consider the policy/rules that those calls
communicate. The policy you will choose will affect: the behavior of the processes, performance, stability, correct business flow etc…
In 22.214.171.124 version, you have the option to choose those properties from the wizard.
In lower versions(11.1.1.X) you can add those properties manually.