ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Chodos <davecho...@gmail.com>
Subject Re: Correlation set problem
Date Tue, 19 Jan 2010 22:59:12 GMT
Hi Brian,
   Unfortunately, I am also having some problems getting invocation to work
properly (see my recent post :( ), but once I get that figured out I will
give your idea a try and see if it helps. Although my mail program says that
it attached the BPEL files, according to the mailing list archive they
didn't actually get attached. Thus, I have included the BPEL files at the
end of this email. Thanks,

Dave

*** SimpleTest.bpel ***
<?xml version="1.0" encoding="UTF-8"?>
<process
    name="SimpleTest"
    targetNamespace="
http://enterprise.netbeans.org/bpel/SimpleTest/SimpleTest"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:sxt="
http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace"
    xmlns:sxed="
http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor"
    xmlns:tns="http://enterprise.netbeans.org/bpel/SimpleTest/SimpleTest"
xmlns:ns0="http://j2ee.netbeans.org/wsdl/SimpleTest">
    <import namespace="http://j2ee.netbeans.org/wsdl/SimpleTest"
location="SimpleTest.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>


    <partnerLinks>
        <partnerLink name="PartnerLink1" xmlns:tns="
http://j2ee.netbeans.org/wsdl/SimpleTest" partnerLinkType="tns:SimpleTest"
myRole="SimpleTestPortTypeRole"/>
    </partnerLinks>

    <variables>
        <variable name="CallCount" type="xsd:int"/>
        <variable name="SimpleTestStartOpOut"
messageType="ns0:SimpleTestStartOpResponse"/>
        <variable name="SimpleTestStartOpIn"
messageType="ns0:SimpleTestStartOpRequest"/>
        <variable name="SimpleTestOperationOut" xmlns:tns="
http://j2ee.netbeans.org/wsdl/SimpleTest"
messageType="tns:SimpleTestOperationResponse"/>
        <variable name="SimpleTestOperationIn" xmlns:tns="
http://j2ee.netbeans.org/wsdl/SimpleTest"
messageType="tns:SimpleTestOperationRequest"/>
    </variables>

    <correlationSets>
        <correlationSet name="CorrelationSet1" properties="ns0:InstanceID"/>
    </correlationSets>
    <sequence>
        <receive name="Receive1" createInstance="yes"
partnerLink="PartnerLink1" operation="SimpleTestStartOp"
portType="ns0:SimpleTestPortType" variable="SimpleTestStartOpIn">
            <correlations>
                <correlation set="CorrelationSet1" initiate="yes"/>
            </correlations>
        </receive>
        <assign name="Assign1">
            <copy>
                <from>0</from>
                <to variable="CallCount"/>
            </copy>
            <copy>
                <from variable="SimpleTestStartOpIn" part="part1"/>
                <to variable="SimpleTestStartOpOut" part="part1"/>
            </copy>
        </assign>

        <reply name="Reply1" partnerLink="PartnerLink1"
operation="SimpleTestStartOp" portType="ns0:SimpleTestPortType"
variable="SimpleTestStartOpOut">
            <correlations>
                <correlation set="CorrelationSet1" initiate="no"/>
            </correlations>
        </reply>
        <while name="While1">
            <condition>$CallCount &lt; 5</condition>
            <sequence name="Sequence1">
                <receive name="Receive2" partnerLink="PartnerLink1"
operation="SimpleTestOperation" portType="ns0:SimpleTestPortType"
createInstance="no" variable="SimpleTestOperationIn">
                    <correlations>
                            <correlation set="CorrelationSet1"
initiate="no"/>
                        </correlations>
                </receive>
                <assign name="Increment">
                    <copy>
                            <from>$CallCount + 1</from>
                                <to variable="CallCount"/>
                        </copy>
                </assign>
                <assign name="Print">
                    <copy>
                            <from>concat('Param: ',
$SimpleTestOperationIn.InputPart1, ' Count: ', string($CallCount))</from>
                                <to variable="SimpleTestOperationOut"
part="OutputPart1"/>
                        </copy>
                </assign>
                <reply name="Reply2" partnerLink="PartnerLink1"
operation="SimpleTestOperation" portType="ns0:SimpleTestPortType"
variable="SimpleTestOperationOut"/>
            </sequence>
        </while>
    </sequence>
</process>

*** SimpleTest_Seq.bpel ***
<?xml version="1.0" encoding="UTF-8"?>
<process
    name="SimpleTest"
    targetNamespace="
http://enterprise.netbeans.org/bpel/SimpleTest/SimpleTest"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:sxt="
http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace"
    xmlns:sxed="
http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor"
    xmlns:tns="http://enterprise.netbeans.org/bpel/SimpleTest/SimpleTest"
xmlns:ns0="http://j2ee.netbeans.org/wsdl/SimpleTest">
    <import namespace="http://j2ee.netbeans.org/wsdl/SimpleTest"
location="SimpleTest.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>


    <partnerLinks>
        <partnerLink name="PartnerLink1" xmlns:tns="
http://j2ee.netbeans.org/wsdl/SimpleTest" partnerLinkType="tns:SimpleTest"
myRole="SimpleTestPortTypeRole"/>
    </partnerLinks>

    <variables>
        <variable name="SimpleTestThirdOpOut"
messageType="ns0:SimpleTestThirdOpResponse"/>
        <variable name="SimpleTestThirdOpIn"
messageType="ns0:SimpleTestThirdOpRequest"/>
        <variable name="CallCount" type="xsd:int"/>
        <variable name="SimpleTestStartOpOut"
messageType="ns0:SimpleTestStartOpResponse"/>
        <variable name="SimpleTestStartOpIn"
messageType="ns0:SimpleTestStartOpRequest"/>
        <variable name="SimpleTestOperationOut" xmlns:tns="
http://j2ee.netbeans.org/wsdl/SimpleTest"
messageType="tns:SimpleTestOperationResponse"/>
        <variable name="SimpleTestOperationIn" xmlns:tns="
http://j2ee.netbeans.org/wsdl/SimpleTest"
messageType="tns:SimpleTestOperationRequest"/>
    </variables>

    <correlationSets>
        <correlationSet name="CorrelationSet1" properties="ns0:InstanceID"/>
    </correlationSets>
    <sequence>
        <receive name="Receive1" createInstance="yes"
partnerLink="PartnerLink1" operation="SimpleTestStartOp"
portType="ns0:SimpleTestPortType" variable="SimpleTestStartOpIn">
            <correlations>
                <correlation set="CorrelationSet1" initiate="yes"/>
            </correlations>
        </receive>
        <assign name="Assign1">
            <copy>
                    <from>concat('Initializing workflow: ',
$SimpleTestStartOpIn.part1)</from>
                        <to variable="SimpleTestStartOpOut" part="part1"/>
                </copy>
            <copy>
                <from>0</from>
                <to variable="CallCount"/>
            </copy>
        </assign>
        <reply name="Reply1" partnerLink="PartnerLink1"
operation="SimpleTestStartOp" portType="ns0:SimpleTestPortType"
variable="SimpleTestStartOpOut"/>
        <receive name="Receive2" partnerLink="PartnerLink1"
operation="SimpleTestOperation" portType="ns0:SimpleTestPortType"
createInstance="no" variable="SimpleTestOperationIn">
            <correlations>
                    <correlation set="CorrelationSet1" initiate="no"/>
                </correlations>
        </receive>
        <assign name="Increment">
            <copy>
                    <from>$CallCount + 1</from>
                        <to variable="CallCount"/>
                </copy>
        </assign>
        <assign name="Print">
            <copy>
                    <from>concat('Response: ',
$SimpleTestOperationIn.InputPart1, 'Call count: ',
string($CallCount))</from>
                        <to variable="SimpleTestOperationOut"
part="OutputPart1"/>
                </copy>
        </assign>
        <reply name="Reply2" partnerLink="PartnerLink1"
operation="SimpleTestOperation" portType="ns0:SimpleTestPortType"
variable="SimpleTestOperationOut">
                    </reply>
        <receive name="Receive3" partnerLink="PartnerLink1"
operation="SimpleTestThirdOp" portType="ns0:SimpleTestPortType"
createInstance="no" variable="SimpleTestThirdOpIn">
            <correlations>
                    <correlation set="CorrelationSet1" initiate="no"/>
                </correlations>
        </receive>
        <assign name="IncrementAgain">
            <copy>
                <from>$CallCount + 1</from>
                <to variable="CallCount"/>
            </copy>
        </assign>
        <assign name="PrintAgain">
            <copy>
                    <from>concat('Response: ', $SimpleTestThirdOpIn.part1, '
New call count: ', string($CallCount))</from>
                        <to variable="SimpleTestThirdOpOut" part="part1"/>
                </copy>
        </assign>
        <reply name="Reply3" partnerLink="PartnerLink1"
operation="SimpleTestThirdOp" portType="ns0:SimpleTestPortType"
variable="SimpleTestThirdOpOut"/>
    </sequence>
</process>

On Mon, Jan 18, 2010 at 10:18 AM, Brian Lund <brian.lund@concur.com> wrote:

> 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" <davechodos@gmail.com> 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>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message