You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Pavel Trava <tr...@yahoo.com> on 2008/10/13 23:36:31 UTC

eventHandlers and conflictingReceive

Hello.
I would like to ask you for advice with eventHandlers. I prepared some very simple BPEL project, which does almost nothing (only waits),
but there is one correlationSet and one eventHandler. Process has 2 operations: process (like a init) and eventOper. When I call eventOper
(onEvent), the process instance fails with error response:conflictingReceive.

Structure of my process is:
<process>
    imports...
    one partnerLink (my own)
    variables used for receive and reply
    one correlationSet
    <sequence name="main">
        <receive>...</receive>
        <assign>...</assign>
        <reply>...</reply>
        <scope name="waitScope">
           <variables used for eventHandlers...>
            <eventHandlers>
                <onEvent operation="eventOper"....>
                   reference to correlation defined above
                    wait activity (for 1 second)
                </onEvent>
            </eventHandlers>
           <bpws:wait name="Wait"><bpws:for><![CDATA['PT20S']]></bpws:for></bpws:wait>
          </scope>
    </sequence>
</process>

I am sending the following message by sendsoap.bat (to process/eventOper operations):
<?xml version="1.0" encoding="utf-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <ns2:SimpleProcessRequest xmlns:ns2="http://test/SimpleProcNS">
        <ns2:input>user0001</ns2:input>
    </ns2:SimpleProcessRequest>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

When only 'process' operation is called from external client, then everything works OK. Reply is received immediately and after 20 seconds the status of process changes from ACTIVE to COMPLETED (checked by "InstanceManagement.listAllInstances" API). But when during this 20 seconds I call the operation 'eventOper', then the process finishes in FAILED state and I receive
<faultcode>soapenv:Server</faultcode>
<faultstring>axis2ns56:conflictingReceive</faultstring>

