Hi Dave, I had a bit of trouble getting the correlations to work inside loops as well. Your BPEL(s) didn¹t come across for me so i¹m not sure if you¹re already tried this, but have you tried to break out the sequence/flow inside your loop into It¹s own process (i.e. The first activity inside the loop would be an invoke, and the other process would instantiate a new process on each receive)? Perhaps it would be an easier correlation to create since ode would be spawning an entirely new process to send message(s) to? I would be very interested in your solution when you get this to work.
Thanks, Brian On 1/17/10 5:57 PM, "Dave Chodos" <[email protected]> wrote: > Hi, > I have been trying to get a long-running "counter" process up and running > on ODE, but have run into timeout errors when I make repeated calls to the > process. Specifically, my process has a receive to initiate the process, and > then another receive in a while loop that increments the counter. The initial > call, and the first call to the increment operation appear to work fine. > Subsequent calls to the increment operation, however, simply time out, and > nothing is returned. > > Initially I was working with my own process, but then decided to try out a > sample "counter" process (which I found > here:http://svn.apache.org/repos/asf/ode/trunk/bpel-test/src/test/resources/bp > el/2.0/TestCounter/) to 1) make sure that this process executed properly, and > then 2) try and figure out what was going wrong with my own code. To my > surprise, this process exhibited the same behaviour* (timeouts on increment > calls after the first one), which makes me think that either I'm passing the > wrong parameters into the process, or that there's a problem with my ODE > setup. > > To test out whether the problem was with all correlation-based processes, I > wrote another process that has a sequence of different correlated receive > operations, and this one works fine. However, calling different operations > within a loop (using a pick within a while loop, for instance) results in the > same timeout problem. Thus, it seems that the problem is with calling > receive(s) multiple times within a loop (while, do-while, for-each, etc.) > > I am running Apache Tomcat 5.5.27 on Unix, and using ODE 1.3.3. For what > it's worth, I'm using NetBeans to write my BPEL processes, but I haven't had > problems with other processes I've written, so I don't think it's a NetBeans > issue. > > I've attached the code for my counter process, as well as the code for the > working sequential correlation process. I also pasted my SOAP calls to the > counter process (generated using SoapUI) so that you can see what I've tried > there. I suspect that either there is something wrong with my Apache/ODE setup > or I am misunderstanding something fundamental about how correlation sets work > -- I'm relatively new to BPEL and web services, so this is a definite > possibility :) > > Thanks in advance for any help you can provide. > > Dave Chodos > > * When doing one last test this morning, I found that the counter process is > now timing out on the first attempt to call getAndIncrement, rather than the > second, like it was doing last night. Not sure what to make of this... > However, it is definitely not working as expected :( > > *** call to init operation *** > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:coun="http://example.com/bpel/counter"> > <soapenv:Header/> > <soapenv:Body> > <coun:init> > <name>testProc</name> > <alias>testProcAlias</alias> > </coun:init> > </soapenv:Body> > </soapenv:Envelope> > > *** call to getAndIncrement operation *** > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:coun="http://example.com/bpel/counter"> > <soapenv:Header/> > <soapenv:Body> > <coun:getAndIncrement> > <name>testProc</name> > <alias>testProcAlias</alias> > </coun:getAndIncrement> > </soapenv:Body> > </soapenv:Envelope>
