Hi Jorge, Will you be able to attach your whole process as a zip file?
Thanks, Waruna On 9 August 2011 05:11, George <[email protected]> wrote: > Hi again, > > More info I forgot to mention. > > A way to replicate the problem is: > 1) Call the "process" function for the BPEL process with customerID="jo" > 2) Call the "seller" fuction for the BPEL process with customerID="jo" > 3) Repeat the call to the "seller" fuction for the BPEL process with > customerID="jo". > > After step 3 I cannot use customerID="jo" any longer, as it seems that the > system got corrupted. The BPEL process point of entrance is not the seller > but the process function. How is it possible that happens? > > On 08/08/2011 18:55, George wrote: > > Hi all, > > > > I have created a simple project to test the correlation in BPEL, but I've > got an unexpected behaviour (or at least I think it is). Let's show you the > example while trying to explain the output. > > > > The process is quite simple, as it is a receive - assign - invoke - reply > - Pick - invoke1 or invoke2. The idea is that the receive initialize the > correlation set or variable property, and then in the pick it is used to > continue the same process. > > > > I call the BPEL WS using the process method and customerID "jo". Then I > check in ODE management web and the process is active and it has returned > the expected value from the reply. So I guess it is waiting at the pick > function. Now I call the BPEL WS with the seller function and the process is > completed. Till now, no problem and everything as expected. > > > > I repeat the process with other different customerIDs and there is no > problem. > > > > However if I repeat a call to BPEL WS using the process method and > customerID "jo" (the same as the first call), I get the answer from the > reply but when I check the process state the ODE management web shows the > project is completed. Why is it not waiting at the pick and therefore > active? If I call the seller function to trigger the pick it seems that > nothing happens as far as the ODE log display (I have DEBUG enabled). > > > > Any idea? This is the normal behaviour? Could you further explain the > correlation behaviour? Does it mean that once you have a correlation > variable set to a value it is keep in the internal database for the whole > life of the server? How do you can set the correlation set to "off"? > > > > TA. > > Jorge > > > > > > Here is main code for the correlation example: > > > > <vprop:property name="customerID" type="xsd:string"/> > > > > <vprop:propertyAlias propertyName="tns:customerID" > > messageType="tns:BPEL_MultipleRequestMessage" > > part="payload"> > > <vprop:query>tns:input</vprop:query> > > </vprop:propertyAlias> > > > > <vprop:propertyAlias propertyName="tns:customerID" > > messageType="tns:sellerRequestMessage" > > part="parameters"> > > <vprop:query>tns:input</vprop:query> > > </vprop:propertyAlias> > > > > <vprop:propertyAlias propertyName="tns:customerID" > > messageType="tns:buyerRequestMessage" > > part="parameters"> > > <vprop:query>tns:input</vprop:query> > > </vprop:propertyAlias> > > > > > > ........... > > > > > > <bpel:receive name="receiveProcess" partnerLink="client" > > portType="tns:BPEL_Multiple" operation="process" variable="input" > > createInstance="yes"> > > <bpel:correlations> > > <bpel:correlation set="order" initiate="yes" /> > > </bpel:correlations> > > </bpel:receive> > > > > .......... > > > > > > <bpel:pick name="PickToStopForAWhile"> > > <!-- Seller --> > > <bpel:onMessage partnerLink="client" > > portType="tns:BPEL_Multiple" > > operation="seller" > > variable="inputSeller"> > > <bpel:correlations> > > <bpel:correlation set="order" initiate="no"/> > > </bpel:correlations> > > <bpel:sequence name="Call1"> > > <bpel:invoke name="InvokeServiceEmulator" > partnerLink="ServiceEmulatorPL" > > operation="setUser" portType="srvemu:ServiceEmulatorPortType" > > inputVariable="ServiceEmulatorPLSetUserRequest"> > > </bpel:invoke> > > </bpel:sequence> > > </bpel:onMessage> > > <!-- Buyer --> > > <bpel:onMessage partnerLink="client" > > portType="tns:BPEL_Multiple" > > operation="buyer" > > variable="inputBuyer"> > > <bpel:correlations> > > <bpel:correlation set="order" initiate="no" /> > > </bpel:correlations> > > <bpel:sequence name="Call2"> > > <bpel:invoke name="InvokeCalculator" partnerLink="CalculatorPL" > > operation="Add" portType="calc:CalculatorPortType" > inputVariable="CalculatorPLAddRequest" > > outputVariable="CalculatorPLAddResponse"> > > </bpel:invoke> > > </bpel:sequence> > > </bpel:onMessage> > > </bpel:pick> > > > > -- ----------------------------------------------------- Regards, Waruna Ranasinghe mob: 0724318285 blog: http://warunapw.blogspot.com twitter: http://twitter.com/warunapww http://lk.linkedin.com/in/waruna www.facebook.com/waruna.ranasinghe
