Hello Uwe,

What I don't understand in your mail is 

>> - After the Invoke finally returns the second Assign reads an empty variable

Any Invoke request that gets a time out would throw an Exception, and if the 
Exception is not catched, the workflow will terminate.

Kind regards,

Christophe.

 -----Original Message-----
From: Uwe Bachmann [mailto:[email protected]] 
Sent: mercredi 18 mai 2011 09:38
To: [email protected]
Subject: AW: How to handle a timeout provoked by a long-running Invoke activity

Designing the process asynchronously would avoid the problem. Unfortunately the 
WebService called synchronously is specified by a business partner. The state 
returned effects the client initiating the call. After this synchronous part 
the process already defines asynchronous communication with said business 
partner - which fails after the process is in the inconsistent state.

I was hoping to find a solution using synchronous communication reliably.

Any suggestions?

Thanks,

Uwe


-----Ursprüngliche Nachricht-----
Von: [email protected] [mailto:[email protected]] 
Im Auftrag von Jean-Claude Moissinac
Gesendet: Dienstag, 17. Mai 2011 21:52
An: user
Betreff: Re: How to handle a timeout provoked by a long-running Invoke activity

Asynchronicity seems to be the concept
Is it possible with ODE to have the following behavior:
the process returns quickly and another call is there to get a state of the 
result and to get the result if it is ready

On Tue, May 17, 2011 at 2:36 PM, Uwe Bachmann <[email protected]> wrote:
> Rafal,
>
> thank you for your reply.
>
> I would rather not increase the timeout. First, the client should not have to 
> wait too long and get an error after an adequate time. Second, it would not 
> avoid the inconsistency between the state of the caller and the BPEL process 
> instance, just make it less likely to hit the timeout.
>
> I tried to set exitOnStandardFault to "yes" as you suggested. No change in 
> behavior. It looks like neither a failure nor a fault is raised in this 
> scenario.
>
> Maybe there are some other options?
>
> Thanks,
>
> Uwe
>
> -----Ursprüngliche Nachricht-----
> Von: Rafal [mailto:[email protected]]
> Gesendet: Dienstag, 17. Mai 2011 14:13
> An: [email protected]
> Betreff: Re: How to handle a timeout provoked by a long-running Invoke 
> activity
>
> Hi Uwe
>
> 1. To increase timeout for response you need to set property 
> mex.timeout=300000.
> You can find more information on
> http://ode.apache.org/endpoint-configuration.html.
> 2. Try set attribute exitOnStandardFault="yes" in process node
>    <bpel:process name="xxxx"
>         targetNamespace="xxx"
>         xmlns:tns="xxx"
>         xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable";
>         expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
>         queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
>         exitOnStandardFault="yes"
>         >
>
> Rafal
>
>
>
> On Tue, May 17, 2011 at 1:09 PM, Uwe Bachmann <[email protected]> wrote:
>> Hi,
>>
>> while browsing for timeout handling in ODE I did not find a solution for the 
>> following case.
>>
>> Take a sequence: Receive - Assign - Invoke - Assign - Reply
>>
>> The Invoke returns a response that is used to prepare the reply variable. 
>> Assume everything is up and running and responding properly. A timeout of 60 
>> seconds is configured for the sequence to return to the calling WebService.
>> What if the Invoke activity takes longer to process than 60 seconds?
>> The timeout of the sequence hits and the caller is getting informed of the 
>> timeout by a SOAP fault.
>>
>> When I simulated this case by delaying the Invoke response inside the called 
>> WebService method I found the following situation:
>> - After the Invoke finally returns the second Assign reads an empty variable 
>> and prepares the variable for the Reply. The Reply is executed seemingly 
>> successful.
>> - In the log output an exception in 
>> org.apache.servicemix.http.processors.ConsumerProcessor.process (HTTP 
>> request has timed out) can be seen.
>> - The process instance is never informed of the failure. The setting of 
>> faultOnFailure and/or installing fault handlers inside the Invoke or for the 
>> surrounding scope don't help setting the process instance to failed state.
>>
>> Does anybody know if there is a way to handle this case properly?
>>
>> Any help is appreciated.
>>
>> Uwe
>>
>>
>>
>
>
>



- -----------------------------------------------------------------------------

E-MAIL DISCLAIMER

The present message may contain confidential and/or legally privileged 
information. If you are not the intended addressee and in case of a 
transmission error, please notify the sender immediately and destroy this 
E-mail. Disclosure, reproduction or distribution of this document and its 
possible attachments is strictly forbidden.

SPACEBEL denies all liability for incomplete, improper, inaccurate, 
intercepted, (partly) destroyed, lost and/or belated transmission of the 
current information given that unencrypted electronic transmission cannot 
currently be guaranteed to be secure or error free.
Upon request or in conformity with formal, contractual agreements, an 
originally signed hard copy will be sent to you to confirm the information 
contained in this E-mail.

SPACEBEL denies all liability where E-mail is used for private use.

SPACEBEL cannot be held responsible for possible viruses that might corrupt 
this message and/or your computer system.
e ------------------------------------------------------------------------------

Reply via email to