[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [wsbpel] Issue - 66 - Zero or multiple matches of correlationset
I agree these are valid issues though I am being thrown off a bit by the use of the terms "Process Instance". On Sub-Issue1: IMO we certainly want to permit the same portType being part of two or more different process definitions; and more specificaly as part of a receive activity that is also a start activity. I see no conflict as long as the process definitions use different CorrelationSets. However the issue being raised is, when the correlation sets are also identical. This is a unique case that would only work if the specific "ports" involved in each process-type are different. Obviously there is no-conflict with the same process(type) instances sharing the same port (diferent instances resolved by the correlationSets). However we do need to warn users of desiging processes that share the same portType/CorrelationSets if they need to share the same physical port as well. Could happen accidentally via two independent efforts that use the same collection Web services. Can we really fix this in the spec? On sub_issue# 2: IMO If there is no matching process-instance and it is not creating a new instance, it should be an error (returned to the sender). Could happen I guess when the message that should have created the instance was *lost* and never received (need for reliability . Regards, Prasad-------- Original Message --------
If I interprete the spec correctly, WITHIN ONE PROCESS INSTANCE, there can be only ONE outstanding <receive> from the same (PortType/Operation/CorrelationSet). I don't see the spec say anything about what happens if DIFFERENT PROCESS INSTANCES are making <receive> from the same (PortType/Operation/CorrelationSet). ProcessA and ProcessB and ProcessC are three DIFFERENT process instances of three DIFFERENT BPEL process definitions. ProcessC has a different initial receive activity, lets say <receive portType="PT2" operation="oper2" createInstance="yes"/> and then it execute the <receive portType="PT1" operation="oper" createInstance="no"/> You can also put in a correlationSet as well. Point #2 is trying to ask two things .... 2a) Can a <receive> happen after the <invoke> ? This is more interesting when the <invoke> is "one-way" where the sender doesn't care about any response. 2b) RM-Semantics ... Is the message considered "delivered successfully" if the BPEL engine gets it and find no matching instances ? Best regards, Ricky At 10:26 AM 9/23/2003 -0700, Yaron Goland wrote: I'm having trouble understanding point #1. How can processA and processB be 'executing' a createInstance='Yes" receive? If createInstance="Yes" then the receive must be an initial activity and initial activities can only occur at the beginning of a process. Doesn't this mean then, more or less by definition, that no process can be waiting on an initial activity since it is initial activities that create process instances? Isn't processC explicitly banned by BPEL? processC (since it is the same type as A and B) must contain the initial activity on PT1/oper. Therefore if processC ever waits for PT1/oper (without an instantiated correlation set) then it is waiting for the same partnerlink/operation as the initial activity which I believe is illegal. Point #2 seems to be asking 'if someone sends a message and if that message cannot be handled, what error gets returned.' That sounds like a configuration issue to me. Is that in scope for BPEL?
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]