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 > > >
