Ok... I will try to do it asap.

I'm continuing testing the different stuff in BPEL so problably more issues are to come ;) till I get knowledge of the programming methology.

TA
Jorge

On 10/08/2011 13:37, Waruna Ranasinghe wrote:
Hi,

This looks like a bug to me.
Please create a jira for this and attach the process to the jira as well.

Generally, if a message comes in to the ODE without a instance to be routed,
are stored so that the message will be eventually routed to the instance.
There may be a bug in this functionality.

Thanks,
Waruna
On 9 August 2011 19:42, George<[email protected]>  wrote:

There it goes.

TA


On 09/08/2011 7:14, Waruna Ranasinghe wrote:

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="**ServiceEmulatorPLSetUserReques**t">
        </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>










Reply via email to