I don't understand the log messages, but it seems there is nothing special in the log-file, several debug messages and one error message:
13.10.2008 23:05:44 [ERROR] GeronimoLog.error(104) - org.apache.ode.bpel.common.FaultException: {Selector plinkInstnace={PartnerLinkInstance partnerLinkDecl=OPartnerLink#17,scopeInstanceId=2597},ckey={CorrelationKey setId=16, values=[user0001]},opName=eventOper,oneWay=no,mexId=<null>,idx=0}

Please, can you help me? Or can you send me some working example with eventHandlers and correlationSets? I am working on this problem more than 2 days. I use Tomcat 5.5.26 and Apache ODE 1.2. I can send also the whole project (SimpleProcess.bpel, SimpleProcess.wsdl, SimpleProcessArtifcats.wsdl, deploy.xml), if the information above will not be sufficient.


      

Re: eventHandlers and conflictingReceive

Posted by Matthieu Riou <ma...@offthelip.org>.
On Mon, Oct 13, 2008 at 2:36 PM, Pavel Trava <tr...@yahoo.com> wrote:

> Hello.
> I would like to ask you for advice with eventHandlers. I prepared some very
> simple BPEL project, which does almost nothing (only waits),
> but there is one correlationSet and one eventHandler. Process has 2
> operations: process (like a init) and eventOper. When I call eventOper
> (onEvent), the process instance fails with error
> response:conflictingReceive.
>
> Structure of my process is:
> <process>
>    imports...
>    one partnerLink (my own)
>    variables used for receive and reply
>    one correlationSet
>    <sequence name="main">
>        <receive>...</receive>
>        <assign>...</assign>
>        <reply>...</reply>
>        <scope name="waitScope">
>           <variables used for eventHandlers...>
>            <eventHandlers>
>                <onEvent operation="eventOper"....>
>                   reference to correlation defined above
>                    wait activity (for 1 second)
>                </onEvent>
>            </eventHandlers>
>           <bpws:wait
> name="Wait"><bpws:for><![CDATA['PT20S']]></bpws:for></bpws:wait>
>          </scope>
>    </sequence>
> </process>
>
> I am sending the following message by sendsoap.bat (to process/eventOper
> operations):
> <?xml version="1.0" encoding="utf-8" ?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="
> http://schemas.xmlsoap.org/soap/envelope/">
>  <SOAP-ENV:Body>
>    <ns2:SimpleProcessRequest xmlns:ns2="http://test/SimpleProcNS">
>        <ns2:input>user0001</ns2:input>
>    </ns2:SimpleProcessRequest>
>  </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> When only 'process' operation is called from external client, then
> everything works OK. Reply is received immediately and after 20 seconds the
> status of process changes from ACTIVE to COMPLETED (checked by
> "InstanceManagement.listAllInstances" API). But when during this 20 seconds
> I call the operation 'eventOper', then the process finishes in FAILED state
> and I receive
> <faultcode>soapenv:Server</faultcode>
> <faultstring>axis2ns56:conflictingReceive</faultstring>
>
> I don't understand the log messages, but it seems there is nothing special
> in the log-file, several debug messages and one error message:
> 13.10.2008 23:05:44 [ERROR] GeronimoLog.error(104) -
> org.apache.ode.bpel.common.FaultException: {Selector
> plinkInstnace={PartnerLinkInstance
> partnerLinkDecl=OPartnerLink#17,scopeInstanceId=2597},ckey={CorrelationKey
> setId=16, values=[user0001]},opName=eventOper,oneWay=no,mexId=<null>,idx=0}
>
> Please, can you help me? Or can you send me some working example with
> eventHandlers and correlationSets? I am working on this problem more than 2
> days. I use Tomcat 5.5.26 and Apache ODE 1.2. I can send also the whole
> project (SimpleProcess.bpel, SimpleProcess.wsdl,
> SimpleProcessArtifcats.wsdl, deploy.xml), if the information above will not
> be sufficient.
>
>
The WSDL would probably help but what sounds weird is that you're sending
twice the same message for two different operations. You seem to be using a
document literal binding, in which case for each operation on your service,
the element associated with each message should be different. So you should
be sending a message with a body element named something like processRequest
and another with a body element of eventOperRequest.

You didn't get any warning at deployment? I thought we had a little check to
detect those situations.

Thanks,
Matthieu


>
>

Re: eventHandlers and conflictingReceive

Posted by Rafal Rusin <ra...@gmail.com>.
Hello, 

I've got a similar error on current ode1x branch (rev. 747772).
To reproduce this, I modified Sean Ahn's test case. So please apply provided
patch and run:
buildr clean test:BpelActivityTest
from axis2-war directory. 

You will get:
DEBUG - GeronimoLog.debug(66) | Fault response message:
{http://docs.oasis-open.org/wsbpel/2.0/process/executable}conflictingReceive

a few times for a second invocation of new correlation ID. 

I introduced a loop, because conflictingReceive appears in about 50% of
requests. 

Note that in IN-ONLY message exchanges, this error doesn't appear. 

Can I create a bug request for it?

Regards,
Rafal Rusin

http://www.mimuw.edu.pl/~rrusin/



Pavel Trava wrote:
> 
> Hello, I sent the new message to this thread, but not as reply to this
> email.
> There is also zip file attached with bpel, wsdl and other files I used in
> my SimpleProcess.
> 
> 
> 
> ----- Original Message ----
> From: Matthieu Riou <ma...@offthelip.org>
> To: user@ode.apache.org
> Sent: Tuesday, October 14, 2008 4:45:39 PM
> Subject: Re: eventHandlers and conflictingReceive
> 
> The WSDL would probably help but what sounds weird is that you're sending
> twice the same message for two different operations. You seem to be using
> a
> document literal binding, in which case for each operation on your
> service,
> the element associated with each message should be different. So you
> should
> be sending a message with a body element named something like
> processRequest
> and another with a body element of eventOperRequest.
> 
> You didn't get any warning at deployment? I thought we had a little check
> to
> detect those situations.
> 
> Thanks,
> Matthieu
> 
> 
>>
>>
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> 
http://www.nabble.com/file/p22204424/conflictingReceive.diff
conflictingReceive.diff 
-- 
View this message in context: http://www.nabble.com/eventHandlers-and-conflictingReceive-tp19963431p22204424.html
Sent from the Apache Ode User mailing list archive at Nabble.com.